This is a single archived entry from Stefan Tilkov’s blog. For more up-to-date content, check out my author page at INNOQ, which has more information about me and also contains a list of published talks, podcasts, and articles. Or you can check out the full archive.

The Future of Software Development

Stefan Tilkov,

Michael Nygard:

I fear that Java will have to be abandoned to the "Enterprise Development" world. It will be relegated to the hands of cut-rate business coders bashing out their gray business applications for $30 / hour. We've passed the tipping point on this one. We used to joke that Java would be the next COBOL, but that doesn't seem as funny now that it's true. Java will continue to exist. Millions of lines of it will be written each year. It won't be the driver of innovation, though. As individual programmers, I'd recommend that you learn another language immediately and differentiate yourself from the hordes of low-skill, low-rent outsource coders that will service the mainstream Java consumer.

I don't see things quite as drastic as this, but I totally agree that knowing Java as your only language is no longer enough. (Be sure to check out the whole piece, full of interesting predictions).

On April 21, 2010 10:41 AM, Al Lang said:

When was knowing only Java ever enough? I’ve never met a good coder (unless they were extremely junior) who knew only one language. And yes, I work in an “enterprise” environment.

On April 21, 2010 11:32 AM, Mike said:

Sadly, I think there is some truth in what he says. I am a Java expert and Spring Contributor and I find it hard to get a decent paying freelance project. There are hordes of less skilled and cheaper Java coders out there and the project agencies just select based on keyword matching (which they have no clue of) and price.

Which language should I learn? C#? (Scala and Clojure are cool, but I have yet to see a freelance project using them.) Or should I just skip programming and go for higher-value activities like architecture, analysis or project management?