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++. It is portable and rarely takes a hit when the next round of GNU C/g++ arrives. As such, I'm sort of ambivalent about what Oracle does with Java. I've written a fair bit of code in C#. In my estimation, it has all the goodness of C++ and Java rolled together while fixing many of the defects in those languages. The "mono" project is doing a fairly decent job of bringing C#/.Net frameworks to Linux. To date, I only run C#/.Net projects as dedicated applications or server side special applications. The coding goes quickly and is debugged rapidly. The performance is satisfactory as well. As for Java, I'll just get some popcorn and watch. I don't have any eggs in that basket.
Agreed. Java was never that great to start with.
IMO, more underperforming bloatware has been written using Java than all other languages put together.
>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.
Java has come a loooong way since 1996 ! JRE is pretty standardized now, and in terms of execution speed it’s comparable to C++ and in some cases even slightly better.
I think you were referring to applets earlier, where different versions came over the network and ran on the browser’s JVM. Applets are long gone. Good riddance. They were a real PITA to work with. Today Java exists mostly for server side computing, for which in terms of flexibility, architectural frameworks, integration with third party APIs and packages, available open source tools , it has no equal. Developers have an extremely rich environment to work in. The Java of 2009 is nothing like that of 1996, believe me.