About the Author

Chris Shiflett

Hi, I’m Chris: entrepreneur, community leader, husband, and father. I live and work in Boulder, CO.


Terry Chay on Rails

Terry Chay's latest post is a work of art. This is why I read his blog. (If you're easily offended, you shouldn't.) He gives a quick slap in the face to those with more ego than intelligence (an issue highlighted by Jeremy Privett), then launches into a sarcastic, fact-filled tirade that cuts through some of the Rails hype:

Maybe if we work really hard at promoting ourselves, we can get a developer to create a site using PHP that will reach #700 on the Internet and fails so often that they've ruined the cuteness of cats.

To back up some of his commentary, he presents two graphs:

The first graph is used to put Twitter's success into perspective. Terry works at Tagged, so he uses that as an example PHP site and adds Facebook, because it's the heavyweight of that genre.

The second graph is a subtle reference to the reaction to Twitter's honest criticism of Rails. Terry asks:

Remind me, what is DHH doing lecturing Alex about scalability?

It's a rhetorical question, of course, because his graph clearly shows that Alex's web site receives far more traffic than anything ever developed by 37 Signals.

Terry makes another good point with this list:

  1. People like me are smart and have to run extremely large, scalable Internet infrastructures.
  2. People like me have used Rails.
  3. People like me don't use Rails to build extremely large, scalable Internet infrastructures.

I can think of several people who fit this description. In fact, I work for a technology-agnostic company that works on some of the largest web sites on the Internet. We have experience developing with Rails, and we have experience migrating from Rails to PHP. :-)

I'm sure Terry's post will be interpreted by many to be a criticism of Rails, but if anything, I think it's a criticism of the Rails community, similar to my post from early last year. Over time, Rails will certainly mature, but those of us who are interested in the technology (not the hype) would prefer to see the veil of perfection dropped in favor of progress. Terry hopes to see a new perspective adopted by the Rails community:

Maybe those people who build really large web sites daily have something to teach us.

Maybe they do.

About this post

Terry Chay on Rails was posted on Tue, 22 May 2007. If you liked it, follow me on Twitter or share:

11 comments

1.Nate Klaiber said:

I have been using rails for a few projects recently and I really like it. Takes a little getting used to some different things, but coming from developing CakePHP apps - its pretty easy to grab on and go. I understand the criticisms, and I appreciate both languages. I think both sides have 'ego' issues - both good and bad (think: steffan esser, smart yet can't interact with people on an adult level).

I think that there are SO many variables that come into deploying an application - that comparing A versus B based only on speed isn't really a good comparison. There are some extremely slow PHP apps out there (think: the new truemors website by Guy Kawasaki - slower than Twitter - running on Wordpress). Also, compare a language for a langauge - and a framework for a framework. Anyone can pick up a framework, but not everyone can built it efficiently. This is not to say the framework/language is bad - but the developer behind might not really know how to optimize the application.

So, I think it comes down to an array of factors - not just the outside speed of a website. Server software, programming, database, caching, etc - these all come into play.

They are both tools, and when used properly can be effective. RoR is still a young framework. I love CakePHP - but it is still young and has some major improvements on the way.

I guess I just get tired of the bashing war. Do all of his stats assume you want to create the next biggest site? What if it is just about getting a job done for a client in an effective manner? Is it worth worrying about problems that don't yet exist?

I have many more thoughts on it - and please don't think im going one way or another - I enjoy both languages/frameworks - I just get tired of all of the pissing matches.

Tue, 22 May 2007 at 21:10:21 GMT Link


2.Nick said:

Do all of his stats assume you want to create the next biggest site? What if it is just about getting a job done for a client in an effective manner?

Yes and yes. That was, to me, pretty much the _entire_ thrust of the original blog entry. If you're getting a job done for a client using a framework that just isn't going to scale, you aren't doing that job very well.

Is it worth worrying about problems that don't yet exist?

If you're referring to scalability, then absolutely, yes. You're saying it's acceptable to hand off a finished product to a client with full knowledge that as soon as their traffic crosses some threshold, it'll collapse on itself? (And with Rails, that threshold appears to be pretty low.)

Tue, 22 May 2007 at 21:31:05 GMT Link


3.Jeremy Privett said:

I was actually surprised at how wound up he got at the Ruby generalization. Honestly, Python would've been a better language choice for that sentence, but the entirety of the entry was (or should've been) a noticeable exaggeration. It did hit a point where the PHP Group is weak though, and that was the purpose. They really do need to work on their communication and organization, so as to avoid a lot of the problems we've seen, as of late.

Philip Olson and Pierre put up links to what seems to be a very good book reference on how to develop and manage Open Source projects.

At the end of the day, the group and the community should be a team. The fighting amongst ourselves isn't getting us to solutions. It's only causing more problems.

It was definitely a good entry by Terry, though. I dislike Rails, but I personally do hope it matures. Competition fuels innovation and success, after all.

