No, you do not have to settle on a poor language because you have bad programmers

I do not entirely believe the title of this post. Clearly, if you hire subpar programmers, you have to settle for whatever programming languages they know. These days, it is probably going to be Java. And you could do a lot worse than choose Java. Or maybe it is PHP. Again, PHP is fine.

The real question is… should you prevent your programmers from using Ruby or Python because you worry about what will happen to the next guy who needs to maintain their code?

On this issue, Eugene makes a great point. What languages like Java offer that “crazier languages” like Ruby do not offer is builtin testing. In Java, types are checked at compile time, except of course, when it does not, such as when you use collections of objects. In languages with dynamic typing, fewer tests are done at compile time.

The solution? Simply get programmers to use unit testing more aggressively. In my experience, unit testing is relatively painless to put in place. It is a great way to document what you expect your code to do, way beyond what static typing offers.

So, next time a programmer working for you wants to use Ruby, just say yes, but require him to do unit testing.

Published by

Daniel Lemire

A computer science professor at the University of Quebec (TELUQ).

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see