Posts Tagged ‘django’

I love web frameworks, why don’t you?

Posted by rich on May 11th, 2008 categorised as Grind My Gears | No Comments »

Lately I’ve become fanatical over web frameworks, mainly Django, Rails and CakePHP. Something about them just clicks, maybe its because I can go back to a rails app months after I’ve written it, even with no comments, and just know where each file is likely to be and where to find a certain method. Also I can create CRUD (Create, Read, Update and Delete) functionality in seconds as most frameworks provide some form of scaffold, something that would take time to produce without a framework in something like PHP.

If there is one thing that pisses me off about frameworks - it’s the people who don’t like them. If like me you’ve read a lot of people talking about how crap frameworks are? How they don’t see the point: “What’s the point in a framework? I can just find all the different library’s I need such as templating, databases and include them in my app”. Why? Why would you want to waste your time including a database class, setting it up and then going to find a template engine to include and then setting that up too! When the framework will just give you that from the word go. It just confuses me. Then there is the fact that with most frameworks you get nice clean URL’s, free without having to do anything. try doing that in your simple PHP app without doing some form of mod_rewrite YOURSELF.

Most frameworks will log errors, show debug information (in development mode), give you the option of simply editing a file (not having to set it up too) to get nice 404/500 type errors. Something that would require you to make your own form of exceptions, your own error logging if you were not using a framework, which would do it all for you.

Another thing that pisses me off about not having a framework - is validating form inputs. Argh, it annoys me so much having to do lots of if statements to check if a field is empty, having to do a query to check a field isn’t already taken. In a framework, for example rails I just have to do:

validates_presence_of :title

Tell me again why people prefer to spend ages writing if statements and queries to check form data?

People will always try to say “I don’t like being told how I should code” - Fuck me, yes maybe…maybe there are some standards you have to stick to in frameworks and if you’re totally mentally retarded you might think this is horrible idea to have to agree on a naming convention for the benefit of others. It’s like these people have never worked with other people? At work we’ve had entire meetings just agreeing on a standard form of code to use, have you ever tried submitting a PEAR class?! talk about anal. I’ve found apart with some naming conventions you can pretty much code however the hell you like in a framework - much like you can if you were not using a framework!

From my experience so far I’ve never had a website that has not fitted the framework type model… now I’m sure there are loads of sites that would not work at all in a framework and the anti-framework people will be the first to tell you but that’s fair enough if it doesn’t fit the model then you don’t have much choice. But these people do it out of choice?! Are they better than us mortals? Do they know something we don’t? No! from my experience the people who shoot down using a framework to speed up development, to help bring out creativity, to help with debuging, these people are generally scared to learn something new, scared to well…learn. They refuse to even look becuase they know it’ll be something else that’s not what they know, even if the current method they use is rubbish.

All this technology, all the advances in medicine we have, space travel, you name it. It all comes from people wanting to discover, people wanting to learn. So I beg you, don’t just push the framework out the window as though it’s all ‘hype’ and doesn’t have any real world use.. please please please just give it a try. There’s a reason it’s popular, even among the big names, because frameworks are damn good.