Thursday, March 01, 2007

Now that we've finished the February Contest, it's time to start March's. We'll follow the same rules. Anyone who wants to submit a blog entry can just put a link to it into the comments below. On the 1st of April, Jason Gilmore and I, along with our guest judge(s), will read the entries and pick a winner. The winner gets 3 Apress books (print or PDF) of their choice.

The last two contests have been a bit 'Rah! Rah!' for some people, though I've enjoyed the entries. This month we're doing something a little bit different. No language, and no framework is perfect. Anyone who has more than a passing familiarity with one ought to know about its warts. With that in mind, March's challenge is —

What can Ruby on Rails learn from other web frameworks?

Give this some real thought and tell us about what you think Rails could do better. Give us an example of how another framework (it doesn't even have to be Ruby based) does it. Hopefully, we'll come up with some great ideas for the Rails core developers to chew on.

Write on! (I'm looking forward to your responses.)

Update: One of the Rails core developers has expressed some concerns with the topic of this contest. Just to be absolutely clear:

This is not an official Rails contest ... Rails is opinionated software, and the core developers opinions are the ones that matter. (Of course, you might be able to help them see the light with a well written entry.)

If you really want to see your ideas in Rails, you'd do well to remember: "Rails has never been about inviting suggestions, we'd prefer patches :)"

9 comments:

I don't really have a public blog, but noting the lack of entries in this contest, I'll jot down my thoughts herein.

The single biggest obstacle to rails' success at the moment is the difficulty in deploying the applications. PHP webapps are flawed for so many reasons, but installing them is typically dead easy; untar the archive under your mount point and go. Java webapps have it even easier. Assuming you have a functioning servlet container at your disposal, just upload your WAR file.

Deploying rails requires an admin to learn about mongrel and load balancers and reverse proxies and the like, or endless amount of frustration with FastCGI. To enterprising go-getters this is perhaps not a big deal, but to stodgy IT administrators, this can be scary and off-putting.

Rails has done wonders to ease development. If the same effort can be put forth to easy deployment, the payoff could be huge.

If Rails could learn do make everything easier...not only development.Easier installations... 1-click even! MySQL or PostgreSQL should be installed with it at the same time.Deployment should also be easier. That means on any server: Apache, Lighttpd, Mongrel, even (shudder) IISNeeds to learn how to play right with FCGI

I must say this was a tough question to answer because there is so much that ROR does right when it comes to the agile development process.

There is only one feature that I have found in ASP.NET that I really wish ROR had and it is more of a syntactic sugar issue. I prefer when I am writing code that I can keep to a syntax that has the same look and feel as the code that surrounds it, by this I mean the view part of the ROR system or the rhtml. Adding <%= ... %> tags in the middle of an html page seems to interrupt the flow of the html. ASP.NET allow for creation of controls that when used on a page give the feel of regular html controls and just seem to flow better with the html.

I am surprised that there has been so little feedback on this topic. Oh, well. Here is my 2c. There are several things that I would like to see Rails adopt from other frameworks, the first being better object caching in ActiveRecord a la Hibernate.

It turns out that I have more to say on this topic. I was originally going to write about the modular applications feature in Django, but after a little digging I found that I could get the same thing in Rails using the Engines plugin. I wrote up my experiences here:

"Rails has never been about inviting suggestions, we'd prefer patches :)"

patches which we are notorius for not applying for months! hahaha jokes on you!

But seriously, it is distressing to see that "rails core" is treating rails as a corporate brand and are very eager to defend the carefully marketed assumption that "Ruby on Rails"(TM) is pretty much un-assailable.

Good for the Trademark owner (DHH and 37signals?) but not so good for the "opensource" community which has formed around the supposed opensource project.

I would also like to concur with another commentor that not just "development" part should be "easy", but that all aspects of the application development and deployment should give the adopters the so called "joy" that used to be touted about with such zeal.

What could "Rails(TM)" learn from other frameworks?

A pinch of humility and a little less assininity would be nice. Being opinionated doesn't mean you're always right as well.

Communists and Stalinists were very opinionated, but that didn't make them right all the time, and hey, their system dragged on for 80 years. Speaks a alot to that fact that most followers are pussies who are not willing to speak up because they'll get their social standing cut in "the community".