Web Frameworks that make money sense

Ramdas S in a two part series takes a look at a host of new web frameworks that makes development faster, smoother and easier. 

During the past decade or less, the web programmer has been a hot commodity. To keep themselves ‘hot’ the web developers had to learn a host of new technologies every now and then. The web development model itself has evolved over all these years as the web continues evolve.

During the nineties web programming was mostly HTML and CGI scripting. Towards the fag end you saw server side scripting becoming a reality. That was the need of the hour, and soon there were new scripting languages and new web development models.

Scripting languages such as ASP, PHP and JSP soon evolved and you started separating the programs from content. Soon web applications evolved and Internet was more about hosting applications than displaying pages. 

From 2000 to 2005 the model evolved and it just got better and better. Asp became ASP.net, where the power of Microsoft’s Dot Net platform and the user friendliness of the famous Visual Studio platform helped a developer make Internet applications even more faster. PHP evolved as a language, and together with Linux, Apache and MySQL formed the famous LAMP quartet. JSP evolved into a mature technology and togthere with a host of mainstream technologies became a major force to reckon with.

However in early part of 2005, the Open Source world awoke and in came a number of new web frameworks, which basically challenged the existing framesets of web development and introduced new and exciting model.

The leader of the pack was Ruby on Rails, which gave a new life to much unknown Open Source language Ruby. With Java gurus such as Martin Fowler embracing Rails and Ruby (at least in his blog) , there were a host of Java gurus flocking in and looking at Rails seriously.

Suddenly they realized that web applications can be written seriously.

The rest of the Open Source community received a rude awakening of sorts, and the much hyped languages such as Python and PHP was left behind temporarily.

Rails was soon hailed as the future of web development.

And rest of the world wanted to create a Ruby-on-Rails killer.

Hence in the past several months we have seen many new web frameworks each boasting of features that are supposedly better than the other.

I have chosen a few that I have personally come across. I have not used and tried most of them. But these are all frameworks that will help you to developer faster, and hence make money faster. In this article I will delve deep into two such frameworks Ruby on Rails and Turbogears. I am choosing these two, because one is clearly the pack leader and the second one is one of the potential challengers.

Framework

Language

Website

Django

Python

www.djangoproject.com

 

 

Fanery

 



Python

 

 

http://fanery.python-hosting.com/

 

 Catalyst

Perl

http://www.catalystframework.org/

Subway

Python

 

http://www.gosubway.org/

 

TrimJunction

JavaScript

http://trimpath.com/project/wiki/TrimJunction

TurboGears

Python

www.turbogears.org

 

 

Cake



PHP



www.cakephp.org

 

Symfony

PHP

http://www.symfony-project.com/

Seagull

PHP

http://seagull.phpkitchen.com/

Sails

Java

www.gosails.org

 

MonoRail

 

 

.Net supported languages

http://www.castleproject.org/index.php/MonoRail

 

 

 

 

Trails

 

Java

https://trails.dev.java.net/

Seaside

Smalltalk

http://seaside.st/

This is not a Ruby on Rails versus TurboGears comparison. I think that it is unfair to compare either platforms at this point of time, since one is just evolved and other is evolving.

But after checking out some of the web frameworks in the article, you can sum up the focus as follows. The credit for all these belongs to Ruby on Rails being the trend setter. Most of the software has not quite reached these standards, but these goals are likely to be in their radar.

DRY Principle


Don’t Repeat it Yourself (DRY) is a principle which the developers of Ruby on Rails have been popularizing. In their words “DRY says that every piece of system knowledge should have one authoritative, unambiguous representation. Every piece of knowledge in the development of something should have a single representation. A system's knowledge is far broader than just its code. It refers to database schemas, test plans, the build system, even documentation.”
DRY is not just about, not repeating code. It is a philosophy where if you can generate a code for a sample application, then you must use it. DRY is not about writing code generators, but it is about creating an environment where code is created.

Ajax on the client

Almost all the frameworks being developed has some plans of ‘Ajaxification’, though it differs from user to user. For example Turbogears uses Mochikit, a 3rd party Javascript library. Others are happy to use XmlHttpRequest() for the moment. But Ajax is top on mind
Templating Engine

Templating Engines that can help you completely separate conetent from logic is the in-thing. It sometimes means that you need to learn an XML based templating language. However the regular way of having your presentation and code together is out.

ORMs to the rescue

An example of the DRY principle is increasing use of Object Relational Mapping tools. Java users would have already come across Hibernate, but it simply gets better with the dynamic languages. SQLObject written by Ian Bickling and used inside Turbogears and Ruby-on-Rails’s Active Record are simply awesome. 

An average LAMP application has files where you will have SQL statements cluttered all over the place. And when you make a change at one place, you need to make it everywhere. Things can get very messy indeed.
With an ORM tool as a part of the framework, you create database tables just like you write a class, and each field inside a table is an object.

Dynamic Language based

Almost all the new web frameworks coming up are based on a dynamic language such as Python and Ruby. In fact the number of Python web frameworks doing the rounds is so high that Pythonistas wish that efforts were channelized to just one or two. Most of the new web frameworks are lightweight in nature for the same reason.

Lesser code base, faster development

Less software means you write fewer lines of code to implement your application. Keeping your code small means faster development and fewer bugs, which makes your code easier to understand, maintain, and enhance. Very shortly, you will see how Rails cuts your code burden.
Forget your XML configuration files

A highlight of RS Ramaswamy’s Java tutorials were the simplicity with which he approached problems. In real life configuring a Java application is a big pain. You need pour through umpteen number of XMl configuration files to get everything right. This is where a framework like Ruby-on-Rails or Django score. Things are set up for you so fast, that you do not have to know anything. You only need to know certain conventions.

Conclusion

As I write these there are two types of new generation web application frameworks. One is Ruby-on-Rails, others are wannabe Rails Killers. Whatever it be these are exciting times for the web developer, and they are building applications faster and smarter. And it means you can save some money, and make more when you sell to your customer.




Added on September 18, 2007 Comment

Comments

Post a comment