Speaking of pedantry, I've long been amused by the lengths to which some people will go in order to shoot down comparisons between Ruby on Rails and anything else. More than a few times, I've had the mental image of an English gentleman clear his throat and proclaim:
But my dear sir, you must realize that you can not compare Rails to Java or PHP. For Rails is a framework while both Java and PHP are languages. Thus, they are entirely without comparison as they are not even in the same category. You see? Very well then, I bid you farewell!
Yes, the pedantry is technically correct, but also completely irrelevant. Because in addition to being framework or language, they are all possible solutions to the web problem — requiring more or less water added to the mix. So of course you can compare them: Within your context, which is getting you the most valuable software in the shortest amount of time?
But naturally that was never the intentions of our English gentleman. It's much easier to save the good tone of the dinner party by declaring them different species altogether. We can then continue on with our lives undisturbed. Knowing that we need not care or worry too much about what goes on outside the window.
Slashdot is an awesome view into the minds of a very varied population of programmers. Granted, such a sight is often befuddled, obscure, or, well, downright stupid. But its real and there's a lot of insight to be had when watching from a sober distance.
Take the announcement of Rails 1.0 that hit Slashdot a week ago. I think we generally fared well, but I was puzzled by the focus on the release statement of "...it works mostly right, most of the time, for most of the people".
The reaction clearly showed a cultural divide. I didn't foresee that this was a controversial statement. But lots of people clearly took offense. I particularly liked SavvyPlayer's take:
Where do Sun, MS, etc. explicitly state their framework runs perfectly for all users all of the time? They don't because such a claim would be patently false, and there simply is no sexy way to articulate the truth, which is exactly what the Ruby team arbitrarily decided to do anyway. Regardless whether the ambitions of the Ruby team extend to widespread adoption, such careless honesty from such a visible project may inadvertently damage overall market perception of the f/oss community, regardless of the actual quality of the offering (over the short-term at least).
How fascinating. He recognizes that we're basically just "telling it like it is", but then huffs and puffs about what damage the truth will do to not only Rails, but to open source in general. As if we were about to bring down the kingdom of software development by pointing out that the emperor has no clothes.
But at least SavvyPlayer recognized that we were simply setting expectations to be par for course. Plenty of others in the thread cried with outrage that anyone would make such a reckless claim and announce 1.0 at the same time.
Naturally, I don't just like this statement for the outrage it caused. I like it because it's a dividing issue. One which can garner as much love and appreciation as it can cause outrage and despair. It exposed a set of deep cultural lines that in my mind separated the wheat from the chaff.
So if that statement rubbed you the wrong way, it's an early warning signal that Ruby on Rails wouldn't be for you. It's kinda like applying the principle of "fail fast" to tech stack selection. There's no reason to waste your time, or that of the Rails community, by investigating further, if this level of truthfulness is rejected in your bones.
Bruce Eckel charges Bruce Tate with quick dismissals and selecting a winner without a race in Beyond Java:
In many places he plays fast and loose, and almost at the end of the book he declares that he doesn't have time to learn these other languages in any depth — although he has no trouble condemning the same languages in his rush to Ruby.
Hold on. That reminds me of someone. Oh, I know, it's Mr. Eckel himself. A couple of years back, he featured a scorching quick dismissal of Ruby and why it wasn't worth learning. I believe Eckel has since removed the article from his site, but Google remembers the juicy bits:
So far I keep coming to the conclusion that Ruby is just a bad ripoff of Python, just like C# is a bad ripoff of C++ and to some degree Java.
For some reason, the creator of the language saw Python and decided to do a clone, and people who had never used Python thought it was a good idea. Harsh, maybe, but that's my impression: if you've used Python at all, you wouldn't give Ruby a second glance.
So Ruby is a bad clone of Python, that's why its not worth learning. Fast forward to the article from today:
Ruby is to Perl what C++ was to C. Ruby improves and simplifies the Perl language (the name "Ruby" is even a tribute to Perl), and adds workable OO features (If you've ever tried to use classes or references in Perl, you know what I'm talking about).
Now Ruby gets to know its place as "a better Perl" with OO? Does that mean that Perl is a bad clone of Python just missing the OO?
I'm losing track of the ill-conceived comparisons, but I do know what's astoundingly clear: Bruce Eckel doesn't like Ruby, he doesn't like the attention its getting, and he doesn't like people such as Bruce Tate fueling that attention.
No beef, that's cool. But why not just say it like that? You could even have presented yourself as the polar opposite to the so-called hyper-enthusiasts: A hyper-detractor! The label comes complete with a cape, an evil smirk, and long tirades about how the other side is no match for your master plan.
I can't believe that its been only two years since I started working with Ruby. So much has happened since that its hard to think that I was actually doing PHP, Java, and other tech stuff for another 5 years before that. In any case, Ruby gave a thousand thoughts a direction and today is a day of celebration for what I began all those months ago: Ruby on Rails went 1.0!
Not only did we go the big one oh, we also launched a new site designed by Mr. 37signals himself, Jason Fried, which I'm very proud of: http://www.rubyonrails.org/. It includes two additional screencasts, a very nice list of applications in the wild running Rails, the core team looking sharp, and of course a ton of great quotes from people I admire.
So it's a big day. A great beginning. I can't wait to see where this will all go in 2006.
Jason was nominated for Entrepreneur of the Year by Venture Voice. Pretty cool, but also pretty stiff competition with guys like Scott Heiferman of Meetup, Joel Spolsky of Fog Creek Software, Evan Williams of Odeo, and others in the running. Since its a podcasting show, they give people who phone in their vote a 5x sway.
Hani Suleiman is the author of the infamous BileBlog, which has become somewhat of a fixture in the Java community. It's the place where Hani disparages everything and everyone with profanities, toilet references, and insults of a variety that's usually reserved for the worst trolls of the internet.
Oddly enough, he seems to have at least some fan base in the Java community. And even more perversely, he recently voted into the Java Community Process Executive Committee (not everyone was amused). A group chartered by Sun with taking Java forward.
Anyway, the reason I'm bothering you with an introduction to this man is because he just did a piece on "Web TwoPointSchmoe", "Tim FuckFace O'Reilly", and of course Basecamp:
The fact that he cited 37signals is testament enough to how divorced he is from reality. I know of 5 people who have tried 37signal's basecamp. None of these are techies, and every single one of them had an awful experience, and spends their time telling anyone who'd listen that it is, without a doubt, the worst project management tool they've ever encountered. The 'simpler means higher quality' line is also ludicrous. Simpler for who? Simpler to code has nothing to do with simpler for the user.
This is awesome. In the sense of awesome meaning funny in a sad, tragic way where you feel sorry for the person. On that note, Mena had some good thoughts of civility recently (I could definitely learn to be more civil at times too). And Kathy Sierra hits it with Are nice and honesty mutually exclusive?
Tim O'Reilly crunched the numbers from BookScan and the results are stunning. Ruby book sales have exploded. In total, Ruby is up 1,552% over last year in the same period. That's one thousand, five hundred, and fifty two percent. Holy smokes. It's insane!
To bring that number into perspective, Ruby books are now selling better than Python books. Which of course is the first time that ever happened. And that language was not even standing still. Python is up 20% over last year. At the same time, Perl is down 3%, Java down 4%. So its no wonder we have a feeling that the duo of modern, dynamic languages are taking off. It's because they are!
Tim muses on why Ruby is seeing this incredible surge:
Ruby on Rails is indeed, as Jonathan suggests, the driver of the interest in Ruby, which, after all, has been around for years without generating the kind of surge it's seen in the past six months. But as you can see, we're on the fence about whether or not Python has an answer to RoR (and we're not even asking the question about Perl!)
Naturally, I'm radiating with pride of having had the opportunity to bring the most beautiful programming language I know to the top of mind share. And it feels like we're just getting starting.
There's just a single book out on Ruby on Rails right now. And only one recent Ruby book covering 1.8. Compare that to the wealth of titles available for Python, Perl, and Java. Now imagine what those numbers will look like when the market is flooded with new titles in the beginning of the new year.
On top of that, we got a pipeline of killer announcements ready to keep the momentum going. Ruby has just started its ascend. Sure, it's a rocket take-off, but we haven't even left the atmosphere yet.
Again: 1,552% up, bigger than Python, just two books pulling the load, just getting started. This thing is riding the tip, baby.
One of the most rewarding aspects of doing a public application is the appreciation that'll trickle in from passionate users. They can make that bug you're working on seem so much less of a problem, ignite your motivation for getting that next feature done today rather than tomorrow, and they're an integral part of keeping your eye on the ball.
So we love all the buzz and appreciation we're getting for our projects. But every once in a while, something special will trickle in. Either something particularly insightful, kind, or from someone who's opinion you'd really like. Today we got one of the latter for Basecamp. Jim Dunnigan, former product manager for Microsoft Project wrote us:
I worked in the project management software industry for nearly fifteen years and Basecamp is the first product I have seen that is truly project management for everyone. It is nice to see someone finally figured it out.
That made my day.
Snakes and Rubies was a great success. Adrian gave a funny presentation on the origins of Django and I tested the patience of the audience for an hour and twenty minutes with nothing but screens of code, however beautiful. But at least I had the lights turned off in my presentation, so there was no public humiliation for dozing off.
Regardless, it was a good show. The Django guys have their heads screwed on right and we share more opinions on software development and framework construction than not. Of course, the interesting juice is in that diff, so let me riff on that for a bit.
With all this craze around web-frameworks these days, it seems that Zend has realized that they need to put the foot down and create The Official PHP framework. PHP does already have a fair number of frameworks, but none have really taken the lead and drawn a majority. Thus, the Zend Framework.
That in and of itself is not a terrible idea. With its prominent role in the PHP community, the Zend guys would probably stand a better chance than most of launching something to rally the troops. But of course its not unimportant how such a bid is conceived. And that's where my concern-o-meter is flashing.
phpdeveloper.org reports from a recent webcast on the Zend Framework:
They’re looking for that “extreme simplicity” that comes from a good review process, tons of testing, the inclusion of modues/features that most people use, and providing good, easy-to-use documentation for the entire project.
Hu?! This sounds like a fancy rewriting of design-by-committee. Or rather, design without cause. Which is the notion of setting out to create a framework through foresight. In my experience, it doesn't work.
And it sure isn't the way to achieve "extreme simplicity". I've found that the only way to achieve even mediocre simplicity is by solving real problems. In other words, frameworks are extractions. If they are anything else, it's usually.. well.. crap.
That's not to say that the Zend Framework designers can't pull off a miracle. Or that they don't superhuman talent and through shear wisdom and talent will be guided to "extreme simplicity" simply by thinking of what most people will use.
I would recommend that they would guide their development by something real, though. When your anchor is sample applications or imagined use cases, you usually end up optimizing for just that. Which more often than not is exactly the opposite of what is really needed when the rubber meets the road.
Simulation can only take you so far.