Years ago, I took my first foray into web development. I chose Smalltalk and Seaside. It was a wonderful experience.

However, eventually I encountered an obstacle that forced me to abandon Seaside. I looked for an alternative that would confer the same advantages and benefits as Seaside, e.g., ease of Getting Started, extreme productivity, ease of deployment, etc.

I came across web2py (and Python) and I found nirvana. Here was a web framework ready-made for newcomers and people who just wanted to get started writing applications…without having to futz around with setup and configuration. It provided everything I needed out of the box: a database (SQLite) and database abstraction layer (DAL); forms and validators; templating; SSL email capability; authorization and authentication; jQuery and Ajax; one step production deployment. And many other things. Oh, joy!

I considered Django (one of the most popular Python web frameworks), but it wasn’t nearly as friendly as web2py. It required some distracting setup and configuration. It adhered to a much different philosophy: “explicit is better than implicit.”

Anything that distracts a developer from doing his real job, i.e., that of actually writing the application, is anathema to me. Explicit is not better than implicit. Wasting my time on the minutiae of tool configuration is not productive.

I don’t buy the argument that making everything explicit is better because you’ll eventually have to delve into the tool anyway, and you want the maximum flexibility in crafting your code. I do not feel that web2py constrains me as a developer. Once I have the application in hand, I can fairly easily optimize it, extend it, and maintain it. The exploration of the tool that I deferred at the beginning can be done much later, after you’ve written the application. There is a lot to be said for feeling a sense of accomplishment when you can show your work product to other people within a surprisingly abbreviated time horizon.

A case in point is my very first project on web2py: a fully fleshed out shopping cart application and retail website (for demonstration purposes). Starting with no knowledge of Python or web2py, I wrote Horrido Hobbies in a matter of weeks and deployed it on a production Linux server using Apache. It was relatively painless. Understand that I was still pretty much a neophyte to web development.

Web2py doesn’t get the recognition that it so richly deserves. The IT community is wistfully unaware of the advantages and benefits of web2py. It has one of the most helpful user communities in the world right here. It has some of the best documentation in the form of an excellent book. It has everything you need to get started writing your application immediately — “batteries are included.” And it is eminently approachable by both programming novices and veterans alike.

Fun. Easy. Productive. These are the hallmarks of web2py. There is no reason why web programming can’t be available to the common people. It is the democratization of Information Technology.