Ruby on Rails RailsConf Europe 2006: a report.
October 1, 2006
RailsConf Europe 2006: a report.
by: Richard Mischook. www.killersites.com, www.killerajax.com
On September 14 and 15th I was at the RailsConf event in London. I don’t have the exact numbers but I’m guessing that there were somewhere between 500 and 1000 attendees. The age range included the expected contingent of 20-something geek types but perhaps surprisingly a large number of obviously older folks were also in attendance (the latter category sadly including me).
I say surprisingly because Rails is a relatively young technology that I think is still in its ‘early-days’ phase, albeit with a rapidly growing mind share. Despite this a number of maneger-types were on hand and presenting; this was particularly interesting to me as I am very interested in the issues surrounding using Ruby and Rails in the enterprise.
Before diving into a look at some of the details of the conference I will say that my overall impression is very good. I was reminded of the JavaOne conferences I attended in the late 1990s where the enthusiasm in the room was almost overwhelming.
Clearly the folk doing Rails are converts (often from Java) and believe that Ruby and Rails are better tools than much of what is out there.
Rails is fun
Rails developers are having fun: this is good because happy developers are productive developers; they are having fun because they are getting things done faster and spending far less time wrestling with the sorts of plumbing issues that kill creativity and make development a chore rather than a joy.
This fun flows from two things: the beauty of the Ruby language and the Rails framework. The Ruby language provides some very nice syntactic features that mean writing less code than would otherwise be the case with other languages.
Rails provides a variety of elements that make it fast and easy to deliver working code; some of the key features include the use of conventions rather than configuration (still allowing though for the overriding of those conventions), a number of great APIs for handling many web-application needs, the most prominent being perhaps an easy to use Object-Relational Mapping API (ActiveRecord).
Rails in the Enterprise
Rails is being introduced into the enterprise in the same way that Java was back in the late 1990; that is, by enthusiastic developers ‘sneaking’ it in. I heard a number of stories but one that certainly stuck goes like this:
(i) developer does quick prototype
(ii) developer shows prototype to manager who says it looks great
(iii) developer tells manager that he/she is ready to develop it in Java but it will take two or five or X time as long
(iv) manager says – but what’s wrong with this
(v) developer smiles.
Any new technology is bound to face reluctance from risk-adverse enterprise technology decision makers. This is (in my opinion) perfectly understandable; some good news though is that Sun has hired the main guys behind the JRuby project (allowing Ruby code to run in a Java Virtual Machine).
Currently JRuby will support running most Rails applications in a JVM. The roadmap for JRuby include a number of things including compilation of Ruby code to Java byte code. Speed of JRuby is currently not up to CRuby but this is the goal. For me the existence of JRuby signals Sun’s realization that the Java web frameworks are declining in popularity; for those of us in the (Java) enterprise, JRuby represents a possible risk mitigator if/when proposing Rails as a piece of a solution.
Performance and Scalability
Rails suffers from the same sort of performance and scalability issues as other frameworks but the approach to fixing these is pretty much the same as with other frameworks, e.g. tune your database queries, implement a caching framework, profile your code.
The flip side though is that delivering a result in Rails does appear to be significantly faster and involve writing less code. In addition Rails seems to strongly facilitate an iterative approach to development that is very attractive to those who accept the key tenets of the Agile school of thought.
Rails is Growing
Rails is growing fast: there are now some 300+ open source pluggins for Rails supporting a wide range of functions and APIs (for example messaging systems). The new Active Resource API supports treating a URL as a vehicle for doing CRUD using XML – web services without the overhead associated with SOAP.
Rails Development Tools
Tools support is growing: the next version of the RadRails Eclipse-based IDE will include support for refactoring; I asked the main developers about code-completion support (e.g. method completion) while acknowledging in my question the issues associated with doing this for a dynamic language. I was told that there was some work going on in this area and they hoped to be able to support it to some extent in the future.
Final Thoughts
Rails is an exciting framework for doing web application development that is I think in the early stages of a rapidly accellerating curve. The next year will I think be telling and it will be interesting to see to what extent Rails captures mind share and resources from other comparable frameworks.