Friday, October 12, 2007 -
If you ever write a contentious post, don't tell one of your friends who's got great Karma on Reddit. You'll be pretty busy getting buried by flames for the next day. It's worth touching on some of the responses - I'll keep it brief.
Hi, My Name's Rob, Open Source Advocate
Most of the people who commented on my blog probably have no idea that I've created two very large Open Source projects on the .NET Platform. One of which is SubSonic, a "Rails Port" in which I'm doing my best to bring many of DHH's ideas into ASP.NET (which I spend a lot of time supporting - even with regards to Rails!). I'm a free thinker and have no problem stating my opinions, to either side.
The Potty Mouth Thing
I shouldn't have said that - and I apologize to DHH for my word choice. Over here, the term "Potty Mouth" is a thing you call children with foul mouths - it seems in Europe this isn't the case and some folks took exception. DHH does himself and his users a disservice by lacing his posts and presentations with F-Bombs: it's disrespectful and juvenile- and I'm not the only one who thinks this. F-Bombs are for people without command of their language and I know that's not the case with him, he's an incredible writer. So I'm at a loss as to why he keeps using playground-speak. I prefer ScottGu's style.
The Bashing Bandwagon
I don't jump on those - as people have noted "I'm a little late to the party". I'm not bashing Rails (it's silly to suggest I am given my work on SubSonic and the other posts I've done). I've waited for the dust to settle out of the Bashing Party to see what the Rails Core Team has to say about it all. I don't think "It's your problem" is reasonable. Aside from flaming me - answer this question for me: Are you happy with their response to the perf issues? Is it your problem?
Use It Or Don't, DHH Owes You Nothing
The Rails concept is a gem, the size of the user base shows that. No, DHH owes me nothing. Or does he? It's the Hero's Dilemma: You've done something great, you're a hero. You can't walk away because you put yourself there, and by doing that, you set the expectations. You sing the songs Britney, you show the skin...
Misrepresentation
Commenters have suggested that I misrepresented quotes. I've offered links in every case and they tell the story. Telling me I'm misrepresenting is out of line.
Finally.. I want to share what DHH has created with as many Microsoft developers as I can. That's my mission with SubSonic. I don't "do it for me" and that's as it should be.
Aside from blatant flames one thing that has always disturbed me is how blindly so many developers seem to follow a single language or framework. It's .NET or nothing, Rails will conquer all, Python is the language of the gods, etc. It seems those that enjoy learning new things and seeing how they can mix are few and far between while most are content to plant their flag in a single camp and then blindly defend it, even if only good constructive criticism is being offered. It's as if people identify with the framework they use and if someone is criticising that then they must be attacking them as a person.
While I understand DHH's meaning behind his F-bomb mentality and even agree in many respects his approach was just plain wrong. I don't like to get wrapped up in what's "appropriate" or not since it's so subjective but that wasn't a good way to express the sentiment. Also, "I build for me" doesn't really jive with how aggressively 37signals markets themselves and like it or not Rails and 37signals are linked. DHH went way beyond the, "here's a tool I created that works for me, I'm making it available for others to play with," a long time ago and nothing on the core websites lets a budding developer know that at some point they may be told to fuck off if they try to use Rails in a way that differs from DHH's vision.
While I'm not satisfied with the hosted performance or scaling of Rails I do have to say the critic of having to write a 100 lines in C to be a bit unfair. Even in my days of writing C and C I had to drop down to ASM at times for a few perf critical routines. Then in classic ASP I had to write COM objects in Delphi to gain some speed. Half the extra class libraries for PHP are C-based and I've even had to call out to unmanaged code from .NET to meet certain speed requirements. No framework, no language, no library will be able to do everything, that's why we learn new languages and tools.
DHH is certainly free to treat the community in whatever way he pleases, but he comes off looking like a complete twit. All the Rail sycophants will certainly defend him, but why? Would I really want to be involved in a community where the leader tells everyone to "fuck off" if they have a difference of opinion? To each their own, but I'll stick with a more friendly, less narcisistic environment.
And for the language...While I find the phrase "potty mouth" to sound a little silly, I agree with Rob that excessively crude language is for people who have no creative way to express themselves. It's being puritanical, it's not being uptight. Dropping "fuck" on every sentence makes you look like a simpleton who has a limited vocubulary. Naturally, other people with similiar problems expressing themselves will see no issue in it and will rally around the word "fuck" as if they invented the word and by using it are demonstrating how free they are. Bizarre.
Recently I had the misfortune of working next to a Ruby freak, and he kept talking about "scaffolding" and all this stuff, and I'm like, yeah, I've been using code generators since VB6 and I probably couldn't write raw ADO.NET code from scratch if my life depended on it. Plus, a auto-generated DAL is nothing revolutionary , only PHP and ASP hacks write DB calls from scratch.
Anyway, I cracked open a Ruby book and it looked like I was back in 1999 -- HTML mixed up with Ruby tags. And the text editor and command-line stuff kinda threw me. Like what are these guys, Ludittes? Nice for hobbyists, but if you are "enterprisy", Ruby is kinda like a trophy-wife -- sexy, good in bed, nice to look at, but not really in it for the long haul. And I don't know C, so when it doesn't scale, I'm screwed.
Not yet
I'll just add that If DHH is so eager to use the f-word, I don't see why he (or anyone at RoR) cared about someone using a simple "Potty Mouth"...
For those coming from .NET, we've already had at least half of what Rails offers. What we're missing can be introduced via tools like Subsonic or by changing how one thinks.