Tue, 22 May 2007 at 23:46:50 GMT Link


4.Nate Klaiber said:

RE: Nick

First off, alexa stats as your foundation? Thats a poor foundation - they simply aren't a reliable set of stats (im on a mac and don't have the toolbar, count me out of any statistics). So to _thrust_ with those as your weapon, it's pretty weak.

There are way too many other variables to the argument that he simply doesn't cover - which makes it a rant at best.

A framework that will scale? Is that just the framework or the environment that the framework sits on? I could use CakePHP on a windows box and it could perform like total crap. I could take that same application, place it on a linux server and have it perform like a charm (not to mention the server hardware itself). Claiming just a framework is a weak claim. Again, I am not anti-PHP by any means, I love it and use it on the majority of projects - but I have also worked on Rails projects and have not had issues.

Scaling is relative. Get something done, get it out the door - then worry about scaling (this can always be done later, it doesn't have to be at launch time). I think this hinders people from launching things, because they try to cover all bases of problems that don't yet exist - while never getting anything done. I am not saying to build a shoddy website for a client - but unless you are planning immediate growth, then address problems as necessary. Twitter didn't start out slow, it just gradually got worse. As I pointed out earlier, Truemors, which is running off of wordpress, what dog slow from the very beginnings. Again - there are many other variables that need to be assessed here.

I would never build something for a client knowing that it would crash the next week. But I WOULD get something done and out the door, and gradually make enhancements or improvements as necessary (whatever that may be, server hardware/software, caching, load balancing, etc). I am not proposing leaving a client high and dry - I am just proposing to get things done.

That is the beauty of frameworks, such as CakePHP and RoR. They allow you to abstract the mundane and get things done in a quick manner. Both are tools. Ruby is a beautiful language. PHP is an excellent language. Pissing in the developers or community has no linking to the language/framework itself. As I pointed out earlier -PHP has its fair share of idiots as well.

Again, I just get sick of the pissing matches. His article was a rant - a very LONG rant.

Wed, 23 May 2007 at 02:54:15 GMT Link


5.Chris Shiflett said:

Hi Nate,

It's true that Alexa stats are going to be biased, based upon the the subset of users that install the toolbar. However, I think there's a strong case to be made for consistency. A consistent bias doesn't rule out the legitimacy of relative comparisons.

For example, I wouldn't use Alexa to determine absolute stats for site A (site A's logs should be used for that), but I would use it to determine the relative ranking of site A versus site B. I'm sure this use is still debatable, but when comparing the relative ranking of sites within the same genre, I have a hard time believing that Alexa's stats are useless.

Regarding your comments about premature optimization, you have a strong point. (This is also known as YAGNI, you ain't gonna need it.) But, you can't always ignore problems that you know you're going to have in the future; there is a balance to be made. (I'm not suggesting that you're ignoring this balance, but it's absent from your discussion.)

Terry's post is indeed a rant, and I doubt he would deny that. I tried to highlight some of the valid points and soften the tone, so that the message reaches a wider audience. On the other hand, it's Terry's tone that I find particularly entertaining, but I don't expect everyone to share my sense of humor. :-)

Lastly, I don't think Terry's post is specifically a rant against Rails or even its scalability problems. If anything, I think it's an attack of the naive community and the illusion of perfection that hinders progress. The PHP community has a few bad apples, as you pointed out, but the problems with the Rails community seem much deeper, which is why Terry objected when Jeremy suggested:

You guys really need to take some advice from Ruby Devs.

Wed, 23 May 2007 at 14:47:46 GMT Link


6.Nate Klaiber said:

Chris,

I definitely understand there needs to be a consistency. There are just so many issues with Alexa, that it makes it hard for me to count it as a legitimate source of traffic. For instance, does Alexa track the following:

- RSS feeds. Twitter makes heavy use of RSS feeds to keep up to date. Now they can check the statuses from their favorite feed reader - never having to access the website.

- IM services. Again, Twitter makes heavy use of IM so that people don't even have to visit the website to get their fix.

- API services. There are many people out there making use of the Twitter API, some are caching the results - others are giving the load to the Twitter servers. Again, this is not an explicit visit to the Twitter website.

- SMS services. Twitter allows you to post/view updates via your cellphone.

If Alexa is tracking those (not sure how they could do that), then maybe its a legitimate comparison against the likes of Yahoo! or other larger sites - but without that, its missing some very important traffic. Alexa is way too narrow, which is why in this instance I would render it useless - it simply isn't a good indicator. The one true indicator is the raw server logs that can track where traffic is coming from (including the services listed above). Unfortunately, this is not always readily available for the public.

I definitely agree that there needs to be a balance, hands down. And each client will have different needs, goals, and timelines. So - that balance is taken case by case. I apologize for not stating that earlier.

