Opinions on Software - Ruby on Rails, FUD, Real Issues
September 2nd, 2006
I spend most of my time these days writing in Ruby on Rails which is currently the darling of the web development community. I don’t just like coding in Rails, I love writing in Rails.
I love it, because the time from the conception of an idea to having production-ready deployable code is shorter than with any other framework I’ve ever worked with. When I came up with ideas in the past, i procrastinated about developing them, because the pain development meant that one small feature could see me fighting my computer for a week. Rails is different, providing you think carefully before putting hand to keyboard.
The language it uses - Ruby - is so beautiful and elegant to work with on a day to day basis, that it feels like it’s eminated from some weird hypnotic cult from Japan. Funnily enough, that’s pretty much exactly where it came from, and the pleasant idolatry of Matz - the language’s creator - means that the community is one of the nicest to hang around. Not since my regular hanging out with the FreeBSD guys have I had so much fun.
Right now though, Ruby on Rails is going through a bit of a rough patch. Not a big one, but it’s there.
Firstly, the community is full of new people who have been told that anybody can write a Rails application, and they figured that as they installed their own wireless router/got bluetooth working on their laptop/know what FPS stand for, that they can have a go. Cool! The more the merrier.
But they sometimes give up at the first problem they face and run to the mailing lists asking for basic advice. This isn’t their fault, this is our - the community’s - fault. The documentation out there is either rather terse and not beginner-friendly or it costs money that some people just can’t spare.
Then there is the jealous crowd, who are now realising that the last 10 years of perfecting their Java kung-fu may have been usurped in less than two years and are rather hacked off that some upstart is stealing their glory. They want to fight back. The way they manifest this is quite odd and rather easy to defeat, as a set of arguments but it’s annoying. The real problem is, a little set of battles are now going to roll out over the web that will breed resentment.
The really horrible thing is, RoR’s critics have one really valid point: building multiple-language websites in Rails sucks. It should be easy, but it’s not. The reason is because Rails is what is known as “highly-opinionated software” - i.e. the developers on the core team take an opinion on something, and if they don’t like it, it doesn’t go in. They don’t think localization support belongs in the core system, because they don’t need it.
As a result, the 5 billion people on the planet who don’t speak English are going to find Rails sites a little harder to work with than they should. It wouldn’t take much to fix this state of affairs though: it just requires the Rails team to take an opinion on how to handle Unicode, localization and i18n in general. There are tools out there to help you do it all, as bolt-on extras, but how dumb does that sound: “Hi, we’ve got this framework to help the World become an interconnected one, to produce the next generation of web apps, but, eh… well, speak English or struggle, right?”
There is then another issue with the opinions of Rails core team that means it doesn’t all end with i18n and localization support. Some of their opinions are just outright silly.
Last month they decided that when they found a security hole, instead of doing ‘full disclosure’ and telling everybody what was going on, to just tell everybody to upgrade. What this meant was that clued up hackers could look at the source code and in about 10 minutes work out what had been patched and how to exploit it, but the lesser clued-up people didn’t know how to assess how urgent it was for them to upgrade: did they tell their CEO the site needed to go down immediately, or did they just do an upgrade in the next maintenance cycle overnight? Opinions can be a great way to provide focus, but the opinions of the core team are actually starting to hurt Rails sometimes.
I genuinely believe that Rails is one of the greatest web app frameworks developed - not because it’s fancy, but because it does something amazing at the business level as well as the technical level: reduce the time from idea to deployment.
You can’t argue with that, and in itself it starts to make up for the poor localization support and odd security announcement procedures, but the time has come: Rails needs to touch the rest of the planet, and the opinions formed by the core need to take into account the community’s opinions more than core’s from here on in.
One solution might be for the Rails core team to take a leaf out of the FreeBSD cores team’s: become an electable body, thereby allowing developers to have a say in the future of the framework.
After all, this is no longer a toy app or a simple project that DHH is doing on contract for 37signals - this is an industry with thousands of full-time professionals in it. Our rent money and kid’s college funds depend on this code base now, and we can’t risk letting the FUD-spreaders actually make valid points. We also need to help the newbies out better - the more people developing Rails scalable multi-lingual Rails apps, the more stupid the FUDers look. That’s my opinion for the software, but I know it doesn’t count for anything compared to many others.
In the meantime, Rails has some interesting times ahead of it, as does Ruby. Personally, I can’t wait.

