I'd ask, what is sustaining java? Where are the replacement techies picking up the torch, where are youngsters seeing java?
I have some answers. It's not a lost cause. Death is not likely, & I do appreciate a lot of java (cdi rocks, microprofile is doing great, performance is good, it has excellent big data tools & many serious pieces of infra are built with it). But how java can retain liveliness, over time, & how the experience & knowledge base continues, is a real challenge. Being on Android helps a lot but also it's a radically different immensely unlike the server side world, with its own elaborate platform specific architectures & libraries. There's not a lot of places java has a hold on UI/ux centered systems, outside Android, so it risks becoming too invisible.
Funny you should ask that. If a high school kid takes Advanced Placement (AP) Computer Science in the US (including the kids here in my neighborhood in Silicon Valley), the only language taught is Java. Kids who want my help with their programming projects or classes here in the Valley, even the undergrad CS majors at Stanford, are always going to ask about one of three languages: Python, JavaScript, or Java.
In the shadow of the Apple spaceship, the iPhone is exactly as Apple intends: an appliance for you to communicate with friends and buy things from Apple, certainly not a computer for you to program. Nobody ever asks me about Swift. If you want to program a computer--sorry, "code"--it's always and only Python, JavaScript, or Java.
When SAP rewrites their stack to something else other than Java, Amazon or Alibaba stop contributing to Java, then I start worrying.
Microsoft decided that Java death is so imminent that they are now an OpenJDK contributor, collaborate with Red-Hat on VSCode Java support, have bought jClarity and Java has first class support on Azure.
I guess a Roman, asked circa 300 AD how he feels about the decline of the empire, would have replied similarly.
Java’s mindshare just isn’t where the exciting things in this field are happening. It’s more the domain of overengineered “big data” platforms and clunky enterprise software. Yes, SAP employs a ton of java developers I’m sure, but many devs would rather switch careers than work on anything resembling a crufty ERP.
Thus, the ecosystem stagnates, due to the dead see effect - everyone who could push it forward into new areas has no interest being anywhere near it. And stagnation is a long, drawn out death all the same. It still has a ton of momentum, and millions of outsourcing devs who only know Java, so it will be with us for a while - but make no mistake, the decline started quite a while ago.
Personally I find the Java engineering to be excellent & not overblown, & I appreciate so many of their patterns. Making Service Provider Interfaces for everything? Epic awesomely powerful. Maven? Shockingly regular & predictable & clear, although what a lot of the plugins do is wild. I really don't understand most people's grief & complaints about Java, they seem abstract & emotional, but I for one don't mind typing, & don't feel bogged down in JAva.
There's some good words in the grandparent about who uses Java, that I respect a lot & holds enormous truth.
I don't know anything about COBOL. But neither do any of my programmer friends. But COBOL is also far from dead, yet it might as well be to the rest of the programming world, I feel like. It has no mutual impact, it's too far removed from the regular happenings, & I'm not sure how or where dialog would open.
So yes, like, I think the Roman example is really good. Communication are getting cut off, people are stuck. Things might be good here, but the world is regressing to a pre-Romanized status, with little overland travel, unable to harvest the breadth & intelligence of the many great citizens, that Java used to be a contributing key part of.
I don't think Java is stagnant or dead, it's not so glum. Micro-profile is being wonderful. DropWizard is a very lovely quite popular scene still. But right now, Java's presence in the AP Computer Science curriculum is doing an enormous amount of heavy lifting for Java, and once that dam breaks- and it doesn't seem like there are many fitting replacements atm, with all the nice neoclassical columns & facades to make the language feel academic/computer-science-y- it's gonna be harder days for Java, & the weakness within, the being more cut off, is going to hurt.
On my domains only Java or .NET stand a chance to win RFPs, and if anything .NET is the one having troubles, because many are unsure what Microsoft actually wants to do with it, and slowly pissed with the multiple rewrites where there is always something left behind.
I only see RFPs for Java based technology going up.
Kind of, Microsoft seems to trying to fix UWP, while trying to turn .NET into a cross platform runtime that has an eco-system that has been Windows only for the last 20 years.
So while they are doing lots of nice performance improvements, there are plenty of business not so happy that their 20 year investments don't run on .NET Core, and if a rewrite is needed (e.g. WCF vs gRPC) then why not just jump into something else.
Just see the lengthy roadmap, and the considerations that not everyone was happy with "AOT" (packing everything into an exe that unzips on execution).
Most of the world uses Java, including "happening" companies. Please be highly aware of HN bias. If one only reads HN, one can get a highly distorted view of the reality of software engineering.
> Most of the world uses Java, including "happening" companies.
On the contrary, even boring enterprises often don't actively use Java. Sure, lots of places do, but lots of places have either never adopted or dropped (or at least relegated to certain legacy systems) Java, especially, on the enterprise side, places that at some point became largely Microsoft shops, where even if they've since moved beyond that, they probably didn't go back to Java except maybe for any Android work.
I guess you are in a different bubble. Netflix's backend is mostly all Java, Apple Backend (apple media products engineering) is Java based. Neither of these companies will ever become a Microsoft shop.
The fact that you bring up salaries perfectly represents everything wrong with SAP.
A job is more than a money maker, it's a platform for expressing yourself.
SAP wouldn't understand that though, so they hire the mediocre (to write Java, a language explicitly designed to cater to less capable programmers) to produce joyless, soulless stuff.
Of course they pay well, they have big customers with no taste for good work, but plenty of money, nobody in their right mind would take on a SAP job if the money wouldn't make up for the grueling tedium.
If you think that it's either SAP or node, oh boy, thats a false dicotomy of hilarious proportions.
And BTW, I've heard that Cobol salaries are quite high too.
I have some answers. It's not a lost cause. Death is not likely, & I do appreciate a lot of java (cdi rocks, microprofile is doing great, performance is good, it has excellent big data tools & many serious pieces of infra are built with it). But how java can retain liveliness, over time, & how the experience & knowledge base continues, is a real challenge. Being on Android helps a lot but also it's a radically different immensely unlike the server side world, with its own elaborate platform specific architectures & libraries. There's not a lot of places java has a hold on UI/ux centered systems, outside Android, so it risks becoming too invisible.