Thursday, April 4, 2013

Insanely Great - Yet Another Web Framework - LOLWUT?

If you are a software developer then the two most unwelcome words that you can hear after the C-word (no, not that one - 'Cyberspace'...what are you, Scottish?)  would be the words "Web Framework".

This is for the simple reason that there are too damned many of them.  About a decade ago the word "Framework" started to buzz and suddenly they were falling out of the sky like dead flies in a DDT cloud.  You couldn't pick up a magazine (remember when we had those?) without coming across at least a half-dozen of them.  Being as it was Universally-Agreed-that-Every-Piece-of-Software-Has-to-Be-a-Web-App there was a perceived need to make the chore of doing so far more simple.  Ironically, the complexity that many of them added eventually ended up doing exactly the opposite.

A lot of them were Frankenstein-like composites of components hastily slapped together without any regard for maintainability.  While the components themselves might have been Best Of Breed - the way that they were slapped together and pushed as a single package was so common and problem-laden that it constitutes an anti-pattern.

Sometimes you just have to start over from scratch.

Being new to web development with Python, it seemed prudent to find a framework.  Having reviewed everything that I could get my hands on, the winner was clearly Web2Py.

The reason for this is simple.  No, really, that is the reason.  It is simple.  It is simple to use, simple to understand, simple to implement and simple to customize.  Anything that can do that can vastly enhance productivity and IMHO that is brilliant.

Some frameworks adhere to a list of standards - usually somewhat begrudgingly - and treat them like a list of features on the side of a software box.  Web2Py has truly internalized them as design philosophies.  It has the benefits of having been designed as a feature-complete project prior to implementation.  As such is it very compact and at the same time extremely forgiving.

If you download the binary distribution you don't need a web server nor a database server nor even a text editor and yet you can be up & running and developing your own web application in under 10 minutes.  Once you are past the point where these rudimentary tools are useful it is a simple matter to introduce web server and database server tiers in a more robust fashion.  However, Web2Py takes the Web 2.0 paradigm to heart and even provides the ability to create and edit applications right in the web based administration application itself.

This means that learning how to use it is a history of building on successes, rather than clumsy mistakes constantly preventing you from getting something up and running.  This is a more encouraging way to learn how to program and that alone makes it better than the competing frameworks IMHO.

No comments: