Strong opinions, weakly held

Ditching Rails

I found Derek Sivers’ post on ditching Rails interesting. He spent two years trying to reimplement the code for CD Baby in Rails, abandoning PHP, and then abandoned the Rails project and rewrote his old PHP application in PHP (its original language) instead. From his list of reasons, it sounds like he made the right choice.

Perhaps he should have read Joel Spolsky’s essay on the dangers of rewrites before getting started. Interestingly, you’d have to say that Joel was wrong in chastising Netscape for rewriting Mozilla from scratch. Nothing as good as Firefox could have been written using the existing Netscape Navigator code.

By the way, PHP’s autoload feature looks like a lifesaver.


  1. The lesson must be “if you’re going to rewrite, plan on doing it twice” since really there’s not all that much of the Mozilla 1.0 rewrite left; like Derek, the people who rewrote Gecko after 1.0 (and, for that matter, before it) and the people who rewrote the Suite UI as Firefox were doing so based on what they learned rewriting 4.x.

  2. You may want to read Adam Turoff’s take on the rewriting issue, where he takes the thought you expressed and runs with it:

    What’s missing from the discussion is an idea from Brian Eno about the differences between the “small here” vs. the “big here”, and the “short now” vs. the “long now”.

    He argues that Joel is both correct and wrong.

  3. He reasons were right, as they clearly worked for him in the end, but the comparison between PHP (a general purpose language) and Rails (a web development framework) is an odd one to me. He said he didn’t use a framework, because Rails was imposing to many things on him he didn’t want or couldn’t use…but then goes on to say how he implemented all his own MVC, templating, and caching. Is it just me, or did he write the CDBaby framework in PHP and then write the CDBaby application?

  4. I’d agree that he’s built himself a framework along with an application.

  5. PHP’s autoload feature looks like a lifesaver

    I suspect it is also the source of a great number of mysterious errors. The user notes on it are amongst the longest of any other part of the php doc. Be careful.

  6. Sounds like he had much more of a management problem than a technology problem.

  7. If he built himself a framework at all, then he probably did it in the same way 37Signals built Rails: by building an application whence a framework could be extracted from after the fact.

    PS.: Rafe: would you mind approving the other comments I’ve left on your weblog?

Leave a Reply

Your email address will not be published.


© 2019 rc3.org

Theme by Anders NorenUp ↑