Saturday, May 10, 2008

Ruby for the enterprise.

MVC (Model, View, Controller) programming paradigm is nothing new. It is in fact close to 40 years old and was invented by Trygve Reenskaug, who at the time worked for the Palo Alto Research Center of Xerox - Xerox Parc.

What strikes me as interesting is the increasing amount of people that I have heard, who have brazenly taken it upon themselves to venture into an Ruby and Rails programming, ditching their .Net / PHP and even Java development's in favour of this under matured language, without full understanding of the implications such a radical change imposes.

This might sound like a sweeping statement to make but hold on a second. CGI or the Common Gateway Interface is the oldest web technology, simple. Allaire Corporation founded by Jeremy and JJ Allaire in Minnesota, were the first to release a database driven web content server, they named this "coldfussion". Microsoft quickly took to arms with this model and implemented "Active Server Pages" or Classic ASP and today's modern version ASP .Net is in fact a MVC framework, although not in the strictest sense, however with minimal effort it can be deployed as such and with the extra advantage of having one of the fastest moving and biggest computer company's in the world behind it - Microsoft.

The real intention of MVC is the distinct separation of interfaces. The GUI or graphical user interface, is separated from the code logic or middle ware interface and again separated from the controller or data interface. Adele Goldberg while working with SmallTalk in the 1980's came up with a method of "pluggable" views to facilitate generic display of text boxes and list views, which were parametrized and reduced the amount of controller and view classes required to display them. Pluggable Views were a part of Smalltalk-80 R2.

The Presentation Abstraction Control or PAC is in fact even older than the Objective interface, however I am not here talking up the history of what has already happened and neither am I about to start building SharePoint web parts in SmallTalk .Net! It's very simple to see that some people rush in to put themselves at the "bleeding edge" of technology and end up falling flat on their face, as my father used to tell me "fools rush in where angels fear to tread" is most poignant.

When Ruby is mature enough for the enterprise, I may have a use for it. As it is in it's current early stages of development there is very little that I can do with it that I can't anywhere else, in fact there is nothing that I can't do in C# .Net that Ruby offers me. Please provide some feedback, anyone as I am really interested in finding out why people are making such bizarre leaps from highly productive and highly efficient environments to buggy, incomplete experimental frameworks.

Should Ruby loose flavour and cool off within the next few years, as I'm almost certain that it will, there are going to be a lot of web app's that are require porting back to a framework, which they could have been targeted for in the first instance. If you need MVC and are sticking with *Nix then go for Struts and stick with Java. You will also have the advantage of very easy migration to/from .Net if ever required. IronRuby and the DLR on the other hand is to say simply, syntactically hungover from TCL/TK in my humble opinion.