Tuesday, November 14, 2006

Tim Bray, Comparing Intrisics

Not too long ago, Tim Bray made a presentation at a PHP conference in Frankfurt. Several people jumped on some of the slides Tim used (see Floyd's post at InfoQ for a fairly balanced take). Everyone seemed interested in his comparison of maintainability and scalability between PHP, Rails, and Java. While I thought that was interesting (and a bit flawed, that's a topic for another post though), something else was even more interesting to me. Check out this slide (but remember while these show a ranking of the three languages, they aren't graded):

Comparing Intrinsics

To me it's really interesting to look at the three comparisons on the right:

  • Dev Speed: Rails wins here, with PHP second and Java third
  • Dev Tools: Rails and PHP tie for second behind Java
  • Maintainability: Rails wins here too, with Java second and PHP third
Something that leaps out to me is that Dev Tools are created and improved as a reaction to the friction a language throws in the way of 'Dev Speed' and the obstacles it presents to 'Maintainablity'. This becomes more interesting in light of the constant cry that Ruby isn't ready for prime time because it doesn't have 'real' development tools. (Please note, I am pretty happy with the Ruby tools I've got — not that I'd turn up my nose at newer, better, shinier toys, err tools though.)

Now, I don't think there's anything wrong with good tools ... I can do a lot of fancier things in a well stocked kitchen than I can when I'm camping. When a language doesn't get in your way, they seem less important though. Maybe that's why Ruby doesn't have them yet, and why most of the Rubyists don't complain too much about it.

I asked Tim what he thought. He replied,

Your hypothesis - that tools are created in response to language/developer friction, of which Ruby clearly has less - is plausible. But there are things that I can do easily in NetBeans that would increase my productivity tremendously if I could do them in Ruby, so even if you're right about the motivation for tool-building, the quality-of-life issue is real.

When I asked him about specific tools he thought would help, he listed two

  1. Integrated IDE with editing/refactoring/debugging/testing all at the touch of a button.
  2. "Find usages" - find me all the places this method is called. That's huge because once you have it, you empower yourself to do all sorts of automated refactoring support.

Technorati tags:

3 comments:

  1. ActiveState's Komodo comes pretty close to fitting the bill. It doesn't seem to get a lot of press in the Ruby community however.

    ReplyDelete