Thursday, April 10, 2008

The Next Big Thing

The latest Dr Dobbs showed up in my mailbox today (or, according to my clock, yesterday. I really need to work on this insomnia problem.).

I find it an interesting magazine. Granted, it used to have more content when I was first given a copy in college by one of my professors, but it’s still a decent publication.

The article that’s caught my attention so far is the interview with Paul Jansen, managing director of TIOBE Software. He makes some interesting comments.

First off, since his company tries to measure the popularity of programming languages, he apparently gets a lot of very passionate emails from programmers who are upset that their favorite language isn’t higher on the list.

This doesn’t surprise me a great deal. After all, there are way too many holy wars in programming – vi vs emacs, C# vs Java, Perl vs Ruby vs Python, etc etc etc.

Second, he states that C and C++ seem to be losing ground. This I can agree with, but I only sort of agree with his reason as to why this is happening. In his opinion, it’s because languages without automatic garbage collection are falling out of fashion since the performance hit garbage collection causes is now outweighed by the memory problems introduced by sloppy programming.

I agree with this statement for most applications. However, I don’t see C and C++ going away any time soon for a few reasons.

  • There’s a LOT of legacy C and C++ code out there.
  • Some applications will always need the speed and close to the metal control that C and C++ give you.
  • Embedded programming (while a lot of it is done in ASM, a fair amount is done in C or C++ as well from what I understand).
  • Operating systems – in addition to needing close to the metal access, it seems sort of silly to bootstrap a CLR or VM (depending on if you’re a .NET or Java fan) in order to run the OS on top of it. It’s a layer of complexity and set of performance issues that we just don’t need.

Yes, I realize that virtualization is being used successfully now, but that’s a layer above what I’m talking about. As it stands, you have Hardware -> OS -> VM. If you went with the current forerunners in the garbage collected programming world, it would be Hardware -> CLR/JVM -> OS -> VM.

This leads me to his last statement/prediction.

He thinks that, in five years, there will be two main languages – Java and C# (followed closely by VB) and that he foresees no new language paradigm.

I’m not sure that I’d agree with that for the simple fact that this profession tends to change pretty quickly. I honestly wouldn’t discount “The Next Big Thing” displacing the current giants.

Then again, we have to keep in mind that most magazines which cater to industries aren’t in the business of reporting trends, but rather creating them – by seeing something often enough and in enough places, people start to think that it’s the next big thing and end up making it so.

As much as many of us may deny it, people are, by and large, still pack/tribe creatures. Part of that is “belonging”, and that means that we tend to follow the trends we think others like us are following.

It’s a survival mechanism (and an easily exploitable one if you know how).

Current mood: tired
Current music: iiO - Rebel

No comments: