Where is our "magic-removal branch"?

| | Comments (4)

Django recently announced that their "magic-removal branch" is ready for beta testing. Basically, a couple of months ago they branched to make "several sweeping changes to the framework to improve its usability and remove unnecessary 'magic.'" In other words, they are refactoring their code, cleaning it up, and using proper engineering techniques now where they previously used Clever Tricks. This will make their code much more maintainable over time and is a Good Thing&tm;.

All healthy software goes through periods of expansion followed by contraction. Rails seems to avoid this latter phase (I suspect) for two reasons:

  • refactoring is not as sexy as adding new features
  • the tests for rails are really not good enough to actually trust (so other developers like me really can't submit refactorings).

But damn, it is in dire need of cleanup. Massive amounts of cleanup. So my real question is, when does rails get some love?

rails_growth.png

Rails Code and Test Size per Release (rough numbers)

4 Comments

I absolutely agree. I think they need to have a "Summer of Refactoring" (and bug fixing). :)

  • Dan

Nice graph!

More graphs that tell a little more of the story here:

http://geoffreygrosenbach.com/projects/show/6

I was mentioned recently that some parts of Rails will be exported as plugins, but general code refactoring wasn't mentioned.

I remember and offhanded comment from David that Rails 2.0 would probably be the 'slimfast' release. Of course, that will only be easier with better test coverage earlier.

As a Django user (and big fan of the magic-removal changes) I'll say a couple things in defense of Rails in this context: 1) Django is still pre-1.0 and carries an express warning that the API may change; 2) from the chart it looks like Rails' test coverage has gone from about 30% to about 50%.

Leave a comment