What follows is a list of the 25 most ingenious and influential Java apps ever written, from Wikipedia Search to the US National Security Agency’s Ghidra. The scope of these applications runs the gamut: space exploration, video games, machine learning, genomics, automotive, cybersecurity, and more.
It’s posted by Oracle and thus it makes me feel dirty to link to it, but I guess it’s still an interesting list – albeit with one obvious, huge, giant, inescapable elephant of an mission.
I am surprised to see Eclipse, which is IBM funded, along with NetBeans in the IDE category.
The Apache foundation of course does not get all the credit they deserve. They spearheaded lightweight server side Java with Tomcat, has great search tools with Solr, and many other libraries indispensable to developers Or third party tools that make life much easier like the Selenium framework.
Nevertheless it is nice to be reminded that Java is a collaborative effort.
sukru,
I noticed that most of these are older pre-oracle projects.
There was a time I thought java was a decent development platform. Sun certainly contributed a lot to the software world. They pushed innovations in managed languages with safe semantics, portable bytecode, JIT compilation, run anywhere portability, comprehensive frameworks, easy web-start remote applications, etc. A lot of the work has been mimicked and even ripped off by others including microsoft. But now I wouldn’t develop with java these days, oracle has shown itself to be a bad steward of FOSS software with an agenda that is incompatible with the java community that once existed.
To anyone who doesn’t follow java news, oracle moved java to a subscription model for all commercial users effective 2019.
https://www.lakesidesoftware.com/blog/java-did-what-understanding-how-2019-java-licensing-changes-impact-you
https://devexperts.com/blog/oracle-jdk-vs-openjdk-builds-comparison/
I don’t exactly understand how this subscription works in practice. Does this only apply to Desktop software? Or server side as well? Because I see OpenJDK being used on the server extensively. In the environments where I worked the last few years (both government and commercial) OpenJDK is being used everywhere. And if commercial support is required they want support on the OS as well, so we see mostly RedHat providing the OS and middleware. So they provide commercial support on Java, including old versions like version 8.
I think Oracle did a surprisingly good job at changing the development process of Java, since it moved outside of Oracle. Releases are now time based and not features based. With this release model, improvements to the language itself and the platform are coming now at a very steady pace. A lot of inspiration is drawn from other JVM languages too, which is a good thing.
As a Java developer I feel Oracle stepped out of the way and I don’t have any business with them anymore.
testadura,
Well, for me personally I stopped considering it worthy for my own use with the oracle v google java language api copyright lawsuit. While google made some dumb mistakes, I think copyrightable APIs sets an extremely dangerous precedent. The case is still being appealed and is awaiting the supreme court to take it.
https://www.theregister.com/2020/03/16/google_oracle_supreme_court/
And that’s the thing, oracle may feel embolden to go after many more users in court. Note the consequences of this API case specifically. The legal precedence can potentially dictate that oracle owns the java API rights over ANY java implementation, including the one by redhat! They could threaten and sue the customers of it’s competitor for royalties. Maybe it’s overblown, but as long as oracle’s at the helm, I think there’s reason to worry.
When it comes to openjdk, that might be safer as it’s available from oracle itself. However anyone using it must comply with the terms of the GPL (with so called “classpath exception”). Another problem in practice is that companies can be sued and incur legal costs even when they are not guilty. Hypothetically speaking if you’re a small company facing $20k legal fees plus risk loosing versus just paying $10k settlement fees to make the lawsuit go away, it probably makes more financial sense to settle than defending yourself in court. The other problem with settlements is that they’re almost always under gag orders so the public doesn’t know what’s happening.
Maybe the concern is all irrational, but I am legally wary of anything having to do with oracle.
What the actual F are they doing now ?
Depending on what the details are they are going to piss off a whole bunch of people.
I always knew everything about Oracle I needed to know, from someone who has been in the belly of the beast;
https://www.youtube.com/watch?v=-zRN7XLCRhc&t=33m55s
Jenkins is another interesting inclusion. The project forked from “Hudson” after Oracle acquired Sun because Oracle were a bunch of dick-bags.
The Apache Foundation has played a very important role in stewarding major open source Java components. But I sense that you are maybe giving the foundation more credit than it deserves – Tomcat started at Sun, Solr started at CNET (and Lucene, which Solr is based on, was started on Sourceforge). Apache has become a home for these projects, but the foundation did not start them, and so much of the development is carried out by volunteers / people employed by other organisations.
Thanks, I did not know these particular projects started elsewhere.
Still, Apache has been a good host to maintain or improve many high profile open source Java efforts. Their process has worked well, and the community prospered.
I might be biased though, I had an old friend part of the maintainers of their directory server project.
Hmmm, I like Java, in fact it’s probably my favourite despite not using it much these days. With an IoT focus I find myself back in the C, C++, uPython and ASM landscape, although I did look at JavaME early days.
But coming from Oracle this feels like a “We know we’ve been bad but please come back to us?” letter!
cpcf,
I always find myself falling back to C & C++ owing to those being the defacto standard for just about all systems programming. If it weren’t for the garbage collection, I would be pushing for d-lang to replace C/C++ absolutely everywhere. D-lang took all of C/C++ features and did them better: a cleaner yet mostly familiar syntax, eliminates the need for forward declarations and classes without having to write redundant code for function prototypes, use proper modules rather than include files (god how I hate those). It’s a damn shame dlang’s authors didn’t budge on garbage collection, because it was so close to being a complete successor to C/C++.
“I always find myself falling back to C & C++ owing to those being the defacto standard for just about all systems programming. If it weren’t for the garbage collection, I would”
Which is why Rust is now making some real inroads I think, but it’s obviously going to be a while for it to take over in some big way.
Lennie,
Rust has a lot of merit. I like dlang’s syntax better though. It’s hard to buck the syntax you grew up with, but that’s something you get used to. It’s too bad rust didn’t exist 35+ years ago since C obviously has a lot of momentum, I suspect it could take another 35 years for the software industry to recover from C practices. Oh well, better late than never I suppose, haha.
I also don’t like some of the Rust syntax.
Many these days use transpilers, so we could actually pretty easily just transpile before compile.
Hm… I hope JetBrains switches all their IDEs to something like C#, .Net or heck, Python, because Java is… currently problematic.
Everyone I know that was using it switched to the free version or started doing so as soon as Oracle bought it, and while it’s nice that it’s portable code, yeah no.
I really doubt they would though, their developers are seriously good with Java so I don’t think they will, but one can dream.
JetBrains supports all those languages and a lot more, either directly in IntelliJ or via a dedicated IDE. For C# they’ve got Rider, for Python PyCharm.
Well, I think a part of their success and quality of their tooling can be attributed to Java and its ecosystem itself.
What exactly is problematic with Java currently?
I think esp. the GraalVM will an ark that will could lead java to the future. It’s the ultimate response to .net and nodejs at the same time. But it still need much more endorsement and mindshare.
I’ll bite – what’s the obvious missing one?
I was wondering that, myself!
+1
Anyway, I fail to see why most of these apps would be “great”. I suspect there is a hint of marketing going on by mixing some known and lesser known things together.
Things that are (or potentially becoming) great are the stuff no engineer wants to touch: date & time API, money/number formatting problems, right to left writing (solved by browsers) … Far more interesting when solved than a new syntax that is supposed to make you fall in love with a language.
I dunno, maybe something to do with Android?
Maybe Android or Azureus/Vuze: both had a huge impact and popularity among non techie people