Will Java change, stay the same or be replaced?

Disclaimer: my opinions on programming languages are based on intuition and casual observations more often than on deep knowledge and experience, so please take everything said below with a grain of salt.

I think Java is definitely the programming language and platform for most applications right now, be it server, desktop or mobile. C#/.NET is comparable and C# as a language may actually be a bit better when it comes to features, but as long as it’s controlled by Microsoft and at the same time Java is more open, less controlled, and the JRE has many implementations, most people and organizations will (or should) choose Java.

All the other more or less popular languages certainly have their place as well. C and C++ are good for writing efficient and close to hardware programs — Java may actually be faster than C++ in some rare cases, but it will always have some overhead simply because it runs in a VM and is managed. JavaScript, Perl, PHP, Python, Ruby etc. are either well suited for some tastes or have some specific advantages for certain applications or development styles. Functional languages and more specialized languages will not go anywhere either, they are needed too.

But Java is the general purpose language that can satisfy almost any requirements and scale in most directions (if not quite down to scripting).

However, Java has problems as well.

Continue reading