I am not saying the rant is a bad thing, I have had my fair share of 'rants' that didn't cover all of the bases of my discussion. This is the Internet, communication is much tougher than if it were a conversation face to face or with a group of people. Taking that into consideration, I don't think everything he said was bad. I took the time to read it, all of it. In spite of the fact that I use both Ruby/PHP (And frameworks), I found many parts to be humorous.

I think you hit the nail on the head with:

If anything, I think it's an attack of the naive community and the illusion of perfection that hinders progress.

I understand his objection to Jeremy, as I read his post earlier in the week as well.

Wed, 23 May 2007 at 19:06:14 GMT Link


7.Nick Halstead said:

Great follow up post Chris, I loved Terry's post probably the best I have read for a while. The Rails community is extremely vocal and extremely defensive of any criticism towards them, but I think Terry managed to cut through all the bullshit thats flying around and give a clear message.

All the senior developers I know have used Rails and they all love to use it when building smaller customer websites, but none of them will touch it when it comes to building something enterprise sized. The fact is the framework enforces a regime that actually starts lessening productivity at larger scales.

But I agree that the community at large has a lot to answer for, if they calmed down and accepted that Rails/Ruby is good for some things but not good for others we could all get on a lot better. (wishful thinking..)

Thu, 24 May 2007 at 07:30:42 GMT Link


8.Nathaniel Bibler said:

A quick note about using Alexa's statistics besides the fact that they are biased. When you directly compare twitter.com vs highrisehq.com, or any other product URL by 37signals, it isn't true comparison.

To access twitter's content, one goes to twitter.com, so all page views and visitors are logged to that domain. However, not a single product by 37signals is setup in a similar manor. For the tens of thousands of basecamp accounts, as an example, each account is hosted on a series of entirely separate domains (projectpath.com, updatelog.com, and clientsection.com to name a few) or, in the case of backpack, across different sub-domains (myaccount.backpackit.com).

37signals only uses those main domains as a source from which to initially create accounts and from which to market their products. The day-to-day usage, read: vast majority of page views and traffic, is done across all of these other "sites." So, it is not a one-to-one comparison across the listed sites and unfair to purport it to be so. More directly comparable visual data would make a far stronger argument.

Now, I'm not, by any stretch of the imagination, stating that any single 37signals application has nearly the number of visitors OR page views as does twitter. Furthermore, I'm absolutely certain that twitter's daily traffic dwarfs 99% or more of all sites across the internet. And, I'm definitely not saying that anyone should run a twitter-sized site on top of RoR.

So, it is a fair argument, while obviously biased, that is not far off of the mark. While Rails does scale, it takes a strong understanding of all system components (both hardware and software) and a deep understanding of all applications in use, which quickly adds up.

It is also useful to recognize that twitter and the like are the exceptions in scaling. As a developer, the chance that any site you're currently working on, or have ever worked on in the past will reach that kind of traffic volume is, in nearly all cases, pie-in-the-sky thinking.

In all frameworks and environments, Rails, PHP, or otherwise, there must be a "good enough" point which is specific to each application. A piece of software is _never complete_. There is always something more, or something better, or something different that could be done.

Fri, 15 Jun 2007 at 22:31:47 GMT Link


9.Kevin said:

No offense, but Terry's posts are a little high on ego going for cheap laughs and low on intelligence. I mean, a 2007 post on getting PHP and Oracle to talk together? I did this 6 years ago and someone else had already written about it back then! Terry makes it sound like a coworker brough fresh Philly soft pretzels to share at work. (I'm not saying people need to use Oracle, most PHP developers aren't quite sure why they use a database anyway.)

I resisted RoR as long as I could, for many reasons including DHH being a bit full of himself, but Ruby is a superior language, even if it is slower than PHP. Speed was never it's first goal.

Since jumping in the pool, I've found that the average Ruby/Rails programmer is significantly smarter than most of the PHP developers I've encountered (mostly through code.) PHP has always been for hacks. You either fight the language to get things done, are woefully ignorant of the issues, or you've created libraries to abstract the quirks away. I think most of the quirks are in the developers, anyway. You'd like them since you are fairly quirky (and smart) yourself, but maybe that would be too much competition?

Tue, 10 Jul 2007 at 13:35:18 GMT Link


10.Terry Chay said:

Kevin,

Did you ever know that you’re my HERRRROOO~~~

You’re everything I wish I could be~~~~

I can flyer than an (Colbert) EAAAAGLLEEE~~~

You are the wind beneath my wings~~~

*bows*

Thank you, thank you! I'll be here tomorrow

http://terrychay.com/blog/article/m...-php-hero.shtml

Tue, 10 Jul 2007 at 21:13:10 GMT Link


11.Kevin's Dad said:

Kevin,

Your mom called. She said you need to be back in Freshman lit on Monday. They have an important lesson about irony that you should not miss.

Dad

Wed, 11 Jul 2007 at 04:51:48 GMT Link


Hello! What’s your name?

Want to comment? Please connect with Twitter to join the discussion.