About Rails and Ghettos
This is a post that has been a couple weeks in the making (in my head), but the more that time passes by the less interested I am in writing it. Nevertheless, there are a couple of points I want to get out there both for the record and for possible discussion.
First of all, it is obvious that Zed was using that ugly word in its current derogatory sense, and I'll keep that sense in my writing as well. According to the dictionary one of the definitions of ghetto is "an isolated group" or "a situation that resembles a ghetto especially in conferring inferior status or limiting opportunity".
In the greater realm of IT?
Does that definition ring true of Rails in the greater realm of Information Technology, or even just the programming world? I don't think so. The Rails community is not an isolated group, having members across a wide, diverse, range of enterprises and groups of individuals, from the highest-paid professional consultants, to the humblest program-for-fun enthusiasts.
What about inferior status, or opportunity limitations? That doesn't ring true either. If anything, the mainstream fascination with dynamic languages was ignited by Ruby on Rails a couple of years ago, which gives popular Rails practitioners a disproportionate amount of influence (ahem) in the programming world, and a prominent voice in online conversations about the future of our craft.
From my own (admittedly-biased) viewpoint, Rails is continuing to explode in popularity. Among other things, my book The Rails Way is selling extremely well, and we just had to do a rush reprint because demand exceeded even our optimistic estimates. It's currently a top-seller on Safari (a good indicator of traditional corporate developer interest levels), and has been hovering in the hundreds ranking on all of Amazon.com.
But where are the jobs?
To those that would use the number of Rails-related listings on major job boards as evidence of opportunity limitations, I point out that due to extraordinary demand for Ruby talent in the marketplace, it is almost pointless to advertise Ruby job positions via conventional channels. The way to find Rails talent is via targeted Ruby job boards, word of mouth, and blogging. Counts on mainstream job boards are meaningless at best, misleading at worst.
Most Rails developers worth their salt are contracting, simply because it is very lucrative right now. Rates for premium Rails talent is now in the neighborhood of $200/hour and continuing to climb. Average Rails talent costs at least $100/hour. The work is finding them, not vice-versa. Why are clients willing to pay so much? Because they know we are a cost-effective bunch, doing the same amount of work (as individuals) that would take multiple traditional programmers in other mainstream languages, and with higher-quality as the "icing on the cake".
How about just in the Ruby community?
Considering Zed strictly within the confines of the Ruby community, and not in the much bigger sphere of programming, I think he's still wrong. Like a newbie OO programmer violating the rule prefer composition over inheritance, he made an is-a/has-a mistake. What is true perhaps, metaphorically, is that Rails has ghettos, and Zed made the mistake of attributing qualities of a ghetto to the whole.
What I"m trying to say is that there are groups of people that have come over to work in Rails, the city of Rails if you will, who have settled into neighborhoods that can be very dangerous (monetarily) to inexperienced clients.
But why can't Zed get a job then?
What put me off about Zed's rant was not so much the content, but rather that it achieved such wide circulation. It wasn't meant to be read so widely, and I don't believe that he had destructive intentions when he wrote it. I lived and worked with Zed for five months during 2007, a time in which we became (and remain) good friends. I swear to you that Zed is a good, friendly guy, in person. (His created, over-the-top, narcissist online persona is another story!) The rant was filled with tons of inside jokes and commentary that really only make sense to other clued-in Ruby people, stuff that comes across as just mean, stupid or crazy to everyone else.
For instance, a significant percentage of readers obviously understood from the rant that Zed is unemployed, starving, and/or stark-raving mad. All three could not be further from the truth. Zed is happily employed by a major, household-name financial institution in New York City, where he comes into work everyday with a nice shirt and tie, and leads a Rails (yes, Rails) development team. Of course, none of this is news to those of us that really know him, but the rest of the world got a totally different story.





