May ‘07 East Bay Ruby Meetup
Another month, another Ruby Meetup. The first half was a presentation on Haml (XHTML Abstraction Markup Language), which is a programmer-efficient, meta-language for describing XHTML that sits in for the normal Embedded Ruby (ERB/.rhtml) templating in a Rails app. It looks good. For complex pages using lots of CSS and tables and stuff, it’s way more readable and elegant. I might use it if I end up making tons of templates in a Rails app. Like Python (and YAML), Haml is whitespace sensitive and you have to be real careful to get things just so. In exchange, you end up with something more maintainable and much more human-readable and easier to debug than the usual template deal where you mix code and HTML. I’m a big fan of abstraction and code generation. So, yay: Haml. But right now the “cognitive load” of learning it, as the presenter, Ed Allan, described it makes me want to put it off for another day.
After the break we got a presentation by a couple of guys (MIT brothers?), Zack and Ben Skolnik, who are trying to implement IRC as a Web application via Rails. Their app is called, Netwirc. It’s not an IRC client in Rails — no, they are reinventing the IRC wheel completely and putting as much Web 2.0 spin on it as they can, although I think they are mostly in the flailing around faze for what they might be able to do with it and how they might monetize it. Newirc is a nice little Web app, and a testament to the RAD qualities of Rails that they could put it together so quickly. They launched last September. It seemed like they have implemented a lot of the key functionality of IRC. They said they did it in their spare time, and have recently been trying to make a go of it as a real startup business. It’s rough around the edges, but it works. I had a hard time getting too excited, tho; I’m too busy to even use real IRC. But I wish them luck. The Q/A session focused on how in the world they would scale their app. Good question.
Frankly, I have started questioning the scalability of Rails. I mean, I’m sure you can scale Rails. But Rails people seem especially sensitive and defensive about this question. I’ve been to whole meetings on the subject and so far I haven’t been impressed. A few servers behind a round-robin Apache-based software load balancer is not a big system. As sort of a refugee from the enterprise software world, I’m pretty familiar with building Web applications that have a lot of users. The reality is that nothing seems to scale well. Managing user load is scary even when you have tons of hardware, money and engineering to throw at it. every time your user-base grows significantly, something breaks despite planning. Ruby stuff is not inherently inefficient, it’s just young and the answers and best solutions to everything aren’t apparent yet. Ruby people need to stop acting so defensive and just bust out some load testing and figure it out. The consensus tonight seemed to be, “We’ll worry about that later! And hey it worked for Twitter, right?” No, it didn’t. Prepare for the worst, Rubyists. Assume your apps will explode.
It was also suggested tonight by one of the organizers that instead of just presentations all the time, it might be nice to have some less formal East Bay Ruby Meetups focused on coding and problem solving. Sounds good to me.
witter