Maybe I'd pick when apple removed the default install from mac os, or maybe I'd pick when browsers made it impossible to run applets, or maybe I'd pick when the major java IDEs started pushing other languages like kotlin or xtend, or maybe I'd pick the oracle acquisition (never a good thing), or maybe I'd pick the release of go - a language squarely targetting pretty much the only niche that java has left (enterprise development of servers by mixed ability teams), maybe I'd pick the point when java development felt like it became more like configuring metadata for frameworks than actually coding, or maybe I'd pick when google started showing kotlin as the default language for developing on Android rather than Java.
Here's google trends for java: https://trends.google.com/trends/explore?date=all&geo=US&q=j...
Java-the-language is not going away any time soon, but if you expect it to do anything except decline, I think the future will be disappointing.
Then do you think the likes of SAP, Adobe, Amazon, Azure, Ricoh, Gemalto, PTC, Azul,.... are going to port their golden eggs to Go now?
It is an illusion to use JVM without touching or understanding Java works.
I have seen a couple of those guys, where I get called to sort out their problems.
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.
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.
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.
I only see RFPs for Java based technology going up.
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).
https://github.com/dotnet/designs/blob/main/accepted/2020/fo...
Also check the repositories from Project Reunion, it is pretty much WIP right now.
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 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.
SAP is a backwater for programmers. They're at least 20 years behind the curve.
Do you know that several JVM optimizations have been contributed by them?
I for one, rather work with SAP than dealing with npm ecosystem.
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.
Yeah, ironically COBOL is more modern than C in language features, yet C seems to still be quite appreciated for a 50 years old language.
Edit: oh good to see you again pjmlp, after last week. We fell to different sides then too, but I have continually enjoyed your writing, & again, while I talk & disagree, I would also not say you are wrong. You are more than correct, in the vast amount of cases. But I would suggest that this field in particular must also be heads up looking up & about, that just a job doesn't fully describe us all.
The issue is that if you work for a company like SAP, you most likely don't have enough personal flavour to come to interesting or meaningfull solutions. If you don't have passion, be it even for correctness, you'll build mediocre things.
Germany paid SAP millions for their Covid tracking app. Reaearchers had already worked out a protocol for them, apple and google had already implemented it. All they had to do was write a simple frontend and be done.
But politicians decided that such a big and important job, needs to go to big and important companies like SAP and T-SYSTEMS, for millions of euros.
SAP tried to be cool and agile, they even forced their employees to create github profiles (something none of the had done prior).
In the end they delivered a month too late, with critical bugs. And millions of server maintenance fees.
A system that was already 90% implemented, with network requirements that can be satisfied by fiber to the home connections, or a single S3 instance.
Why? Because they used mediocre people, who didn't have enough passion to create github profiles. Because they used the least common denominator, Java, and reinvented stuff that was already implemented. And because everybody just wanted to get the job done and go home, no expression of self involved.
But hey, I heard they pay good.
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.
1. Kotlin replaced Java for Android development
2. Scala has become the primary language for some of the major tools in the data stack - spark, kafka etc
I’m sure there are other examples as well
1. Politics due to how Google screwed Sun with Android Java
2. Scala is a tiny dot on JVM world and it remains to be seen how Scala 3.0 will be taken up, specially if Python like syntax is actually adopted
Is that what you were implying ? It doesn't sound like it from the rest of the comment because you seem to disagree that Java is losing mindshare on JVM.
Having some level of POSIX compliance doesn't turn an OS into UNIX, unless you mean Windows is a UNIX as well.
Java is dying so fast than nowadays even Microsoft contributes to OpenJDK, having bought jClarity in the process.
I jumped ship to .NET after Oracle changed their licencing. I don't like them as a vendor and don't want to be tied to them.
Java will still live to a pretty ripe old age but it does feel like it's a little over the hill nowadays.
.NET Core also doesn't run in all platforms where there is a Java implementation and not everyone is happy to rewrite their .NET Framework into Core, while Microsoft is in mix of leaving again stuff behind like the ongoing discussions about CoreRT, .NET Native, Project Reunion, MAUI vs Blazor vs WPF vs Forms show.
I know of teams who have moved to Java simply to avoid the churn. Many folks prefer the boring but stable Java ecosystem.
If it's not growing explosively - it's dead.
Do I really need a "/s" here?
This is important, so I predict that over the next few years, as the 20-30 year olds of today gain more senior positions, they're going to choose python, JavaScript, kotlin, golang or rust for new projects.