Thursday, July 13, 2006

Ted Neward at DUC 2006: "Objects, All the Way Down"

Ted Neward gave a nice talk at the DUC 2006. He made lots of good points, but I have to disagree at least on one.

  • Ted assumes that productivity is one of the most important factors in software development.
Yeah, that's so right!!!

  • Scientific research has shown that a programmer can only write a certain amount of code-lines per day, mostly independent of the programming language.
Probably this is correct, too...

  • So a programming language which translates to more resulting assembly code per line of programming code is more productive. One line of Ruby-code translates to hundreds of lines of assembly code whereas one line of Java-code translates only up to ten. So using Ruby is far more productive than using Java.
This argument is completely nonsense! I can start a web-application server like Jetty in three lines of Java-Code which results in thousands of thousands lines of assembly code. Printing "Hello World" onto the screen in Ruby results in thousands of thousands lines of assembly code too, because the lines needs to be interpreted by the Ruby-Interpreter at runtime... So what does the argument show at all about productivity? Nothing...

And I don't think that this kind of argument works for the "average line of code". Maybe you can do a list-comprehension in one line of Ruby-Code and you'll need two or three lines of Java-Code for this. Are you three times more productive with Ruby than with Java? Yeah... if your whole application consists of list-comprehensions, if you don't count the typos you've made and which bubble up at runtime, if you don't want to refactor your application, if you don't want to be supported by an IDE and so on.

To make a long story short: I've used lots of Python for years (and used even some Ruby), but switching to statically-typed Java made me so more productive that I don't believe in the "scripting languages will save our ass"-refrain no more... more to come on this topic.

0 comments: