Two postulates i would like to throw out there:
Every successful project follows a similar model.
Rails gains most of its flack not from its doctrine but the deviation from its doctrine.
I’m not a huge Ruby or Rails fan, but I applaud DHH for at least having a strong opinion. Too many tools out there try to satisfy everyone’s aesthetics and end up being bland.
Wow. Managed to nail all the reasons I would dread using rails. I had a test project and very quickly learned all about the magic of the big smile inflector. Alas, I tried making a class called Fish, the plural of which is also Fish, which results in mayhem and madness and indecipherable stack traces because unlike Person and People, Fish and Fish can’t coexist. Needless to say, no big smile here. (No, I wasn’t trying to break it. I had no idea this behavior existed, fish just seemed like a reasonable thing for me to make a sample inventory app for.) No way I’m touching something I can’t begin to understand.
Non-sarky question: did you file a bug report? I haven’t used Rails for ages, but that sounds like a pretty easy-to-come-across issue that they should fix.
No. At the time, it seemed like either it was working as intended and I should know better, or if it was by chance a bug, I was astonished I was the first person to encounter it, and I was terrified of what the second bug might be.
Also, this was some time ago, and for all that there were 700 introductory tutorial blog posts everywhere, trying to find out where any particular ruby gem/component “lived” was a nightmare. github, rubyforge, rubygems, etc. It’s nice that rdoc lets you put documentation on your website, but a website that consists of nothing but rdoc output is pretty useless.
I actually enjoy Ruby more without Rails and its doctrine, but the language would not be that famous without it… Double edged swords something something.
Totally unrelated to the content, but it’s very nice to see an open source project site which has both decently appealing design and excellent readability.
Where Python might boast that there’s “one and preferably only one way to do something”, Ruby relished expressiveness and subtlety. Where Java championed forcefully protecting programmers from themselves, Ruby included a hanging rope in the welcome kit. Where Smalltalk drilled a purity of message passaging, Ruby accumulated keywords and constructs with an almost gluttonous appetite.
That scares the hell out of me.
Optimized for writing over reading. Unfortunately, succesful programs involve far more reading than writing.
I’ll respectfully disagree. Lots of very successful games are utter garbage on the inside, as are lots of nutzo web frameworks (cough Wordpress cough), as do lots of business software (like Netscape).
Success and software quality are, I hold, in practice semi-orthogonal goals.
I think you’re disagreeing with something I didn’t state. I said that successful programs are read more than they’re written, and I agree that success and quality are mostly orthogonal. Even if the code is awful, successful programs are read more than they’re written. I wrote that comment because I’ve seen maintenance (which starts as fast the first pass of code is committed) become ridiculously expensive because of Ruby and Rails misfeatures even before other quality issues.
I will say it is poetic.