I think Java is the best platform available for most general tasks. It’s fairly easy to use and you can produce excellent results in a reasonable time window with a fair amount of work. The resulting programs cover an amazingly wide area like servers, desktops (GUI), games, etc.
I’ve professionally programmed many years in assembler, C, C++, Pascal/Delphi, Java and even particpated in some 40 years old Fortran programs (that’s not so funny). But Java was and is the only platform I see as a really smart tool to produce the software you actually need to, without too many restrictions and crazy hurdles.
(I.e. when you’ve to hunt “memory leaks” in a huge C++ application developed by a team of people including you in several years of work, you’ll see that basically C is just another variation of macro assembler and C++ is just an object orientated macro assembler. So, no matter if a byte shifting program in C is 20% or 30% faster than a Java byte shifter, you really don’t want to go back normally. And I didn’t mention byte shifting accidentidally, because today’s software usually is no byte shifter anymore because you’ve got your hardware or libraries for that. Using the correct algorithms and data structures (Collections) in your application is usually the key for performance.)
By using Java as platform you don’t get chained to a certain operating system and still have got a powerful programming language at your hands.
Usually as a software developer you’re confrontated with certain tasks to solve in software for a certain platform, and the main question is: will you manage to develier the finished product? And for all that Java is the real “Software Swiss Knife” in my experience. It’s still a knife, and work will always be work, but it’s a smart tool for a good work.
Howgh.