I went to RailsConf 2006 and all I got was a stupid t-shirt
Posted by 07/21/2006
It was an excuse to go to Chicago and take a vacation. But I've also been straddling the fence between Django and RoR - Python and Ruby - for a good 6 months now, and I thought this might help me make up my mind. It was a good experience but it didn't really help me make up my mind. The air was filled with enthusiasm for Ruby on Rails. The revolution begins here. There was a certain collective elitism of the group. Which I can say because I was one of them. The arrogance of the early adopters. I thought it was funny that the catch phrase was "My name is [:name]. I've been Java free for [:some_exact_number_of_time_counted_in_months_days_hours_and_minutes]" I think it is funny because there is a truth embedded in it. The sort of thing that is only spoken by a former believer.
A lot of people really thought Java was the answer. And it is disappointing that it is not. But it is definitely NOT the answer. And we all feel a little duped I think. Or maybe it's just me.
So I have a few stray thoughts about the talks I saw. In no particular order:
The outsider. Interesting and entertaining talk about how innovation is always done by the outsider. In and of itself this is not an original thought. But it played well to the elitist early-adopters in the room. The theme seemed to be large organizations grow to a certain point where their main objective is simply self perpetuation. They no longer innovate. And they grow into evil, soul-sucking monsters. Reminds me of how I felt when I was 20. The best innovation comes from small, dedicated start-ups. He made the point that Bill Gates would never make it at Microsoft if he started working there now. It's true that Bill Gates and Steve Wozniak probably would not have succeeded at IBM. At the same time, they were geniuses - and I hate to break the news, but not everyone is a genius. And if you are not a genius, it's not easy to live outside of the laws of society - or at least not as successfully. But I'm just a cynical, crotchety old man. Don't pay attention.
You can see the lecture here: http://blog.scribestudio.com/articles/2006/07/17/david-graham-railsconf-2006-keynote-address or read it here: http://www.paulgraham.com/marginal.html .
Seems to have an agenda. How can we get Rails in the Enterprise? Everything he mentioned is stuff people personally have asked me about. Unlike some at this convention, I think he wants Ruby on Rails to hit the enterprise big time. He is dying for it to happen. Maybe a little too much. This is a dilemma though. Do you drag Rails into the mud of Enterprise applications? Can Rails save the world? Should Rails stay a secret weapon? Or not? I don't know.
You can see his main points here: http://glu.ttono.us/articles/2006/06/23/dave-thomas-keynote so I won't repeat them.
I am more of the opinion that data is malleable so it's easier to make your data fit the framework - then the framework fit the data. The world is littered with databases formed from the limitations of the software used at creation time. You can tell a PowerBuilder database, an ASP database, PHP, SilverStream etc... They all get shaped by their software anyway - then someone comes along with new software and it has to fit these old schemas. If the schema sucks - why perpetuate it.
Two years from now you'll see a littering of Rails schemas. And by then there will be something better - that will require yet more changes. On the other hand, I agree that there is a set of terminology that has evolved to describe database structure, and software that connects to that database should understand that terminology completely. So if you've defined a primary key in the database itself, you should not have to define it yet again in code. That's tricky though. In fact the language SQL is a perfectly suitable Domain Specific Language for accessing data - and it ought to integrate better.
Emphasized the fact that there is a false dichotomy between quick and dirty and well designed. And how Ruby deals with messy things - much like Unix. He talked about Ruby being the 'glue' - he liked how Ruby didn't try to be the answer for everything.
I was not really particulary convinced by his lecture. It felt false or canned or something. Which was suprising to me because I've read two of his books and I expected something different. And I have a lot of respect for his work. But I felt like he would abandon Ruby in a second given the right circumstances. Which is totally fine, but he implied that he had some great passion for the language in particular - and I felt like he still preferred Smalltalk. So even though he was touting Ruby specifically, everything he said was so general that it didn't only apply to Ruby - but applied to Python, Perl and any number of other languages as well. In fact the reference to the term "post-modern" seemed straight from the Larry Wall book of the dead.
You can find the speech here: http://blog.scribestudio.com/articles/2006/07/03/martin-fowler-railsconf-2006-keynote-address
Maybe I'm wrong though. Often I am. It's not that I think he is a false person, but he seems more concerned about software on some higher level - rather than the details of an actual programming language. So I wish he would talk more about how to structure a library or the mental process of designing an API. What problems will I encounter with Ruby when I pass the 40,000 miles mark? Will I need to change the oil? Why does he disagree (presumably) with Bjarne Stroustrup who insists that it is bad for a language to have a global object with many methods (like Smalltalk and Ruby do)? I would totally be interested in his opinion about those sorts of things.
Rails By The Waypoints: Integrating a GPS Unit and a Digital Camera in the Era of the Mashup (Doug Fales)
Interesting case study. At this point in the conference that I realized a lot of speakers here were total amateurs. I also realized that Ruby on Rails was making things possible that were not possible 2 years ago. That was a theme of this presentation. "I had this crazy idea. I thought it would take millions of dollars - but, I built it myself in 2 week". I'd have to add the caveat that all of this was not possible without the open APIs of Google and Flickr. And I can foresee them charging more for those as time goes by.
Lucene Eye for the Ruby Guy (Seth Fitsimmons)
I had high hopes for this, but got nothing out of it. He seemed to recommend running this thing called SOLR on another machine. I think searching capability is the single most important functionality that could be added to Rails.
Using Rails on with Legacy Database Schemas with iBatis for Ruby
I don't know why I went to this. I don't like iBatis. I was hoping it would evolve into something similar to SQLAlchemy for Ruby. Maybe it will.
Accelerating Rails with lighty (Jan Kneschke)
A little ironic after Martin Fowler emphasized the fact that Rails takes away the 'plumbing' of writing a web application. Because this was very 'plumbing' oriented. How to squeeze every last drop of performance out of your web server. At the same time it was interesting. I can't help but think that stackless, continuation based development is the future and threads are dying. Which is good - I've always hated working with threads and it's one of those elitist things programmers use to make themselves look and sound superior.
It seems like Lighty is falling out of favor these days. I actually talked with Jan for a few minutes. He had visited Austin, Texas recently. Which is where I live. But I am the quintessential boring nobody person. So I had nothing interesting to say.
Testing Rails Apps (Mike Clark)
Good introduction to testing. This lecture emphasized the fact that testing will 'set you free', rather than limit you. This is a good way to think about it.
Homesteading: A Thriver's Guide (Nathaniel Talbott)
Couldn't quite figure out what the point of this was. I had the overwhelming feeling during this lecture that as everyone criticized big business, stifling corporations, the 'outsider' - that one day they would be successful enough to understand that it's not as easy as it looks, they will face the same demons their forefathers faced - and it will all the sudden start making sense why people did what they did. Then they will, with determination, change one major factor. Because I think the world is changed more in small increments than with a sweeping motion.
David Heinemeier Hansson
One thing that suprised me is how much code he showed, and how he seems to love coding. I expected this arrogant, opinionated person - but actually came across more magnanimous. The future for Rails seems to center around REST and the lecture focused on how the exercise of trying to boil down all actions to CRUD is useful. This was all very interesting, and I was very impressed by DHH. More by the lecture than from the blog. He does have a vision and enthusiasm that I think is necessary in the software industry - and he is one of those geniuses really. Which is also something we need in the software industry. Geniuses aren't always right. Sometimes they are very wrong - sometimes they do totally stupid things. But I have to say I was convinced that he is a good leader for this project. And I trust he will eventually take it in the correct direction, even though he will sometimes take it in the wrong direction.
You can find the lecture here: http://blog.scribestudio.com/articles/2006/07/09/david-heinemeier-hansson-railsconf-2006-keynote-address
At this point I also started to have an ominous feeling. A sense of something that seemed familiar. Something I noticed 6 or 7 years ago when I first started doing Java and everyone was excited and it seemed like Objects were the answer to everything. In fact I remember someone saying "Java is cool. Everything is an object..." That wasn't actually true, but the pure Object-oriented nature of Ruby started to bother me, and create worrisome feelings.
It's not suprising at all that Ruby is attracting Java programmers. Especially Java programmers who jumped on the ship 6,7 years ago. The "Java free for 6 months 4 days and 5 hours" people may be lugging in some of the same conceptual limitations into a new arena. And it's very possible (in fact likely) that I'm one of those people.