May 20 2007

RailsConf 2007 Concludes

So they saved the best for last. Dave Thomas, one of the pragmatic programmers delivered this great talk which touched on both social and technical issues influencing the Rails community. Briefly, the social stuff he mentioned was inclusion in the Rails community and how it needs to improve, especially the attitudes regarding female Rails programmers – not that their terrible, but they could be better, much better (the example he gave was the rubychicks website that someone put up with pictures of the women at RailsConf, he mentioned the lack of a rubyblacks or rubygayhispanics website and created a rubymiddleagedwhiteguys website that was rather scathing).

During the technical portion of the talk Thomas pointed out how in some respects the Rails community is in a small minded box. The justifications for this claim were based on the way the Rails framework is designed, it is called object oriented but it is in fact much more class oriented. When we want something new, like a controller, we don’t created an object of it we create a subclass of it. This not OOP style and not what was intended by the inventors of OOP, such as Alan Kay. He mentioned some questionable spots such as the use of relational databases. Why are we using relational databases when often times all we need is a hash? He even pointed a finger at REST and asked whether, given all the touting it has received, its usefulness isn’t over stated.

He then asked the audience for anything else they thought was obsolescent and some interesting things were brought up. One person mentioned “writing web apps”. Which was great to hear because I believe that as the internet inevitably transforms it will transform what we call and consider the web and what a web looks like, perhaps even if it exists. Something I read a while back explained that web pages were like taxis, when you didn’t really know how to get around and/or were knew to town you’d jump in a taxi and it would take you were you wanted to go. Dashboard Widgets, IRC, Skype, iChat, iCal, and all those other applications that are built on top of the internet perhaps using HTTP APIs are like the subway. You know were you want to go, and you moderately know your way around, so you just jump right on and get the information that you need. The internet is an information network and web apps are only one way that the information can be presented and depend entirely upon the all powerful browser. The browser slowly going away – or – it is slowly transforming. There are tons of plugins to Firefox. In fact , I think that the browser’s main function will be transformed from a content presented to an application wrapper, or better a wrapping application. Actually, isn’t that what it already is? A web app is the app that the browser is the wrapper for.

Another person mentioned “Rails” and I think this point is well taken and obvious enough. As Thomas said, Rails is great and all but, in the end, it is “just a tool”. Tools get improved or replaced, I’ve been playing with Seaside and SmallTalk recently and it blows Rails out of the water in terms of development environment, however, not in terms of ease of use… yet! Finally there was the mention of MVC or (the Model View Controller design pattern). I am not going argue that MVC will go away, but it is important to remember that this is but one design pattern among many, so many. I believe that the web application development community has significant strides to make in formally integrating additional design patterns into everyday code.

He also summed up the web developer celebrity thing as, “Gurus, they’re just insecure people”. Which made me smile (ear to ear).

All in all, the talk was extremely inspiring. I came to realization, web 2.0 is not for programmers, not for designers, not for anyone who wants to push the boundaries of technology and as a corollary to that last statement, not for us. It is for the marketing department so let them tout it and lets us write some amazing apps!


May 19 2007

The Stack for Rails at RailsConf 2007

I just came from Ezra Z.’s talk on deploying Ruby on Rails applications.à The stack he described as best for Rails and the one that they use at Engine Yard consists of: Linux >> Nginx >> Mongrel (cluster) >> Monit.