Ask Slashdot: How Dead Is Java? (jaxenter.com)
This week HackerRank reported Java is now only the second most popular programming language, finally dropping behind JavaScript in the year 2018.
Now long-time Slashdot reader shanen asks about the rumors that Java is dead -- or is it?
Can you convince me that Java isn't as dead as it seems? It's just playing dead and will spring to life?
This week one Java news site argued that Java-based Minecraft has in fact "spawned a new generation of Java developers," citing an interview with Red Hat's JBoss Middleware CTO. (And he adds that "It's still the dominant programming language in the enterprise, so whether you're building enterprise clients, services or something in between, Java likely features in there somewhere.") Yet the original submission drew some interesting comments:
Now long-time Slashdot reader shanen asks about the rumors that Java is dead -- or is it?
Can you convince me that Java isn't as dead as it seems? It's just playing dead and will spring to life?
This week one Java news site argued that Java-based Minecraft has in fact "spawned a new generation of Java developers," citing an interview with Red Hat's JBoss Middleware CTO. (And he adds that "It's still the dominant programming language in the enterprise, so whether you're building enterprise clients, services or something in between, Java likely features in there somewhere.") Yet the original submission drew some interesting comments:
- "The licensing scheme for Java kills it..."
- "Java programs still are 'the alien on your desktop'. They suck in many ways. Users have learned to avoid them and install 'real programs' instead..."
But what do Slashdot's readers think? Leave your own answers in the comments.
How dead is Java?
Not as dead as this laaaaarge portion of popcorn I'm making.
[sits back]
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
It's just taking a while for Java to bleed out.
So that Oracle can get butt fucked by their decision to be so consumer unfriendly when it comes to their policies on Java.
Has Netcraft confirmed it?
It's alive and well server-side. It's dead on the desktop because it's dreadful, slow, memory-hungry and extremely annoying each time Oracle forcibly imposes things that break legacy applications.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
https://www.tiobe.com/tiobe-in...
It's dead .. in that it's now the NUMBER TWO MOST POPULAR LANGUAGE IN THE WORLD?
Wow. Perhaps my understanding of the meaning of "dead" is misinformed.
The commentary here seems to center around Java as a language for desktop applications or similar.
It's not. It hasn't been for decades.
Java is used mostly to make enterprise-class server-side software. It's used extensively in the financial services sector.
Most of the code for any FI's web applications you interact with is Java. And so is all of the backend code.
And it's not going anywhere in that space.
Mainly indie games but you'd never know unless you go through the game's files. They come prepackaged with dependencies like a JRE and just run ... unlike .Net or other MS technologies that always seem to require some special version of a library installed system-wide. Go take a long walk off a short pier, VCredist!
Fun fact: I have 21 versions of VCredist installed on my computer at the moment.
I guess if Fuchsia eventually replaces Android, then yes, hopefully down for the count.
I install java on most my machines. I don't use it too terribly often, but when I do, the apps written in and running on Java seem as good as any other Apps. I don't see the problem.
Not sure why there's comments of licensing issues... it's a free download from Oracle's website, has been forever. Am I missing something? Do you need special permission to write java code and distribute it? I'm sure you might need permission to distribute the VM with your app, but that's not even necessary, for the reason I already stated.
I don't know it as a programming language, never had any interest in it. so can't really comment on that aspect of it.
The thing I've recently heard about Java is that you are subject to Oracle's random whims. Right now, you can get and use the runtime environment and development environment for free, but you don't know if they will randomly decide to charge you a ton of money to use it and send an army of lawyers after you.
That seems to be the only "dead" part of Java, the idea that you can actually use it without Oracle screwing you over.
I say this as someone who's written .NET code for 17 years now - and last wrote Java back in University (1999).
The .NET Framework is kept constantly up to date by Windows Update. It might be nice if Java was a Windows "Feature" - and every month the latest version was downloaded with Windows updates. Microsoft has been embracing open source, and supporting other platforms for years. I like the new Microsoft.
Java apps shouldn't be an alien, and choice benefits developers and eventually consumers.
That's a little bit like asking "is Linux dead?", simply because it's not a popular desktop OS. Just because the majority of users don't realize they're interacting with something, doesn't mean it's not widely used. In the case of Java, the Android platform is a major client-facing deployment. However, the majority of enterprise and webservices are still Java/Java EE and that application is growing, driven by the move to the cloud and the popularity of microservice architecture in new enterprise installations.
JavaScript obviously is a bit deal too, given the increasing importance of heavy client-side web-apps. But most of those webapps have Java on the back end.
Java's been dead on the desktop forever. Oracle isn't doing it any favors either. But OpenJDK is alive and well, and Spring and spring cloud are very popular, performant, scalable tools that we use every day. Yes, we're dabbling in Node for purpose-built microservices more and more, but Java has always been and will continue to be a good choice for many server-side projects.
- Vincit qui patitur.
Between it's different versions, the security problems this brings, etc., it's dying fast in the professional environment
What security problems come with Java?
I don't see a lot of JSP servers, either
JSP is legacy now, but a lot of companies are using Java on the backend in a web services model. The frontend can be in Angular, or React, or whatever. It's a good choice when you want stable, cheap developers.
As my own professional opinion, I would say that Java is better for writing backend APIs than Node/Express.
"First they came for the slanderers and i said nothing."
It's still populated by 141 million people and it's been a while since the last gigantic eruption, so it ain't dead at all.
No.
Q: "How Dead Is Java?"
A: "No."
Works for me. :-/
If it weren't for deadlines, nothing would be late.
But not as dead as SNOBOL
If you post it, they will read.
It's definitely not dead. It's still a primary goto for server-side programming, there's still android, and recent releases have been inching toward the script language community. What is dying:
* Reliance on Oracle. My company & lots of others are cutting everything Oracle out of the equation & just using OpenJDK.
* Desktop java -- it's unlikely to ever make major inroads at this point. JavaFX was a nice try but it's not likely to make it.
* J2EE -- it's technically still alive but isnt well liked, I don't expect much new to be built on top of it
If I poke it, does it not bleed?
If you post it, they will read.
[quote]“There are only two kinds of languages: the ones people complain about and the ones nobody uses.” - Bjarne Stroustrup[/quote]
Outside of enterprise, there's only 3 big sources of Java these days: Android development (which is trying to move away from Java), Minecraft (ditto) and Steam games (very few games use a JRE, but the most recent and bigger example is Slay the Spire).
I have to second this option. Java isn't "dying"...it's 2020's Cobol.
It'll be around for at least the next 10-20 years. (There's that much code based of Java out there)
But Java has been dying for years. Applets died a long time ago. JSP and Servlets are pretty much dead in favor of using a JavaScript front-end and a proper application back-end. JDBC will continue to hold java for a number of years...but watch as other languages start taking it's place. Hell, Docker killed Java's last remaining strength - write once, run anywhere. With Docker, everywhere became X86-64bit.
I don't expect C# to do well either.
Java Applets (browser plugin)? Dead.
Java desktop apps? Dead. Nobody's going to argue that.
The Java language is far from dead in the enterprise. Those who use it there will gladly pay Oracle for their production systems, and use OpenJDK everywhere else. There is a crap ton of existing code out there being maintained, and new code all the time.
Java is far from dead outside of the enterprise too, on mobile. Not the way Oracle would have liked it with everybody using JavaME, but on Android, which is what has really breathed some new life into Java (not so much Minecraft). The lawsuit there has soured many on Oracle and Java, and it looks like Android may be moving away from it at some point down the road - which makes me sad because we've only just gotten Kotlin support. And Kotlin is a better Java.
I'm keeping my eye on Kotlin native and the javascript compiler. but the open source Java ecosystem has some pretty great libraries (moshi/jackson/gson, retrofit, okhttp, poi, bouncy castle,etc.)
What 0 days
Java has an image problem, not due to the fact its desktop frameworks look ugly but also that it looks ancient as object-oriented programming, licensing and performance trends go. It has a public relations problem, but for those that are in the industry, its pretty obvious its life-support system is alive and well.
If you look outside the desktop, Java is fine. As previously stated, Java is core to business players - it serves a central purpose in many middleware, server and database-related solutions. Then there's the fact that Oracle is its owner and major sponsor, and RedHat closely behind it both maintain its momentum, while its essential role in the world's largest mobile platform accelerates it. Some will say even in Android Java is faltering, but Kotlin avid programmers know full well that, like Kobol and other tech in critical applications, Java will take decades to be detached from Android. The same can be side about the businesses solutions where it is central.
So while Java's core language development might stall in favor of supporting cooler, "du jour" paradigms that act as stepping stones for new players to have something fresh to stand upon, the JVM and its many clone runtimes are here to stay. And while languages that code for them keep basing themselves off of Java for bytecode endgame, so is Java.
The JVM has been shown is be coded to standards that make Microsoft Windows look secure.
We have to patch Java more often than Windows in my office, and patching it constantly breaks legacy software.
The only thing worse than Java I've ever had to deal with was Silverlight - and that's (thankfully) very dead.
Emotionally, Java died for me the day I discovered that C# has real, honest to god unsigned bytes. You have to be masochistic beyond words and the world's ULTIMATE glutton for punishment to attempt programming OpenGL ES using Java, because GLES does EVERYTHING by juggling around byte arrays, and dealing with raw unsigned bytes in Java is pure misery.
It's no secret that 'unsigned bytes' are one of (if not THE) most-requested features in the history of Java. And the one that evokes the angriest ideological debates, often getting it called 'syntactic sugar' (as if providing a language construct to avoid having to do things known to create STAGGERING numbers of insidious code errors due to typos is a morally-decadent thing).
Personally, I love how some people get all righteous about calling unsigned bytes 'syntactic sugar', then proceed to defend dumping six pounds of 'syntactic salt' into Java in the form of the way Java now handles lambda expressions.
Lambda expressions per se aren't necessarily a bad thing. Pretty much every major language now has them. But the specific WAY they were implemented in Java is an abomination. Put bluntly, they're basically "human-compiled" object code PRETENDING TO BE actual source code.
For anyone who doesn't understand what I just said, here's an alternate explanation. Basically, when the Java compiler sees a Lambda expression, it recursively searches through the list of interfaces known to it until it finds an interface that defines a single method whose arguments match the types of those used by the lambda. It takes the compiler (or IDE) a fraction of a second to do a brute-force search through the API to find a match. Humans, unfortunately, aren't quite so agile at things like that, which is why we invented source code in the first place 50 years ago.
Behind the scenes, the compiler is just automatically assembling an anonymous class that implements the interface. And if you had the sourcecode TO that anonymous class in front of you, making sense of it would be easy. The problem is, Java's lambda syntax strips away most of the contextual information that the anonymous class would provide you with, so you're left trying to make sense of a cryptic glob of punctuation characters that makes obfuscated Perl look like Ada or Visual Basic by comparison.
The end result is that if I write a nontrivial program using Java lambda expressions, print out a method, and hand it to you, there's a VERY high likelihood that you'll scratch your head and be completely unable to make sense out of it without at least looking back at the includes near the top, and probably a few minutes with Google. In contrast, if those lambdas had been printed in the source AS anonymous classes implementing the same interface, you'd probably be able to effortlessly make sense of them without a second thought. And that's what's fundamentally wrong with Java Lambda Expressions, in a nutshell. They optimize the wrong problem, and result in sourcecode that's human-unreadable.
Has anyone ever heard of it before the post on Slashdot? Its not like this was Tiobe whom we've seen around forever.
It's called JHipster. You probably haven't heard of it.
There's a segment of the community that looks at their desktop computer and assumes that anything that they don't personally use is dead.
In fact, Linux and Java are the most used software in the world. Linux runs nearly everything that isn't your desktop computer, and a fairly substantial number of the applications you interact with over networks are Java.
Just because it isn't executing on your terminal doesn't mean you aren't using it.
According to Slashdot and others, Java has been dying for the past 15 years. The short answer is, no, it's not going anywhere. There's tons of Enterprise code written in Java that will need to be maintained for years to come.
Somehow, Java became screaming fast and/or Lucene manages to avoid all the parts of Java that are screaming slow. Therefore Elasticsearch. Therefore that's one very good reason that Java won't go anywhere right away.
Also, despite the existence of obviously saner alternatives like REST, many enterprises use Java as a standard for service bindings. Long ago lost to the sands of time is the original intent that XML was intended to be human-readable (in the sense of not needing binary decoding) but not human-written.
I wrote a lot of semi-interesting Java in the past, and I suppose there was a time when I liked it, but I can't see that time coming again. Java is annoying. It's that grumpy, square, didactic, great uncle whose clothes haven't been updated since the 70s and whose house smells musty and who tells you about how he took no shortcuts in his life and you can't either.
Python is annoyingly gimpy (what sort of interpreted language deliberately doesn't have closures and first class functions?) but at least you can write a command-line tool in it, and maybe some day it'll be fast too. I guess dumbed down is better than a smelly old uncle.
Maybe I'll get to write some Rust soon.
If you poke something, it must be BASIC.
Why is Snark Required?
I'm just here for the PASCAL
Another consultant who stuck it out.
"We are the Priests, of the Temples of Syrinx..."
Check out the job offers in indeed.com so that you know just how popular Java is compared to anything else.
That's a little bit like asking "is Linux dead?", simply because it's not a popular desktop OS.
The desktop is dead anyway. Linux is dominating on smartphones/tablets. Java is right there alongside dominating too, although not for long given Oracle's insanely boneheaded move to sue Google over their use of Java in Android.
When it was first released, the same type of security problems that related to browsers automatically executing whatever code gets shoved down it's mouth.
Not that it's specific to Java, because it was a very wild west with how browsers handled security.
I'd say it's fast zombie, as opposed to slow. Possibly infected with rage after a bite from Larry Ellison of Oracle.
Calling the NUMBER TWO LANGUAGE IN THE WORLD, dead? That's just Click-Bait. By that logic, there is only one living language, JavaScript, and All other languages are on their way to extinction. Now, if Java were to drop to #5, one might be a little concerned and if it dropped below #10, then you could say it is a dying language. But seriously, the biggest problem it has it its license and Oracles past behavior concerning it. Those definitely have muddied the water for a long time. I expect to see Java as one of the 10 primary languages for business for between the next 10 and 20 years. Maybe longer since most internal business programs last for at least 10 years, and the bigger the user base for the program, the longer. Maybe in 30 years Java will become like Cobol, still supported, but actively being migrated away from. Perhaps Julia or something similar might be the reigning language then.
For years we have had to deal with crappy apps that did not work or worked only on one version of Java. If you upgraded you were screwed. If you didn't then you were open to Java attacks. Vendors are beyond slow to update and to work out bugs to get their software to work on the next version of Java. The biggest issues are how SLOW Java is on Windows. Oracle still has not fixed that to this day. The worst was I had to support a software on Java 1.4 that is 10 or 15 years old and the vendor was locked into the version!! What a nightmare!!. Thank God no credible vendor uses Java for applications anymore.
MAYBE 2025's COBOL, not 2020. More likely 2030's or 2035's COBOL (relative to the position COBOL enjoyed in 2000). COBOL now is aggressively dying, So many COBOL software systems have been ported to Java as a replacement. I fully agree though that on the desktop or browser, it has dwindled drastically. And, from what I have heard about CERNER, Java EJB is a challenge when trying to scale up from 4 hospitals to, say, 150 integrated hospitals.
So the article is obviously a stupid flame bait question which I really don't have much direct response to, since I've not been doing any with with Java for some time - either client or server.
Instead of reading responses or the article, I ended up finding this amazing chocolate chip cookie recipe, making said cookies, and then eating them to verify the claims the recipe was as good as it claims - it is.
Instead of me arguing the case for or against Java with others here, I thought all of *you* could use a great recipe for chocolate chip cookies, especially with Valentines day coming up - even if you are single it's a great emotional boon to make cookies for yourself!
So - Here's the recipe for favorite chocolate chip cookies.
Pay special attention to the text just above the actual recipe that mentions roasting the nuts that go in the cookies first, I agree that made it extra awesome.
Mods: I totally understand an off topic mod here, but please only one so that others may see this amazing recipe.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Almost all ip kvms run java. there are two companies that don't as far as i can tell.
java in embedded things is a nightmare.
-
Node may be okay for small services, but if you are working on anything more than "small" then you want something like Java or C#.
Java is great these days for that kind of thing. Lots of documentation, tons of useful libraries, the old saying of "write once debug everywhere" doesn't seem to hold anymore. It just works, it works well, and it's fast. Not like the old days.
Node fanboys baffle me. We spent decades explaining the value of strict types, for example, and now they want to throw it all out the window... Yes, you CAN write complex software with JavaScript but dear god why the hell would you want to?
I'd guess that Android software is the number 1 use of Java these days. But Oracle says Google's version of "Java" doesn't count, and they have to stop using it. If they do that, Android developers will go where Google tells them to go, they won't stay behind to use the "pure" Java language from Oracle.
In 1962 it was revolutionary. It could process a bank's load of transactions on a machine with less than 64K of memory. And fast. No garbage collections. No unnecessary data transforms, just suck the data in, map it to a record, process it, and spit it out.
Data section that properly described structures. And separate from the procedure section so that a compiler could run in two separate overlays, important on small machines.
The code was pretty easy to read. No nasty pointer arithmetic.
Then came Object Cobol...
Of all the things that annoy me about Java unsigned bytes has never hit to top of the list. Normally they are just bytes, and we simply do not care about the sign because we do not do arithmetic on them. And if we do it is trivial to fix.
C# has many advantages. The inbuilt query language is very cool. But unsinged bytes?!!
And there is no search for interfaces for lambdas at all. It is in the declaration of the place you are adding it. Java is all explicit typing, Perhaps you are confusing it with Go?
This is actually the aspect of the question that triggered my submission, but not even sure how the AC came to my attention. In an attempt to update Java on one of my machines, I realized it was uninstalling itself completely, which got me to check and realize that it was already gone elsewhere. Apparently the browser plug-ins are no longer supported, so bye-bye. Thanks, Oracle. For nothing. Literally.
I definitely noticed that almost none of my students last semester were doing much with Java, which surprised me. Lots of Python and C++ and various other languages were mentioned, but almost one of them were primary in Java. These are seniors and graduate students at a top university, with a heavy delegation from China, too.
So time to probe the discussion a bit more to see if I can find any actual insights into what's going on. Or at least a few jokes?
Freedom = (Meaningful - Coerced) Choice != (Speech | Beer^2), and sad sock puppets' bad mods avail them naught.
At one time, Java was my most-used language, dominating the server-side and also being used for Android. These days, my most used languages are ECMAScript/JavaScript on the server (and browser), Swift for iOS, and Kotlin for Android.
I don't think my anecdotal experience is evidence that Java is dead or dying, but it wouldn't surprise me if Java's use is declining, generally. But that's no big deal. Originally, my most used language was C. Then it was C++. Then it was Java. Et cetera. But C isn't dead. C++ isn't dead. Java's usage may decline, but I doubt it will "die" for a long, long, time.
Also, there's the JVM aspect to consider. Languages other than Java target the JVM: Kotlin, Groovy, Scala, Clojure, et cetera. I wouldn't be excited about coding in Java, these days, but I'm happy to code in Kotlin or Clojure.
Ada?
Assembly?
C
Anything with a new CoC that tracks and comments on what the resulting projects was used for?
Anything that gets used for the Learn to Code projects?
Domestic spying is now "Benign Information Gathering"
I was seriously curious about the status of Java when I discovered that it was apparently uninstalling itself and vanishing from my browsers. My sincerely curious question was combined in an odd way with another story someone else submitted about the relative popularity of Java, which obviously is a call for popcorn.
I really haven't learned what I was hoping to, but my current theory (slightly modified by this discussion) is that Oracle basically murdered browser-based Java. Sun's original charitable model obviously failed as part of the collapse of Sun that allowed Oracle to acquire Sun and maul its assets. I'm not sure Sun really had much beyond Java and OpenOffice... I think the hardware and Solaris are mostly gone or irrelevant, but it scarcely matters since Oracle's real interest was in how many of Sun's customers could be converted to Oracle.
Freedom = (Meaningful - Coerced) Choice != (Speech | Beer^2), and sad sock puppets' bad mods avail them naught.
Let's start with that, and maybe we can have a rational debate, with facts and arguments rather than opinions and emotional tantrums.
If I look at job openings in my market, Tulsa, there are as many Java jobs as C# and Python put together. Only a handful of C/C++ jobs--I say this as a 25+ year C++ developer. I would say that if demand means anything, Java is far from dead.
I wrote a software renderer for a 3D engine in pure Java (no JNI) back in the day. It was interesting getting it to perform acceptably but in the end it performed comparably to my C version which was a shock at the time. Java has a very undeserved reputation for not performing well. I'm guessing most people who feel this way were stuck using one of the horrendously over-engineered Java web frameworks that pile layer upon layer of cludge on what should be a fairly simple problem.
When your debugging a simple CRUD application and your stack traces are 200 calls deep (and it's not a recursive call) it's time to abandon ship.
I do avoid flash and java like the plague. Just too many security holes and too slow.
It is so not dead. The ecosystem around Java is huge and growing.
Shameless plug of a dev platform I have been working on in my spare time that is built on a Java foundation: IOVAR . It's kind of meant to be the swiss army knife for the world of XML and JSON with a Unix philosophy and shell that should make any grey-beard feel at home.
I know it's not close to ready for mainstream yet and there is still lots more to do on the documentation side but it IS usable and has been quite a fun adventure to work on! I've been working on it solo so far but now I feel it's time to start getting the word out and find out if anyone else also finds it useful.
-IOVAR Web Dev Platform
Oracle's API lawsuits and other shenanigans means that no big co will want to bet the farm on it.
Table-ized A.I.
If you own a Blu-Ray Player or Blu-Ray disks you are using Java (Blu-Ray disks use a variant of Java ME for all their menus and interactive stuff and whatever else)
Cable set top boxes that use OCAP for interactivity and stuff (common in America) also use a variant of Java ME.
And I am sure there are still other embedded Java systems out there in use.
Your point about Docker rings a bell. It's all about providing a consistent platform. The Unix-type systems make a great platform because there are fairly standardized locations for each of the small, single-purpose components and yet no single language is dictated. One command may be a shell script, another a C program, and yet a third is a Python script and they are all able to work with each other thanks to that standardized platform.
The rest of this comment I also posted up above in reply to another user...
Shameless plug of a dev platform I have been working on in my spare time that is built on a Java foundation: IOVAR . It's kind of meant to be the swiss army knife for the world of XML and JSON with a Unix philosophy and shell that should make any grey-beard feel at home.
I know it's not close to ready for mainstream yet and there is still lots more to do on the documentation side but it IS usable and has been quite a fun adventure to work on! I've been working on it solo so far but now I feel it's time to start getting the word out and find out if anyone else also finds it useful.
-IOVAR Web Dev Platform
I just recently discovered that a program, Syncthing, was written in the Go language. It somehow managed to end up on my machines and I have no problems with it. Unlike Java, it just looks a runs like a native app. The language itself is too alien for me, I leave it to the new kids to conquer it.
Some of us are still exploring ways to forge the dream of XML. In fact over the years I've been cobbling together this Java+XML+Shell bastard child of sorts that (in my biased opinion) is actually turning into a functional web development platform! I've only just recently put up the website and am still working on documentation but alas... I now present IOVAR.
-IOVAR Web Dev Platform
No type safety - Maintainability Hell.
And you have to chase bugs 'forever'.
JSP is a bit of a beast to maintain since it mixes three languages; HTML, Java and JavaScript. And that requires strictness. But if done right it's not bad.
If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
Oracle is sucking the life out of it.
Licensing complications. Sure, the OpenJDK exists, but you have to test your long standing and legacy applications against it. Of course, you should do that, because old versions of the Java runtime really have security issues. Oh and if you aren't careful and get caught in an audit, that can hurt.
Adding language Features. C# and .Net was dogging them a bit in this area. But type erasure and some other aspects of the type system still makes functional style code just clunky (special streams and functions for int, doubles, longs). The way they did lambdas was pretty hacky.
Modules and the new versioning. Java 9 added modules, but it's a bit clunky, to put it kindly. We have Java 10 and 11, with 12 to come, and nobody really wants to deal with new versions of the JVM on that rapid of a time scale.
But, he rate of adoption of Java 8 and newer features is slow. I still see tons of Java programmers that have never used streams. But, that hybrid functional/OO style can be very useful.
With Erlang/Elixir, .Net Core, Go, Python, NodeJS and even modern C++, Java is just being squeezed out in terms of being used for newer projects. But, with so much code out there, it will live for quite some time.
I agree that it is not an ideal language, especially regarding licensing, but there is no way Java is "dead". In the enterprise, SAP HANA, Oracle Cloud and Hadoop all use Java. Android development and the huge range of other devices that run Android depend on Java. It's also being deployed on lots of IoT devices. Also, universities still teach it to students (although Python is getting more popular in this space, especially in data science).
Lots of documentation, tons of useful libraries, the old saying of "write once debug everywhere" doesn't seem to hold anymore.
Well, everywhere kind of shrank to Linux servers. Back when that phrase was coined, there were still strong showings from AIX, Solaris, HP-UX, Windows NT and probably some others I've forgotten. I hear some people still use Windows for serving web services, but I've not seen it much in the wild recently.
It just works, it works well, and it's fast. Not like the old days.
Also in fairness it has improved a lot.
Node fanboys baffle me. We spent decades explaining the value of strict types, for example, and now they want to throw it all out the window... Yes, you CAN write complex software with JavaScript but dear god why the hell would you want to?
Quite. And then there's leftpad. Leftpad FFS, leftpad.
SJW n. One who posts facts.
Eclipse... *cough* JDownloader... *cough*
... with all the ups and downs that comes with.
Massive legacy systems that no one dares to take down and are a mess and super expensive to maintain, with well paid job guarantees attached.
OTOH you have the new kids closing in left, right and center, new technologies for the VM (Kotlin, Scala, Closure, whatnot) and other VMs such as Node and Go, node with it's own massive set of PLs.
Java won't go anywhere anytime soon, that includes it sticking around for another few decades in the places it already dominates.
My 2 cents.
We suffer more in our imagination than in reality. - Seneca
I really wonder where this fuzz about "Java is dead" always comes from. If you run a company -like I do- where you have to develop/maintain multiple SaaS products towards 150+ customers, you'll really learn to value Java. Of course, Java is dead for all the millennials that want to put whatever latest bullshit on their resume. But from a company-point-of-view, you want stability and maintainability so you can sleep at night, something that most developers out there don't give a shit about: the bigger mess they leave behind, the longer they can invoice their customer... the irony is that most CTOs, project managers blindly follow all those hypes, and thereby triggering tremendous maintenance costs on their company for the coming 5-10 years.
I look at all the Javascript frameworking and REST/OAuth jokes from a safe distance and praise myself everyday that I don't have to maintain projects infected with all this nonsense. Java EE 6/7, JSF, easy peace of mind.
Your tone is trolling. You are confusing patch schedules with number of vulnerabilities
Itâ(TM)s Oracles switch to charging for a license to develop in Java is what is going to kill it.
Weâ(TM)ve already got vendors switching to other technologies for their web based apps.
It is a click bait article alright.
Java, in its early days, did deserve the scorn. It was a hog, pretended that the features it lacked were a good thing, only to get them later. The language also used to be painfully verbose and the frameworks were usually over-engineered.
Today, most of those things stand fixed.
Who's there?
(long pause)
Java!
In my case, it was security policy problems. Every time I updated the runtime, stuff would break, because Sun was constantly changing what constituted a security violation. It wasn't always possible to resolve the issue by configuring the JVM. Then, of course, there was mandatory code signing, which broke practically every applet in existence with no way to override since Oracle removed that security option in the control panel.
Remember when just playing audio was deemed a security violation, and every Java program suddenly went silent? Apparently, they never figured out the awesome power of a mute button or... asking users for permission to enable audio. Nope, enabling audio required the application to be updated.
Overall, the constantly changing security policies were way more of a nuisance than the potential exploits.
It would be funny... if any of that is anywhere close to being true.
My first Java dev machine was a 400MHz single core with 64 MB of RAM.
My first Eclipse machine was a P4 with 256 MB of RAM.
Java and Java IDEs are a lot more efficient than these JS runtimes and JS IDEs today. Good luck doing Android Studio over Atom.
What security problems come with Java?
Secure systems use defence in depth. Java uses defence in breadth. They have a complex security model where every single part of it is in the TCB: a failure in any part violates all of the security guarantees that Java is supposed to provide. Added to that, almost all of the things that it depends on are complex to implement.
This isn't so bad for Android, because they just turn off the entire Java security model and rely on OS-level sandboxing, treating the entire application as a single security domain. If you try to install a security manager on Android, you get an exception. In a compliant Java VM, the security manager is a core part of the security model. For example, Java security depends on data hiding, but reflection can sometimes bypass that. System frameworks that are more privileged must call into the security manager to check before they perform privileged operations, but that doesn't help if reflection lets you call the wrong methods. It depends on string immutability to identify the permissions (usually this is implemented correctly, but it's one of the things where bugs in native code can accidentally break quite easily). It relies on precise exception delivery to ensure that security manager exceptions are thrown before the behaviour that they're guarding, but there have been numerous bugs in that.
I am TheRaven on Soylent News
Everyone on this site is expected to know, that Android is a Java userspace on a Linux kernel.
Most of the Android userspace is C++. The GUI frameworks expose Java APIs (though all of the drawing code, for example, is Skia, which is C++) but most popular applications include a lot of native code as well (I don't have up-to-date stats, but a few years back all of the top 50 most popular things in the Play store did).
I am TheRaven on Soylent News
As long as there's a popular Minecraft JAVA Edition, JAVA will remain popular.
All Mods need to be coded in JAVA, which forces people to learn and use it.
- and a really idiotic one.
I am a DevOps consultant and visit lots of places, and Java is the number one language for back end services. It is almost universal. Other languages are used for specialized things, such as Python for machine learning, because the ML community has embraced Python. For front end, Javascript is the most popular, but that will likely change as alternatives grow in popularity (e.g., Kotlin).
Also, Amazon has announced support for Java, as has IBM/Red Hat, so we are not dependent on Oracle.
The JVM ecosystem is enormously successful and robust. Languages like Scala and many others rely on it - not just Java.
I am not advocating for Java - just stating the reality that I see in my work. I don't much like any of the languages that are in use today.
Is that Java was the 'correct' choice at the peak of the 'gold rush' around the turn of the century. This meant hordes of people without particular interest in programming going into the field because of money, and their total lack of interest carried showed in their work.
So to me Java transformed from a flawed implementation that was very slow and inefficient to an implementation that largely addressed the fundamental limitations but used by a bunch of people who are barely passable at programming.
Currently the language that has borne the brunt of the current 'gold rush' mentality has been Javascript, which explains in part why that ecosystem is pretty messed up.
XML is like violence. If it doesn't solve the problem, use more.
Yeah, those are the two things keeping java alive. XD
How about, Android? Cassandra? Hadoop? etc. etc. etc.
Java is THE language for getting things done in enterprise. Just use a little brainpower next time before posting on something you know nothing about
but I hate using Java based applications and avoid using them. I also dislike server Java applications that I am forced to support. Oh, and Oracle....everyone who doesnâ(TM)t make money based on an Oracle certification requiring job hates Oracle, there is always that. Android is the only product that relies on Java that I do not think sucks, but Android would be a better platform if the apps ran natively. Thus, I wish Java was dead but it is far from it.
How leading was the question in the headline?
That's a little bit like asking "is Linux dead?"
Worse. It's like asking "How dead is Linux?" something that will give Slashdot gamma nazis a big stiffy since for once we actually have a real example of "Begging the Question".
Desktop apps are *clearly* dead.
This is the big change in local applications over the last 10 years. Web deployed Javascript based SPAs are essentially fat apps and appear to be the future for everything not-mobile.
Containers are entirely orthogonal to the JVM.
But Java has been dying for years. Applets died a long time ago. JSP and Servlets are pretty much dead in favor of using a JavaScript front-end and a proper application back-end.
Servlets are long from dead.
JDBC will continue to hold java for a number of years
Ah, I see now. You really have no idea you're talking about. JDBC is an API Java applications use to talk to databases, so somehow it will keep Java going is strange....
I call Elastic Search from all of my C#/Node/Go microservices...
Erm. WHY?
XML was a flawed concept badly implemented shittest back when it should've been aborted and not only has it got no better since but the rest of the planet has adopted usable working alternatives that are superior in pretty much every single way.
XML is shit and I hold great suspicion towards the competence of anybody that promotes it.
This isn't so bad for Android, because they just turn off the entire Java security model and rely on OS-level sandboxing
OK, just do that. Java was never meant as security against people who can execute code on your system (Applets containers were, but they also weren't standard Java).
"First they came for the slanderers and i said nothing."
Unless you're one of the billion people with an android phone
The world's burning. Moped Jesus spotted on I50. Details at 11.
Many parts (all?) of reflection can be switch off: by a security manager.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
"Users have learned to avoid them and install 'real programs' instead..." Like Electron apps?
I never got on the Java train in the first place, python is where I live for initial versions, with followup sometimes in C if need be. Java is dead to me, but always was.
... I still program in C. Last I checked, JVM's were also written in C/C++.
It's fun to watch the kids in school realize they cannot get hired with Java skills. Even when we USE Java, we require you to program in C so we are sure you know how the computer actually works.
Top 5-10% always know. The rest come here on Slashdot and whine about being unemployable, it seems.
That is why you write Scala and Groovy ...
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Since you asked why... there are only a couple areas where I truly use XML. One is to write structured documentation in the Docbooks schema, normally in an editor like XMLMind. The other main area is the rendered (x)HTML for the browsers and XSL transformations to produce it. In this system, some data (such as the results from an SQL query) might be temporarily presented as XML when used as a source document for XSL -> xHTML rendering, if the command pipeline demands it.
-IOVAR Web Dev Platform
"Java programs still are 'the alien on your desktop'. They suck in many ways. Users have learned to avoid them and install 'real programs' instead..."
And which Java IDE is a real Program? I mean, which Java IDE is not mainly written in Java? Or which database client is not written in Java, like Squirrel? There are plenty of programs, which have no non Java competitor, e.g. "The Brain" or Protege.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
I think the ratification of the final HTML 5.0 specification in October 2014 pretty much signaled the end of Java, Flash and Silverlight in terms of applications for web pages.
"The licensing scheme for Java kills it..."
OPEN JDK. How hard is that?
"Java programs still are 'the alien on your desktop'. They suck in many ways. Users have learned to avoid them and install 'real programs' instead..."
Apparently they have never heard of Java Native Packaging? With JavaFX you can skin your app any way you like with CSS. With the module system and jlink you can create small runtime packages. What's the problem?
It seems there's still a lot of misinformation out there from clowns with their 1990's view of Java.
I don't expect C# to do well either.
Based on what? The .NET Core ecosystem is thriving. Microsoft's has been firing on all cylinders with regular updates, constant speed improvements, and first-class support for Linux and containerized apps.
Maybe it's a geographic thing. Here in the midwest, I've never encountered a company that used Java; all the large corporations around here run their backend on .NET and are regularly hiring more C# developers.
You must not have heard, Java's not dead, over 3 BILLION DEVICES RUN JAVA!!! (Also, would you like to install the Ask.com toolbar?)
...it just smells funny.
How can that be insightful? A buzzword rant ...
What has REST to do with Java? Same like iced orange juice versus a compressed gas engine car. Nothing. Or same like a wire for electricity with a iron pipe for water.
How can REST be saner than Java, when REST is a protocol principle and Java is a language? You "can do REST" in any language. You can program anything, e.g. REST, in Java.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Otherwise, it's all bollocks
Java was never meant as security against people who can execute code on your system
Yes it was. Read Li Gong's retrospective some time (Li was the architect of Java's security model). This was explicitly the objective of the Java security model. It was intended, for example, to allow a server process to load untrusted modules to do client-specific processing, without having to trust the client.
I am TheRaven on Soylent News
All. It's a big hammer. You can turn off reflection entirely, but it's very hard to enable the bits that modern Java frameworks die without but disable the bits that can break the security model.
I am TheRaven on Soylent News
Android is going to be replaced in the next few years.
At least That should make the vampires from Oracle happy
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
No, a cybernecrophiliac
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
Android should be the default answer. Java is VERY heavily used, considering android is a dominant platform now
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
The one I freak about most is JavaScript fear of concurrency and the whole callback/promise/async nightmare that enters every fiber of the being of a Node program. Seriously, no. Did we invent 16 core hyperthread CPUs for what again? I know concurrency with locks is a horrid stupid minefield but we have much better ways of handling ut now, pioneered by Java
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
That assumes a loooooot of very detailed expertise by the security manager and breaks every API on Java that is usable.
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
No, any language that allows you to write and read anywhere on the disk is not meant to be secure.
"First they came for the slanderers and i said nothing."
You are right,
after hitting submit I was thinking about hibernate and co.
However when you use frameworks like that, they are not the attack vector.
As long as no one can "inject code" into your Java Application, reflection does not really matter.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Yeah, I will admin, I am a dwarf and I'm digging a hole....
Minecraft bred a lot of script kiddies, and attracted a few java programmers. Unfortunately Notch never released his API for the modders, nor did he follow through and release his code open source like he promised. The original cadre of modders mostly left.
Microsoft is doing the normal things with it, a bunch of marketing to the educationmarket. Still no modding API, just some kind of scripting interface using Javascript!? Let's really confuse the potential programmers, make a Javascript scripting interface for a Java based game.
Anyway I don't know the status of Java in the world at large, but don't count on Minecraft to save the day.
"Proximity to wonder has blunted our perception and appreciation of it" --Tim Hartnell in 'Exploring ARTIFICIAL INTELLI
Java does not allow you to read and write anywhere on the disk. Java does not let you perform *any* I/O unless the currently installed security manager permits it. Seriously, read something about the Java security model before you comment on it.
I am TheRaven on Soylent News
I'm not sure what is replacing Java, or if anything is.
For every 100 Java jobs in my area (RTP) there is 1 Kotlin job. So that's buzz jerky.
C# is my personal favorite language, but TIOBE says it's be trending down since 2012, although PyPL shows it doing somewhat better.
Node seems to get all the startup love, but I can't see large enterprises committing to it. Especially since TypeScript is such a food fight among developers.
SalesForce ?
From where I'm sitting, it's not even a little dead.
From my perspective, it never had any real place on the desktop or in the browser. But it had a place on the back-end of big internal enterprise applications (like, the stuff that makes sure peoples' insurance gets paid for by your employer). And, I still observe it having a place there.
This post intentionally left blank