Ask Slashdot: How Dead Is Java? (jaxenter.com) 519
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 ... (Score:5, Funny)
Not as dead as this laaaaarge portion of popcorn I'm making.
[sits back]
Re: (Score:2)
Anything other than machine instructions is not a programming language.
Wuss.
Re: (Score:2)
Repeat after me. JAVASCRIPT IS NOT A PROGRAMMING LANGUAGE.
Stop being such a peckerwood. Javascript is a programming language.
Re: (Score:2)
Javascript is a brain dead programming language.
Re: (Score:2)
That makes it no less of a language. You might as well say C isn't a language, because you can certainly write an interpreter for it instead of compiling it. For that matter, most browsers uses a JIT compiler for JavaScript making it a compiled language at execution anyway.
Re: Not as dead as ... (Score:3)
I completely disagree. These are all tools best for given scenarios with various parameters and trade offs. And those parameters not only include but are mostly dominated by developer time in terms of conceptualization, implementation, and turnaround. The usecase scenarios where hardware limitations, MHz sensor monitoring, and micro+ second response times, make up a very small part of the landscape both in terms of man hours and capital expended.
So in that view, Python, PHP, JavaScript, Perl, and yes even V
Part of me hopes it is dead (Score:5, Insightful)
Re:Part of me hopes it is dead (Score:5, Insightful)
Oracle are consumer-unfriendly across the board, not just with java... They are very good at killing off any goodwill and community support they bought from sun.
Re: (Score:3)
My favorite quote (made up by me, about 15 years ago) -- "Oracle isn't a database, it's a multi-level marketing scheme driven by an army of indentured vassals that somehow managed to make a really good database whose biggest disadvantage is Oracle itself."
Re:Part of me hopes it is dead (Score:5, Interesting)
It is the PL/1 of the web era.
I disagree, it's the COBOL of the web era. It's hugely popular, very verbose, not particularly fast (it can be, but easiest ways to write code in Java don't tend to perform well) and the go-to choice for business logic. And, no matter how much you may dislike Java, be thankful for every organisation it got to move off COBOL...
Has Netcraft Confirmed It? (Score:5, Funny)
Not dead (Score:5, Insightful)
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.
Re:Not dead (Score:4, Informative)
Re:Not dead (Score:4, Insightful)
The ironic thing is that the Java runtime was one of the few major Mac attack vectors until Apple killed it.
Java is definitely useful, but the problem is that it has been ignored, and its structure not fundamentally updated for decades to handle modern day attacks.
Had Java kept up with the times, there would have been no need for Flash or HTML5. However, because of the neglect, it just got surpassed by newer technologies.
Re: (Score:3, Insightful)
It had one awesome point: Write once, run anywhere. In theory, an application could run the same on AIX as it does on a Java "decoder ring", without issue.
In reality, because of the differences in JVMs, an application that worked well on Mac will just throw an exception and die... or even worse, run and end without any error messages and no real way to trace it unless you go through line by line. Trying to have the same code work well on Macs, Windows, and Linux was an exercise in futility.
I do think the
Re: (Score:2)
npm modules?
Dead on the browser? (Score:3)
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 surpris
Re:Not dead (Score:4, Insightful)
It's dead on the desktop
In fairness, almost everything is dead on the desktop at this point.
Re: (Score:2)
Re: (Score:2)
Oracle is doing it's best to kill it on the server side as well by requiring a license for it for commercial use.
I feel bad for any company dumb enough to pay it, though, considering that there are free alternatives out there like OpenJDK.
Re: (Score:2)
Unless that company/institution is using other (expensive in either time, money, people, or all) software that runs on it, that specifies in its support contract that "thou shalt only use these specific versions of java from oracle". Similar example is running linux on IBM mainframes via z/VM - only supported distros were/are redhat and suse. Not running the exact specific version of one of those two? No support.
Re: (Score:2)
What does Drupal have to do with Java? That's a PHP-based system.
Not even slightly (Score:2)
https://www.tiobe.com/tiobe-in... [tiobe.com]
What? (Score:5, Insightful)
Re: (Score:3)
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.
It is so not dead. The ecosystem around Java is huge and growing. If we are talking web apps, sure, they are using Javascript, Typescript, etc. But the server side for pretty much every major project I've seen in the last 10 years is Java, with C/C++ in some areas.
Re: What? (Score:5, Interesting)
Python isn't dead, but it was gravely wounded by the Python 2/3 debacle. (Python 3 is backward incompatible with Python 2, without actually fixing any of the big problems with Python 2.).
A lot of people still use Python because of the huge library ecosystem. However not many new projects are being started in Python today. The quality of the community has also dropped precipitously as good developers jumped ship and the code monkeys piled in.
Golang, otoh, is alive and doing very well. Docker, Kubernetes, Terraform, Etcd, and Prometheus are a few of the high profile FOSS projects written in Go. Many talented folks who jumped ship from Python are now Gophers.
Re: (Score:3)
Python isn't dead, but it was gravely wounded by the Python 2/3 debacle. (Python 3 is backward incompatible with Python 2, without actually fixing any of the big problems with Python 2.).
A lot of people still use Python because of the huge library ecosystem. However not many new projects are being started in Python today. The quality of the community has also dropped precipitously as good developers jumped ship and the code monkeys piled in.
Golang, otoh, is alive and doing very well. Docker, Kubernetes, Terraform, Etcd, and Prometheus are a few of the high profile FOSS projects written in Go. Many talented folks who jumped ship from Python are now Gophers.
Open source and enterprise aren't the same thing. An open source project can choose to use whatever flavor of the month they like. An enterprise will have a strong bias towards using tech they have established depth in. Adopting a new language becomes a long term support commitment that has to make business sense.
Re: What? (Score:5, Insightful)
Definitely not dead or gravely wounded. Python may not be the new hotness, but it's absolutely a go-to language for new code for me. I have been, in point of fact, writing new Python code for my employer recently. It's still the tool I reach for when I need something working Now. I don't spend time writing code for small reasons either--if it isn't making us significantly more money than it costs to build, I don't build it.
Python makes us money, and that's the bottom line.
Now, I'm no picky eater. I've been coding 26 years, and I'll use the correct tool for the job any time I can, rather than "work like an asshole" [favorite saying of an old boss]. For me, that's often Python, but I won't hesistate to drop down to C/C++ or assembler if that's the appropriate tool--or work with Java or C# or Objective-C or Clojure or Ruby or Javascript or Erlang or Haskell or HTML or CSS (and once upon a time, BASIC, Pascal, et al...).
Why are people so stuck on one language or one way of thinking? I was listening to a software engineering podcast recently, and this guy with 8 years of experience is saying he thinks he knows it all now. Well, sorry to break it to you, 8 Year Master, but after 26+ years of this, I've realized that I will never learn it all (even though I keep trying).
Pay your bills first, keep your deadlines and promises, go home to your loved ones, and do things that expand your horizons.
Java, Python, C, Go, Rust: these things aren't important in the same way.
Re: What? (Score:5, Insightful)
> Python isn't dead, but it was gravely wounded by the Python 2/3 debacle.
That is absurd. Python is more popular than ever. Take a look at historical ranks.
Python transition was planned for a long time (Python 3K) and was extensively discussed. The transition was expected to take a long time when introduced and was managed as such. Its community managed breaking changes better than most languages.
You might have had that case with Perl 5/6. It lost all its clout in the transition.
Both Java and Python have grown tremendously. It was just that no one saw Javascript to have the resurgence it did in the meantime.
Re: What? (Score:4, Informative)
> Many talented folks who jumped ship from Python are now Gophers.
You might get that impression if you read some enthusiastic bloggers. But the stats don't seem to reflect that at all.
http://www.modulecounts.com/ [modulecounts.com]
Go is adding an average of 5 modules per day. That is quite low. Compare that to 118 for Python and 128 for Java. Even Rust is growing faster.
Much of Python's recent resurgence has been in "data science". Go community barely even attempts to solve anything here.
It's appeal to Python programmers is in a rather narrow class of problems.
Static binary? Against Java 11 with the upcoming GraalVM, I don't see much in favor of Go.
Re: (Score:2)
Seems fine to me (Score:2)
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
Re:Seems fine to me (Score:5, Informative)
Not sure why there's comments of licensing issues... it's a free download from Oracle's website
Well the issue is complex if you stick to Oracle provided binaries, the TL;DR simple answer is to move on to OpenJDK and be done with it.
Java SE 8 which was the last version you could "freely" use in a commercial product, if you go to Oracle's website at the moment, you'll get this message.
Oracle will not post further updates of Java SE 8 to its public download sites for commercial use after January 2019. Customers who need continued access to critical bug fixes and security fixes as well as general maintenance for Java SE 8 or previous versions can get long term support through Oracle Java SE Subscription or Oracle Java SE Desktop Subscription. For more information, and details on how to receive longer term support for Oracle JDK 8, please see the Oracle Java SE Support Roadmap.
Going forward you now have two options. Oracle OpenJDK which is an open source JDK that you may use as you see fit, the end. Oracle JDK, which starting at version 11 is Oracle OpenJDK plus some Oracle enhancements. You may freely download Oracle JDK and use it for development and testing, however, Oracle JDK cannot be used for production or commercial use without being anally raped by Oracle, so yeah you cannot download Oracle JDK and just use it without being in some degree of violation of Larry Ellison's 37th yacht fund somewhere in the fine print of that download. Additionally, Oracle has gotten a little blood thirsty lately [slashdot.org] so use Oracle JDK without a license at your own damn risk.
So you might ask, so if we have OpenJDK, who would want Oracle JDK? The important thing to remember that OpenJDK provided by Oracle is Oracle's build of OpenJDK, which may or may not have all the most recent patches. Basically, Oracle's OpenJDK is on par patch wise the day a new version hits with Oracle JDK. So when Java 11 hit, that day Oracle JDK and Oracle OpenJDK were functionally the same. However any patches that Oracle JDK has received since that day, Oracle OpenJDK hasn't or might have, it's basically "meh we patch it when we patch it." However, Oracle isn't the only game in the OpenJDK build world.
Here's a post about all the different folks building OpenJDK. [joda.org] I suggest OpenJDK from AdpotOpenJDK or if you are using Linux, BSD, Unix, etc Just use the OpenJDK that your vendor provides, they usually keep it reasonably up to date. What the change does do, is make everyone change their old habit of just going to Oracle's site, download their JDK, and go from there. Instead, just go grab a non-Oracle build, beside we shouldn't be frequenting Oracle anyway.
Outside of that, Java is still Java and unsurprisingly Oracle is still shooting themselves in the foot. The most recent move with Java 9, 10, and 11 only further cements folks' decisions to leave Oracle as their provider of a Java implementation.
Re: (Score:2)
At my work we've been told that we must pay for licenses for our desktops to use JAVA runtime.
We are not exactly scrambling to rewrite apps but this has killed all new development in Java in the organization.
At home, I have not installed Java in 5 years.
Re:Seems fine to me (Score:4)
However, I believe some other JDK suppliers, like AdoptOpenJDK, will provide provide a patched version of version 11 even after version 12 is out.
Re: Seems fine to me (Score:2)
The statutory copyright infringement penalty is per work infringed, not per instance of infringement.
Oracle's Whims (Score:3)
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.
Re:Oracle's Whims (Score:5, Interesting)
That seems to be the only "dead" part of Java, the idea that you can actually use it without Oracle screwing you over.
We've moved to OpenJDK for all production systems, and that sidesteps Oracle entirely.
Re:Oracle's Whims (Score:5, Insightful)
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.
Use OpenJDK. Problem solved.
Re: (Score:2)
If Oracle can claim copyright on simply the function names of Java,
Because they've licensed it to the world, just like every other programming language worth using. Python APIs are just as copyright as Java's, but again, there is a license. [rocksclusters.org]
In the post-Oracle vs Google world, make sure you have a license for any APIs you are using.
Microsoft could help (Score:3)
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.
Re: (Score:3)
As for your work with .NET, are you writing GUI apps? For that, I can see how forcing new updates really helps users in the long run. Java is a complete failure for developing GUIs, mostly because Sun/Oracle
Re:Microsoft could help (Score:5, Informative)
The .NET Framework is kept constantly up to date by Windows Update. It might be nice if Java was a Windows "Feature"
Perhaps you have forgotten history. Microsoft had a JVM. Then they did weird stuff to it which was not quite compatible with other JVMs, and they still wanted to call it "Java". They got sued and lost, and they could no longer play their Embrace-Extend-Extinguish game with Java, so they invented .NET to compete with Java instead. Sun went down the toilet bowl, and Oracle hasn't really even tried to keep Java current, so now .NET beats Java like a piece of meat.
That's a little bit like asking "is Linux dead?" (Score:5, Insightful)
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.
Not dead at all (Score:2)
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.
Not until that next big eruption (Score:5, Funny)
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.
Re: Not until that next big eruption (Score:5, Funny)
Re: (Score:2)
I read TFS. I was just having fun with the title.
Re: (Score:2)
It's as dead as COBOL (Score:3)
But not as dead as SNOBOL
Re: (Score:2)
To be fair, Java is not as bad as COBOL. But I would rather be writing apps than designing elaborate type systems.
COBOL is well designed (Score:4)
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...
Quote is always the same... (Score:5, Funny)
FUD FUD FUD (Score:2)
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 r
Re: (Score:3)
Java desktop apps? Dead. Nobody's going to argue that.
I write new Java desktop apps (and maintain existing ones) as my primary job. I absolutely LOVE Swing, as it is very flexible, well designed, and snappy (JTable, for example, can contain and scroll through hundreds of thousands of rows just as easily and quickly as a couple dozen, performing custom processes on rows and columns). And the entirety of Swing is written with the same type of performance.
Java2EE absolutely sucks shit, and I feel sorry for anyone having to use that monstrosity, but Java SE is f
Re: (Score:3)
On the desktop maybe, but everywhere else... (Score:5, Insightful)
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.
C# has unsigned bytes (Score:5, Interesting)
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.
The most useles feature! (Score:2)
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 G
HackerRank? (Score:3)
Re: (Score:2)
No (Score:2)
Miopic (Score:2)
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.
OpenJDK is still around and free to use (Score:2)
Sadly, Lucene will prevent the death of Java ... (Score:5, Interesting)
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.
Interesting... (Score:2)
I'm just here for the PASCAL
job offers (Score:2)
Check out the job offers in indeed.com so that you know just how popular Java is compared to anything else.
I'd say it's fast zombie, as opposed to slow (Score:3)
I'd say it's fast zombie, as opposed to slow. Possibly infected with rage after a bite from Larry Ellison of Oracle.
Best Chocolate Chip Cookies (Score:2)
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 g
No, I wasn't interested in flames (Score:3)
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
Sure, just go buy a KVM (Score:2)
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.
Maybe, if Oracle wins its lawsuit against Google (Score:2)
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.
What seems to be dead is C/C++ (Score:3, Interesting)
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.
Java is far from dead (Score:3)
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.
It'll be a long lived Zombie... (Score:3)
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.
A troll post (Score:4)
- 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.
Re: C# Killed Java (Score:5, Informative)
No. Oracle killed Java.
Re: (Score:2, Informative)
Nah, C# is a no-go. It's only useful as long as you don't care about any platforms beyond Microsoft Windows. That means C# may have killed Borland C++ Builder, but it did pretty much nothing to Java.
Oracle killed Java. Suing Google over their use of Java in Android was an absurdly stupid move. Android was THE one mainstream platform where Java was finally a first class app. Way to go alienating your user base Oracle.
Re: (Score:2)
Nah, C# is a no-go. It's only useful as long as you don't care about any platforms beyond Microsoft Windows.
Oh really? [mono-project.com]
Re: C# Killed Java (Score:4, Interesting)
I'm sorry, are you unaware of .Net Core?
Available on Windows, Linux and Mac.
Available on x86 and ARM.
Free to use.
Free to change.
Get and fork it top to bottom on GitHub with a open source standard permissive license.
Or are you still stuck in the days of "hate MS at any cost"?
I work for a company that uses .Net Core for all its software development. We dev on Macs, deploy on Linux in Docker containers, and pay Microsoft *nothing*. We are the largest travel company in the Southern Hemisphere, and we have partnerships with the largest RV manufacturers in the world.
But don't mind us, we are just proof that your beliefs are out of date.
Re: (Score:2, Insightful)
Well la-tee-da for you. You're constricted to staying within .NET v2.0 Core-only for as long as you wish to maintain cross-platform compatibility. Somehow you're happy about that? Someday, you'll own the fact that you are in a dead end platform that is going nowhere, by design. Your only way up will be to drop cross-platform compatibility so that you can use .NET proper. And Microsoft will be smiling evilly all the way to bank when that day arrives. Good luck, have fun with that.
Re: C# Killed Java (Score:5, Insightful)
Every platform is eventually a dead end platform.
Re: (Score:2)
no. it's not.
Re: C# Killed Java (Score:4, Interesting)
At a job interview a few weeks back (embedded), they showed me another team's product--cross platform app development for ios/android/pc/mac and it was all C# with Xamarin. If it's sufficiently cross-platform for companies to use for their products, it's probably not that limited.
Re: (Score:3)
wait, what year is this? .NET & C# _are_ cross-platform _and_ open source.
https://github.com/dotnet [github.com]
Re: (Score:2)
C# may have killed Borland C++ Builder
The reports of C++ Builder's demise have been greatly exaggerated. [embarcadero.com]
Re: (Score:3)
You really have no clue what you are talking about. The var keyword has nothing to do with the underlying CLI. It is a language feature that the compiler can pick up on to determine the correct type at compile time. The generated bytecode is still statically typed. The var keyword helps greatly in refactoring.
Re: C# Killed Java (Score:5, Informative)
Literally everything that you said in that post is wrong. In terms of being very similar to Java, here are a few differences:
As to the var thing, this is simple type inference. It is roughly analogous to C++11's auto. It's nothing to do with Visual Basic, it's more important for things like LINQ, where you end up with complex types that depend on the value of an expression and you don't want to force the programmer to write them explicitly. In these cases, var lets you bind variables to values of anonymous types. The code is still strongly statically typed.
Re: (Score:3)
Literally everything that you said in that post is wrong. In terms of being very similar to Java, here are a few differences:
C# has signed and unsigned primitive types (Java has only signed)
char is an unsigned integer primitive in Java, range 0 to 65535
Re: (Score:3)
You don't know what you're talking about. The var keyword simply saves you having to specify the type on the left side of the initial assignment statement. You always know exactly what the type of any variable is as it is explicitly stated on the right hand side of the assignment. This is a massive readability win when the type name is more than a few characters. Additionally, VB.NET is strongly typed.
Re:Security is a lot of why it's dying (Score:5, Interesting)
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.
Re: (Score:2)
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.
Re: (Score:3)
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 windo
Re: (Score:2)
No.
Q: "How Dead Is Java?"
A: "No."
Works for me. :-/
Re: (Score:2)
If I poke it, does it not bleed?
Re:how dead? (Score:5, Funny)
Re: (Score:3)
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).
Re:How many times do we need to have this conversa (Score:5, Insightful)
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.
Re:There are quite a few Java games on Steam (Score:4)
.NET Core allows you to bundle the runtime with your application so that limitation no longer exists. With .NET Core 3, .NET Core will be ready to replace .NET Framework so anyone should be able to take advantage of that capability if they want to.
Oh, and .NET Framework is built into the OS... so you usually do not need to install a runtime anyway except for 2.x/3.x which are disabled by default in modern Windows.
Re: Seeing Red (or Pink) (Score:2)
New Google Fuchsia - pronounced "Goo Ghoul Fucks Ya"