Drat. I missed _why's keynote speech. Oh well, I hear they recorded everything in the congress hall, so now I'm just waiting for a podcast of it. What I didn't miss was Jim Weirichs keynote which was really great. It was about some of Ruby's more dangerous features and how to avoid people getting really mad at you when using them in a library. Like, for example changing the semantics of Kernel#require. Or making Logger singleton. And other fun stuff. The tips where quite basic, common sense things that Rubyists really need to think more about. For example; don't pollute the global namespace with classes named Node. Or name your namespace HTML. The other part of the speech focused on Design by Contract in the Bertrand Meyer sense. This was the watered-down version, looking at preconditions on method arguments and postconditions on the return value. I would have liked seeing something more about preconditions, postconditions and invariants on objects too, since this is a really important part of DoC in my opinion. But it was still great.
I had to run before _why's speech and only came back in the middle of the MySQL optimization talk. (The reason for leaving will probably be obvious in one or two weeks time.)
Now, MySQL optimization... Oh wow, I'm twisted. I used to like MySQL. But now I have a really big problem with it, and especially in the Rails crowd. Actually, after David Blacks session my problems with MySQL and databases are so big I really have to spend an entire blog entry for it. Coming up.
Anyway, I can't say much about the session on MySQL exception: "What are you smoking, man, and can I have some of that?" to quote DHH in an unrelated talk. This guy from MySQL actually said some really nasty things about PostgreSQL and DB2 since (in his opinion) they were less SQL compliant than MySQL. Oh wow. Oh wow. I'm really upset about this, so I'll quickly continue writing about the next session.
Oh yeah, a small interlude to all Rubyists out there. Charles pointed something out to me the other day in London and I can't stop thinking about it. What he asked me was this: "Have you ever seen a unit test attached to patches submitted for Ruby-core?". No, I haven't, and it scares me. Really much. Anyone wants to inject an opinion on this matter?
Talking about Charles Nutter; his JRuby talk was next up and boy was it great? I know what it would contain but it still is really nice to see. JMX control over Rails. EJB session beans feeding data into Rails. JDBC database backend (was MySQL, could've been Apache Derby, Mimer SQL or something entirely other). All of this, with such small amounts of code. I really got the impression that the Ruby crowd actually grok why the JVM can give them even more power now. I felt a big change in the climate. No more Java bashing. Things are moving forward.
James Duncan Davidsson ended RailsConf for me, since I had to move towards Heathrow at the moment he finished. He talked about how to scale our applications in a different way, using techniques we can only guess at that Google and Amazon has deployed internally. Big, clustered memory databases and distributed file systems on a scale not really possible for most of us right now. It was interesting and it got me very excited about the close future.
I didn't get to see Dave Thomas either, but I'm counting on the podcasts once again. All in all, it's been two great days. Very intense, very fun and really interesting. It's been great meeting all of these people, especially seeing Charles again, talking to Jim Weirich and why the lucky stiff. It's been great. When's next time?