I saw this the other day. It seems like this issue has come up periodically. I find it incredibly boring.

I saw this today. It seems like this issue has come up periodically. I find it incredibly sad and embarrassing.

Perhaps, just perhaps, it's time to raise the level of discourse in the industry. It seems to me there is a lot more fun to be had figuring out how to build working systems that are elegant, useful and extendable than in building yet another damned persistence layer for some language that happens to be in vogue because it's, say, dynamically typed.

I think I can safely say that none of the real problems I face have much to do with the fact that I need to do casts, or the fact that I can't express something with less typing or whatever. In fact, none of the problems I face have much at all to do with the language I'm using. No, the problems I have now are the same problems I had 15 years ago. Reducing complexity, increasing robustness, enhancing expressiveness. Stuff like that. I suppose it's possible I'm missing something, but I don't see any language that helps me with those things at the fundamental level I'm looking for.

It is a sad state of affairs indeed, when developers think that just because you're not getting the front page of causing havoc on other developer's languages, that the game is up and they have to move on.

For myself, I probably won't move on from Java for a long time, until I believe there is a worthy successor. However, that doesn't stop me tinkering with other languages. C# is a bit like Perl to me - tinker with it for a bit but it doesn't really grip me, and the need to look at it soon passes. To me, I only really program in three things Java & Java related (JSP's and so on), Ruby (because it has a form of elegance that appeals to me) and XSL (because I have to). I use JRuby with Java for scripting (I have to choose Jython for speed).

For me thing big thing missing from Java that many dynamically typed languages have is closures and anonymous functions. But that's it really.

It is a sad state of affairs indeed, when developers think that just because you're not getting the front page of causing havoc on other developer's languages, that the game is up and they have to move on.

For myself, I probably won't move on from Java for a long time, until I believe there is a worthy successor. However, that doesn't stop me tinkering with other languages. C# is a bit like Perl to me - tinker with it for a bit but it doesn't really grip me, and the need to look at it soon passes. To me, I only really program in three things Java & Java related (JSP's and so on), Ruby (because it has a form of elegance that appeals to me) and XSL (because I have to). I use JRuby with Java for scripting (I have to choose Jython for speed).

For me thing big thing missing from Java that many dynamically typed languages have is closures and anonymous functions. But that's it really.

It is a sad state of affairs indeed, when developers think that just because you're not getting the front page of causing havoc on other developer's languages, that the game is up and they have to move on.

For myself, I probably won't move on from Java for a long time, until I believe there is a worthy successor. However, that doesn't stop me tinkering with other languages. C# is a bit like Perl to me - tinker with it for a bit but it doesn't really grip me, and the need to look at it soon passes. To me, I only really program in three things Java & Java related (JSP's and so on), Ruby (because it has a form of elegance that appeals to me) and XSL (because I have to). I use JRuby with Java for scripting (I have to choose Jython for speed).

For me thing big thing missing from Java that many dynamically typed languages have is closures and anonymous functions. But that's it really.

I totally agree! When it comes to "normal business programming" the type of language you choose is less relevant than most people think.When I compare the languages that are en vouge at the moment, I don't see that much of a difference anyways. The biggest difference I can see is between static vs. dynamic typing. And I can't even tell, whether that really makes a difference that's worth to mention...

Choosing a language for the fun of it and doing some cool stuff is a different matter. I can see that Developers like cool, new stuff. For me there are several reasons for this:1) Its more fun to learn something new than to do the old stuff over and over.2) New languages often do have some nice features that make programming more convinient compared to what we did before.3) It's good for your resume if you know the newest languages and technologies.

I agree - in fact, many people have been saying exactly the same thing for years including the likes of Steve McConnell.

It's happening for many reasons:

(1) The level of expertise is on a downward trend. This is because we gain many more inexperienced programmers faster than the already employed ones learn.

(2) Most programmers have no experience of quality project management - they've never seen it and thus don't know it exists.

(3) Many programmers focus entirely on the technical not aware of all the other aspects of software development. This leads to a focus on technical solutions to all problems (silver bullet syndrome - a better IDE, a better language or whatever).

(4) Many companies do not invest significantly in training their staff - it is both desired and assumed that all this will happen at university and such like without any investment from those same companies.

(5) There's such a huge demand for programmers that the concept of aptitude is now almost completely ignored. How many people can be a racing driver, or a pilot or a building architect or a lawyer or an accountant? How many people can be software engineers?

....

Daily I hear our industry say it want's to get better but I don't see anyone behaving any differently so I can only conclude that despite all the words, we don't care enough. Fortunately, there are still some examples of success out there and whilst they exist we have some chance of improvement (surely someone must look at those projects and ask themselves, how did they do it?).