Java the language that just won’t go away.
It’s hard to think that I’ve been writing Java in Anger for 22 years now.?
In the same period I’ve made detours into a lot of other tech including VB, .Net, Rails , Object-C and JavaScript amongst others, but Java has remained the backbone of my paycheque.
Furthermore in those 22 years Java has been written off more times than I care to count. In fact I remember that the first time I heard it was back in 2000 as I started my career as a fledgeling developer.
Yet here we are in 2022 with a major shortage in Java developers in just about every country.
Java is the programming language that developers love to hate and yet it seems to somehow remain relevant in after so many years because it has - I believe - a number of attributes that make it endure.
Legacy
So let me first tackle the elephant in the room. Circa 2005 I remember Java being labelled as the new COBOL, at the time the label didn’t sit well but looking back it certainly has proved true.
After COBOL itself there is probably no other language that is doing more behind the scenes in countless transactions across the globe than Java.
Java remains popular in enterprises simply because it is entrenched and there is so much code that it will probably never go away
However Java didn’t just become such an entrenched language by fluke there are a lot of good reasons for it’s popularity
It changed the industry
People tend to forget the microcosm within which Java was released. Back in 1995 concepts such as OO programming, Garbage collection, Network programming and Threading was something that was not at all widespread or common.?
Java took these concepts and provided them in a single easily accessible platform as core features that were easy to understand and use.
Suddenly it became possible to build complex distributed systems which could make use of the fledgling internet.
When .Net was released it was impossible not to see the similarities with Java and the platform took a lot of flak for it, but honestly what else could Microsoft really have done.?
Java had set the standard.
Fantastic Industry support
If you’ve ever needed to connect to something the chances are pretty good that that something has a Java option.
领英推荐
When it was released Java was quickly adopted in the industry by large companies like IBM and Oracle and as a result Java support started to become ubiquitous.
IBM and Oracle in particular have made a fortune selling Middleware products based on Java, much more than Sun ever did.
WORA is actually a thing
One of Java’s core goals was to be able to create platform independent programs that could run anywhere as long as you had a Java VM under the mantra “Write Once Run Anywhere” or WORA for short.
My first job was building integration middleware and WORA was the reason we adopted Java allowing us to support the multitude of *Nix platforms our customers were running.
Heck I even remember the interesting dichotomy of developing my Java application on my Windows Desktop and then copying it and running it unchanged on a Z10 mainframe.
When you consider the flexibility that gives an organisation looking to building systems it’s understandable as to why Java becomes attractive.
I have?- in my career - moved Java systems running on Solaris to Linux to Windows with a small amount of change when compared to having to deal with other platforms.
Now it’s possible to write cross platform in other languages especially scripting languages such as Python and indeed you can now do so with .Net Core but Java still set the standard.
In fact this is often one of my biggest gripes when working with other languages is the ease of movement between platforms when developing on them.
An ecosystem that’s top notch.
I don’t know if Java’s ecosystem is the largest but it certainly is large and comprehensive.?
I’ve never had want for libraries in the Java world, wether that be an SSH library or build tools or a specific app.
This is again something that keeps drawing me back into the Java world when I want to do something purely because it’s usually easy to find what you need to do a specific task.
This includes .Net which I’ve always found smaller. This may perhaps change with the release of .Net Core but that is an ecosystem which is still in its infancy.
In conclusion
The features that Sun imbued the Java platform with all those years ago have stood the test of time and set a new benchmark for the industry which has given it legs.
It remains to be seen how popular Java stays as new rivals challenge it’s throne but not matter what it won’t go away
The engineering paradigm of "agree on specification and compete on implementation" is one that has a certain social resonance with the corporate refugee. Offering people choice was a very big part of the ideology that was at the core of a community driven process. Being friendly to free thinking and having "options" is what the "creatives" really value. These are the things that I gravitate towards ... not necessarily the syntactic sugar arguments positioned by most.
Senior Software Engineer | Tech Lead | Full-Stack Developer (.NET, Angular) | Azure & DevOps | PSM I | SAFe 5 | Lifelong Learner | ???? ???? ????
3 年In a recent C# version they introduced a namespace statement that applies to the file instead of having to nest the contents inside braces. I said to myself, hey, that's kinda like how you declare your package name in Java :)