You're viewing a comment by Sandy and its responses.

January 13, 2017, 12:45

Hi, I totally agree with you, but I have some other thoughts and lets just put aside the fact that jQuery is not a framework.

I have just spent 6 months wrangling Django, more specifically the admin side of the framework, and yes, it is an opinionated beast. Most frameworks are. They are built by developers who have an 'aha' moment about how things should work, then they build it, viola, a new framework. I agree that using a framework stifles creativity, but the irony is that a framework is a creative solution to a perceived problem.

SO was I able to use Django creatively... kind of, did I have to fight it to do what should be simple things... definitely. But when I needed to do something which the framework was built for... Oh the wonder and simplicity. I needed a database table to be searchable... ok, just give a list of searchable fields as a class member and bang... searchable database table. If I tried to code that from scratch, a) I would have just built the same thing over again, and b) it would have taken me far longer than setting a variable in a class.

To put it simply, frameworks are simply tools you can use to get a task or set of tasks done, without writing the code yourself. They are not meant to allow creativity, they are meant to be the hammer to the nail, nothing more. If I need to cut watermelon, will I choose a hammer? (That could actually be fun).

Another reason of why to choose a framework is recruitment. Yes, you can be super creative and solve heaps of things with your own code, but then any dev to come after you needs to understand your thought process, and style of coding. Why do you think the largest companies in the world think Python is great... one word... formatting. You can raise a pull request, and the way the code looks wont be very different between every dev on the team. So it's a productivity thing, If Company A uses framework Blurg, then it can hire Blurg developers, contract them in or out, and get productivity off the starting line. Otherwise every company you walk into would be like learning Angular all over again! Possibly worse if you happen to get hired by the PHPSpaghettiMonster.Org

Whats my point here? Basically, I don't think frameworks are evil, and I do think solving problems with your own creative code is a dying art. I want to blend both worlds, because writing the same boilerplate crap day in and day out is depressing, but trying to figure out why coolframework5 just wont stop converting all my strings to ALL CAPS is a pain I don't need.

Both approaches have their place, when used in the right way. We just need to learn when to use them!

BTW, I totally made Django my biatch. I killed off a bunch of plugins, took it back to core Django + Django Rest Framework, sprinkled on some Angular, then overrode that puppy till it was half dog, half machine. My productivity increased after 2 months, I took the defect rate way down, and I didn't have to spend ages doing some basic stuff, allowing me to get the UI to an acceptable state of usability. I definitely solved some problems in a creative way, using lesser worn paths or Django development.

Nice article :)

Reply To This Comment

(why do I need your e-mail?)

(Your twitter handle, if you have one.)

Type the word "linux_508": (just to make sure you're a human)

Please preview the comment before submitting to make sure it's OK.