In my opinion, Zed started very important discussion about Rails position in the IT market.
Rails can't explode in popularity without reliable platform for a cheap shared hosting (like Apache with mod_php). I think this the main problem for now. In Europe it's harder to find hosting plans for one small project only. I guess that there is a lot of IT managers in a small companies, who afraid words like: "cluster", "dedicated server", "performance problems".
Your book is truly great. You should think about changing the title for "The Rails Bible" ;)
Posted by: Michal | January 13, 2008 at 03:45 PM
Damn it, Rails doesn't need to run in a shared environment. Companies who are afraid of the words cluster and dedicated server need a viable business plan so they can pay for these things. And they're not even expensive these days!
Don't listen to Dreamhost, they're blowing smoke. Rails (and other Ruby web dev options) are perfectly fine deploying as is. Shared hosting is stuff of the past, get over it.
Posted by: Ryan Allen | January 13, 2008 at 04:52 PM
Thanks for the insights about Zed and his comments. BTW, I read through your book and have picked up a lot of guiding principles for Rails. I've got many dog eared pages I refer back to.
Posted by: Karmen Blake | January 13, 2008 at 07:04 PM
Ryan Allen,
From the standpoint of an admin, I can guarantee you that Rails is not nearly as server-friendly as PHP. With mod_php, servers can host multiple applications with no more configuration than uploading the files. Rails not only requires extensive configuration, a separate instance needs to be created for every application. Hopefully JRuby will create a compromise where Rails apps can be deployed like Java apps.
In the mean time, most web sites are no where near a point where they need more than shared hosting. For those groups that do, it's just as easy to expand one's infrastructure with a PHP-like setup as it is with Rails.
From a more philosophical point, it seems contradictory to me that a framework that emphasizes reducing the work on the programmer would not apply that same philosophy to all areas. But that's not really my focus here.
Posted by: RJ | January 14, 2008 at 12:23 AM
I think we all know that ZS is gainfully employed and still using rails.
Likewise we can all see the rails community taking on the same characteristics of any successful product.
ZS may pick individuals, but you have to admit that one a product reaches a critical mass the general discussion tend to revolve around zealots rather than progressives.
ZS was ranting and he made that clear, I am not sure what's wrong with that
Posted by: Justin | January 14, 2008 at 01:12 AM
@Ryan Allen: if you find me a non-shared hosting that I can pay 30 bucks a year, I will agree that "shared hosting is a thing of the past".
Posted by: Paolo Bonzini | January 14, 2008 at 04:55 AM
"To those that would use the number of Rails-related listings on major job boards as evidence of opportunity limitations, I point out that due to extraordinary demand for Ruby talent in the marketplace, it is almost pointless to advertise Ruby job positions via conventional channels. The way to find Rails talent is via targeted Ruby job boards, word of mouth, and blogging. Counts on mainstream job boards are meaningless at best, misleading at worst."
So what you are saying is since there is no proof of Rails popularity just your saying so makes it so? Or maybe the Rails community is so small in the scheme of things and the market for Rails is so small they all get snatched up by the current Rails developers? That is equally plausible without needing any proof either. : )
Posted by: Robert | January 14, 2008 at 07:31 AM
Zed's rant was a shotgun blast, and your is/has analysis of the word ghetto is an argument about a single pellet in it. I think a better word for what Zed describes is cabal - an in-group with associated reality distortion field. There's only a single fact in this entire post, and that's about Zed's current employment status, which in my view only adds to the power of his argument.
Posted by: Daniel Reeders | January 14, 2008 at 07:54 AM
@Daniel: His rant may have been a shotgun blast, but it was titled "Rails is a ghetto", and that's the assertion that I wanted to challenge. I fail to see how Zed's employment status adds to the power of his argument. I mean, which argument? That Rails is a ghetto? There were probably dozens of arguments in the overall rant, only some of which I disagreed with.
Posted by: Obie Fernandez | January 14, 2008 at 08:01 AM
It is perfectly feasible to have gainful employment even in the worst ghettos. But that is stretching the metaphor a little too thin.
I think that Zed was mostly right in that there are some people in the Rails community that we should be wary of. We have a habit of taking the words of certain people for gospel, and not really challenging them. I think that will definitely change now, and the community will be better for it.
Zed's rant achieved such high circulation exactly because of that property. Zed was one of the people whose word we never really challenged. By making us challenge his word, a lot of people in the Rails community (myself included) looked upon everyone in a completely different light. The kind of essay/rant that makes you look at your environment differently is definitely rare, and fed its popularity significantly
Posted by: Erik Peterson | January 14, 2008 at 08:36 PM