A bit over two days ago, Derek Sivers posted in the O’Reilly Ruby blog on his experience rewriting CDBaby.com in Ruby on Rails and why he chose to go back to PHP. Without going point-by-point, Derek said that after a hefty time investment, he abandoned reimplementing the website in Rails and took the lessons learned back to create a fresh, lighter-weight PHP and SQL implementation.

As you’d expect, this generated a comment storm filled with at least four types of logical fallacies, often degenerating to name calling and language specification waving. The vast majority missed the point, many of them after Derek made it unequivocally clear: he felt was trying to bend Rails in a way it wasn’t meant to bend, so he stopped. I was going to categorize the comments and poke some fun, but Jamie Flournoy beat me to it (and with a better overall message, to boot). Add to that some earlier thoughts from Chad Fowler and Joel Spolsky on why and how to evolve code rather than rewrite it wholesale, you’ve got a balanced point of view, imho.

Predictably, most commentators got caught up in the X-is-a-better-language-than-not-X argument for nearly any possible value of X. I’m kinda down with Paul Graham on this one: there are better and worse languages. We part ways, however, in that PG feels the continuum is absolute where I believe it’s a matter of perspective, turning on a complex set of factors such as purpose, expertise of the available team, timeline, expected lifecycle, hiring pool, &c.

It’s arguable, though, that since I don’t know Lisp, I lack the proper perspective. I’ll share three interesting quotes from Paul Graham’s quotes page:

“SQL, Lisp, and Haskell are the only programming languages that I’ve seen where one spends more time thinking than typing.” —Philip Greenspun

“We were not out to win over the Lisp programmers; we were after the C++ programmers.  We managed to drag a lot of them about halfway to Lisp.” —Guy Steele, Java spec co-author

“Some may say Ruby is a bad rip-off of Lisp or Smalltalk, and I admit that. But it is nicer to ordinary people.” —Matz, LL2

I guess it’s time to learn Lisp …



blog comments powered by Disqus

Published

25 September 2007

Category

ruby/rails