>Aside from some maintenance of work from other programmers, I’ve avoided any new work of my own in Java since early 2000. My code is largely ANSI C or C++.
I know what you mean. I’m not a fan of Java at all, a buddy of mine in the CS department and I joke about:
include java.sucks.*;
include java.sucks.bad.*;
The “moving target” is also something that I disliked, though I didn’t have to be bothered with that too much just being a student.
Regarding the imperative family of languages, I’d much prefer a Wirth-decedent language: Object-Pascal/Delphi, or [arguably] Ada (I haven’t used it much, but the more I learn about it the more I REALLY like some of Ada’s strengths).
On the other hand (meaning the Functional-Programming and Logic-Programming languages), I enjoyed messing with Scheme somewhat (kind of frustrating at times, but what language ISN’T when you’re just learning it>) and [VERY] little Prolog. But I digress, we’re talking about Java and such.
Microsoft has put a lot of effort into .NET lately, especially with the drawing of X-Box developers via XNA, so it is probably the leading competitor for Java right now. (That’s not saying much though, it’s really the only competitor with Java that I know of) which is kind-of sad.
One question that might change things a bit, I think, is if Oracle revived that project to make a CPU whose instruction-set was/is the Java bytecode.