Oracle Celebrates 'The 25 Greatest Java Apps Ever Written' (oracle.com) 121
Oracle's Java magazine is celebrating the 25th anniversary of the programming language with a list of the 25 greatest Java apps ever written:
From space exploration to genomics, from reverse compilers to robotic controllers, Java is at the heart of today's world. Here are a few of the countless Java apps that stand out from the crowd.
The story of Java began in 1991, at a time when Sun Microsystems sought to extend their lead in the computer workstation market into the burgeoning personal electronics market. Little did anyone know that the programming language Sun was about to create would democratize computing, inspire a worldwide community, and become the platform for an enduring software development ecosystem of languages, runtime platforms, SDKs, open source projects, and lots and lots of tools. After a few years of secret development led by James Gosling, Sun released the landmark "write once, run anywhere" Java platform in 1995, refocusing it beyond its original design for interactive television to applications for the burgeoning World Wide Web. By the turn of the century, Java was animating everything from smartcards to space vehicles.
Today, millions of developers program in Java. Although Java continues to evolve at an ever-faster pace, on the occasion of the platform's 25th anniversary, Java Magazine decided to take a look back at how Java molded our planet. 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.
The list includes Eclipse, Minecraft, the Maestro Mars Rover controller, and "VisibleTesla," the open source app created by an automobile enthusiast to monitor and control his Tesla Model S.
The story of Java began in 1991, at a time when Sun Microsystems sought to extend their lead in the computer workstation market into the burgeoning personal electronics market. Little did anyone know that the programming language Sun was about to create would democratize computing, inspire a worldwide community, and become the platform for an enduring software development ecosystem of languages, runtime platforms, SDKs, open source projects, and lots and lots of tools. After a few years of secret development led by James Gosling, Sun released the landmark "write once, run anywhere" Java platform in 1995, refocusing it beyond its original design for interactive television to applications for the burgeoning World Wide Web. By the turn of the century, Java was animating everything from smartcards to space vehicles.
Today, millions of developers program in Java. Although Java continues to evolve at an ever-faster pace, on the occasion of the platform's 25th anniversary, Java Magazine decided to take a look back at how Java molded our planet. 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.
The list includes Eclipse, Minecraft, the Maestro Mars Rover controller, and "VisibleTesla," the open source app created by an automobile enthusiast to monitor and control his Tesla Model S.
Office Suites (Score:5, Interesting)
I'm surprised OpenOffice/LibreOffice isn't mentioned.
I'm unsure how much is C++ vs Java, and they are not related to space or science, but still important imho.
Re: (Score:2)
Re: Office Suites (Score:2)
No, the entire scripting was and I think is Java-based. Think the VBA equivalent. Java instead of Basic.
I think that makes the formulas in Calc Java too, but I'm Not Sure [youtu.be].
Re: (Score:2)
Re: (Score:2)
Re:Office Suites (Score:5, Informative)
OpenOffice/LibreOffice is not a Java application, it's mostly just the database component that needs Java. That said, some time around the year 2000, there used to be a pure Java version of its predecessor StarOffice, then still with Sun, that was designed with a client/server architecture that distributed work between the client PC and the server. On the screen, it looked just like StarOffice, it was fast, and I've even seen it running on OS/2 back then. For some time it used to be deployed by a German internet company for their business customers as an online office suite, the client portion of which ran as an applet in the browser, quite similar to what Collabora Office does today. That gem of software engineering never became generally available, though. And as much as I'd like to blame Oracle there, I'm not sure whether it was Oracle or whether it was already at Sun where it quietly and completely disappeared.
Re: (Score:2)
But Java has been removed as a dependency of LibreOffice but it will detect and use it at runtime for some peripheral stuff like JDBC /
Re: (Score:2)
Re: Office Suites (Score:2)
Wow Marima..that takes me back..
Re: (Score:2)
Brace yourselves... (Score:3)
Are we going to get a Java-Is-Dead posting in this thread? Remember it isn't a Java thread in /. unless we do.
Personally I never thought Java was going to go as far as it has when I first learned of it. But if Sun had managed to monetize it they never would have gone out of business.
Re: (Score:2)
That said, I mostly write device drivers and kernel stuff. As Java has neither pointers nor direct memory references, it's a non-starter in that space. But I somehow suspect most Java programmers are perfectly happy not knowing what a pointer is, nor what a direct memory reference is. Let alone a chip's internal register set.
Re: (Score:2)
Re: (Score:3)
Maybe you mean COBOL programmers? Java effectively has pointers almost everywhere, just like Smalltalk, Scheme, Lisp...
Java has references, not pointers. Pointers can be manipulated, references can't. Also, LISP has no pointers and neither does Scheme. I don't remember if Smalltalk did or not. Do you mean JNI or something?
Re: (Score:2)
Re: (Score:2)
Well,
Java:
SomeObject one = new SomeObject();
one ++; // syntax error
C++: // see the "*" ? explicit declaration of a pointer
AnotherObjet *two = new AnotherObject();
two ++; // advance pointer to next object ....
You have no clue about pointers ....
Re: (Score:2)
Moving to Java I missed pointer arithmetic.
It was a reasonable sacrifice. The simpler code made everything else much easier and there weren't any pointers for everybody else to fuck up.
Re: (Score:2)
Of course!
But my main reason was: it was portable, especially GUI and Internet and threading.
I loved C++ - but Java simply beat it.
Re: (Score:2)
Re: (Score:2)
The point is: Java has no pointers.
Claiming a reference and a pointer is the same: is simply wrong.
Re: (Score:2)
Uhhh. Java language spec literally says that reference values are pointers to objects.
Obviously you'd be correct in your claim if you were saying that C++ references are not C++ pointers (since C++ references are notably NOT defined to be pointers to objects), but I didn't even mention C++ since C++ is a whole different can of worms.
Re: (Score:2)
A c++ reference is a "constant pointer".
And on calling side for functions you can omit the "&" character.
Compiled to machine code a pointer and a reference (C++) are the same like a reference in Java.
Re: (Score:2)
A c++ reference is a "constant pointer".
Uh, what? No, it's an alias to an existing object! (In the C++ sense of "object", or course.) There's zero requirement for it to be a pointer. For example, where's the pointer in int a{42}; int& b{a};? There isn't any! Any reference to b will compile into the same indexed load from the same stack frame as a reference to a, without any pointers in the way.
On the other hand, there IS a 100% requirement for EVERY Java reference value to be an object pointer, without it the language wouldn't work at all.
Re: (Score:2)
Re:Brace yourselves... (Score:5, Funny)
Are we going to get a Java-Is-Dead posting in this thread?
I started working on a project to replace all of Java with Rust which is a superior language, but then I recently found Haskell, which is clearly the best language all you noobs, I just can't print anything but it's ok because there's no mutable state (except sometimes).
Re: (Score:2)
This is obviously the best comment in this entire story.
Re: (Score:2)
(except sometimes)
Re: Brace yourselves... (Score:2)
Somebody didn't get monads. Shall I wipe off your big booboo tears? ;)
They're just monoids in the category of endofunctors. What's the problem? [stackoverflow.com]
Although, shameless plug, this is a really damn good tutorial on category theory:
https://www.youtube.com/playli... [youtube.com]
Re: (Score:2)
Actually, Haskell (or at least GHC) allows even direct memory access and pointers, which Java does not. In many ways, Haskell is like a version of C++ with very different defaults (preferring safety, especially in compile-time, over C++'s speed and adhocness).
Re: (Score:2)
Haskell is nothing like C++.
Re: (Score:2)
Re: Brace yourselves... (Score:1)
What does Stackoverflow say about it? Because we know if SO says a language is popular, it must be so.
Re: (Score:2, Interesting)
I don't even consider Java implementation when I spec out apps to use on the web. There is just going to be too many people who can't run it. HTML 5 seems
Re: (Score:2)
Comment removed (Score:4, Insightful)
Re: Brace yourselves... (Score:2)
No, most Java is Android apps!
People always forget that Android is
Linux kernel + mostly Java userspace.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Java Virtual Machine on the desktop, and that's pretty rare anymore due to all the desktop vulnerabilities that introduced.
It is absolutely not rare.
And the vulnerabilities mostly where/are in the browser plugin. How should a Java app on a desktop have any exploitable vulnerabilities if they are not intentionally build in by the programmer?
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
If Sun had tried to monetize it the way Oracle is now, it would have died a decade ago. I've made my living for the past several year writing Java. If I can make more money doing that, I will, but I'm thankful that it's not the only language I'm comfortable with.
It just happened to be the buzz-word language many companies were most familiar with in the web app space. With this new cost, hopefully I can stop using it, and use something less tainted-by-Oracle again.
Re:Brace yourselves... (Score:5, Funny)
Are we going to get a Java-Is-Dead posting in this thread?
Java's not dead.
It just seems that way because it used up all the memory, and the system has become unresponsive.
Re: (Score:2)
But if Sun had managed to monetize it they never would have gone out of business.
They might still have, but perhaps they would have also blessed us all by taking Java with them to the grave.
Re: (Score:2)
Java isn't dead, its value is grossly underrated by this linked article. The beauty of Java isn't in the "greatest java apps ever written", that's just stupid, because much better high performance apps have been written in other languages. I mean just compare the technical sophistication of say Roblox compared to Minecraft. No the thing that Java is the champion of is the apps that are mind-numbing to write, the sorts of stuff that would make a high
Re: (Score:2)
compare the technical sophistication of say Roblox compared to Minecraft
Ah, Roblox, with a game engine written in C++, microservices written in C#, its database written in Java, analytics written in Python and every single team in the company picking their favourite technology to use.
Technical mess, not sophistication.
the thing that Java is the champion of is the apps that are mind-numbing to write, the sorts of stuff that would make a highly talented programmer cry
That's an interesting way to describe the sort of application where the outcome matters more than the technology, where speed of delivery matters more than performance, where maintainability matters more than developer egos.
You know, the sort of job you lack the s
Re: (Score:2)
You forgot the main feature which is game logic written in LUA. Your generic project delivery arguments I mostly agree with except delivery time vs performance, I think both have equal weight. The ad hominem sign off was totally justified, I bow to the superior skills of Java programmers, us programmers of other languages are just simple minded folk.
Re: (Score:2)
I bow to the superior skills of Java programmers, us programmers of other languages are just simple minded folk.
Thus kind of proving my point.
Good software engineers are good software engineers in any language. I've been a big fan of Java and I've put working software into production in at least eleven languages (and dabbled with a few others).
Java is dead. Viva Python. (Score:3)
Java is not completely dead yet.
But Oracle is actively working to kill it by asking for royalties.
Use it, pay for it -> people move to python.
Re: (Score:2)
But if Sun had managed to monetize it they never would have gone out of business.
Sun went out of business because of the dot com bubble crash,
They sold a lot of hardware to internet companies on credit, which went out of business - SUN never got the money.
Then their shares dropped to $4 something. And Oracle thought it s a cheap buy. Technically: they actually never went out of business - they got bought.
Re: Brace yourselves... (Score:2)
Also, the oblig. post with someone confusing java and JavaScript...
Re: (Score:2)
Right after we get the item on "the 25 best ever guilded turds".
Re: (Score:2)
I know for sure (Score:5, Insightful)
I know for sure that Confluence by Atlassian won't ever be on this list.
Re: (Score:1)
Re: (Score:3)
Re: (Score:2)
It's lock-in. They got in early and then made it very difficult to switch to anything else. You can't even highlight text without a plugin and the plugin is expensive beyond all reason.
In short: It's shit software that costs a ton and is still stuck in the 90s feature-wise.
Re: (Score:1)
Re: (Score:3)
I actually really like Confluence ... why the hate?
Use a real CMS for a week or two and you'll never ask that question again.
Re: (Score:2)
Re: (Score:2)
Re: I know for sure (Score:2)
And that doesn't make it an insanely bloated hyper-enterprisey nightmare? ;)
You must be a consultant!
RAD used to be fun when Delphi did it.
Nowadays, I mostly generate my UIs right from the (data / session state) model (e.g. SQL DD) as I do the scripting interface and things like dbus and file system structure.
GUI widgets need to die a firey death, together with non-tiling windowing, one-pointer input, desktops, and anything that is not trivially scriptable or not a file.
Re: (Score:2)
Re: (Score:2)
Yeah, I was expecting a bunch of fart apps.
Re: (Score:3)
The Java Update Tool thingy that installs itself on windows and mac also won't make the list.
The Java Update tool made the following changes:
* Installed an updated Java Update Tool
(and yeah, I know it's not written in Java, but it's still a PoS)
Changing quickly is not a feature (Score:3)
Re: (Score:2)
Whether it is a benefit or a problem is entirely application dependent.
My App (Score:1)
25 greatest Java apps ever written? (Score:1)
A ranking of the 25 greatest Java apps ever written. Way to go, damning them with faint praise.
Oracle is a troll led by... a troll. (Score:2)
Look -- Squirrel!!
There's no top-25 Java anything. It's just an attempt at a distraction. Those who accept it and argue about what SHOULD and SHOULD NOT be on "the list" are missing the point. There's no list except what they made up... to distract you.
Oracle's dogged pursuit of APIs as copyright-protected code will destroy the software industry as we know it.
Larry Ellison is a sociopath, and he gets a thrill out of "messing" with other people -- the bigger, the better.
Stop begging the question -- nobody
Apps (Score:2, Insightful)
Re: Apps (Score:2)
I find the term quite acceptable since I realized it is always a pejorative, used to deliberately highlight the distinction between them and proper programs (as in: tools).
"Apps" is the term for monolythic non-scriptable non-combinable mostly one-trick-pony GUI programs.
They are as harmful as they are stupid.
There's an app for everything because there HAS to be an app for every permutation of functionality, because you cannot just glue small tools (that do one thing and do it right) together as there is no
Re: (Score:2)
If it is in Java, it is basically always scriptable.
Does it run on a Mac, it is basically also always scriptable.
SweetHome3D and ArtofIllusion, two favorites (Score:5, Interesting)
Sweet Home 3D is a free interior design application
that helps you draw the plan of your house, arrange furniture on it and visit the results in 3D.
http://www.sweethome3d.com/
Art of Illusion is a free, open source 3D modelling and rendering studio. Many of its capabilities rival those found in commercial programs. Highlights include subdivision surface based modelling tools, skeleton based animation, and a graphical language for designing procedural textures and materials.
http://www.artofillusion.org/
Any other Java based applications people like and are still using?
LoB
Re: (Score:2)
I mean, it's opensource and there's some volunteers developing it but it'll never be enough to be competitive with other, bigger, better-sponsored, IDEs.
I hope Jitsi made that list. (Score:2)
Not Jitsi Meet. The original Jitsi, from a time when people still used brains, and it was popular too [youtu.be].
And I forgot what that mldonkey GUI was called that got me through the 2000s... But it was as essential as a browser.
Also, Eclipse should be in the anti-list to this. I've never seen a more bloated enterprisey trainwreck in my life, and I used to work with Lotus Notes. :)
Re: (Score:2)
Eclipse is an IDE, supporting many languages and has thousands of plugins.
It does what it is supposed to do. No one forces you to install any "bloat plugins".
Not liking it, is ok. But talking bad about it, neglecting its many many superb features is just brain dead.
Re: (Score:2)
Re: (Score:2)
I do not develop plugins for a reason :D
You are probably right.
What? No Android?? (Score:2)
People always forget that Android's user space and apps are almost completely Java . . .
Remember how slow those first smartphone CPUs were? Yet, the flashy UI was 60fps smooth and responsive.
I bet she even wrote that list on an Android tablet.
Yeah, not so slow and bloated now, is it?
Re: (Score:2)
Android has its own VM and uses a different bytecode than standard JVMs. Hence it was faster and snappier than "standard Java".
Number 12: Applets (Score:3)
No. JUST NO! Why did you have to bring this up. I've only just forgotten. *sob*. Why now. *sob*.
Java, write once ... (Score:2)
RenSkep (Score:2)
Users don't give a fuck about Language (Score:3)
Most people don't give a fuck if C++ or Java was used for their application. All they care about is:
* Is it stable?
* Is it fast?
* Is it easy to use?
* Is it inexpensive?
* Is it lean?
BS list (Score:2)
I knew it was goign to be littered with lies when the very first one said "Java became the first programming language to expand humanity’s planetary reach" (in 2004) .. which is obviously just a big lie. What the heck were previous space probes or vehicles such as Voyager, Lunar Lander, Galileo, Viking etc. written in? Chopped Liver? They all had microprocessors and programs.
Re: (Score:2)
Oracle really shot Java in the foot when they started charging for licenses. I wish they would not have done that. Companies are abandoning Java for Python at a rate I've not seen in the industry in my lifetime.
Companies aren't abandoning Java, and certainly not for Python.
For those that don't want to, or can't, pay, they're just switching to OpenJDK, Amazon Corretto, etc. They're all free.
Re: (Score:2)
I think it's more accurate to say that Java was shot in the head, but I'm disappointed that no one included any "How to shoot yourself in the foot with " jokes in the discussion.
My own position needs a disclaimer. I don't care that much about Java per se, but I wish IBM had seized the initiative to save Java when it was possible. No mention in the discussion, but IBM created some amazing JIT compilers and if IBM still had any vision, those technologies could have been the foundation of a new non-Oracle Java
Re: (Score:3)
They shot Java in the foot when they brought Google to court over Dalvik. Even IF they had every right (and in my opinion they do not, but opinions are a dime a dozen), that showed the open source developer ecosystem that the entire thing was now a poisoned pill.
Re: (Score:2)
Sorry, they are abandoning Java. Most companies are implementing different types of ML into their products, and Java's AI support is nothing like what Python's is. Very sorry you're a Java evangelist, but that is what is happening. I don't think Java is going to be nonexistent, though the writing is on the wall.
Yes ladies and gentlemen, the contribution of the pot calling the kettle black is in. And, again, it's a Python worshiper (aka pyworse by connoisseurs) that's finishing first and lonely with a commendable gusto at spoiling parties.
Re: (Score:2)
BS. They're abandoning Java for Open JDK. Rewriting a code base to the shit hole that is Python APIs not a rational route
Re: (Score:2)
Re: (Score:3, Funny)
Oracle has made Microsoft look good in comparison. That's not an easy feat.
Re:Sloppiness = Squandered opportunity (Score:4, Insightful)
Wow.. you really don't remember history do you..
Before the mid-90s you had many programming language choices in the software industry as long as you chose between C and C++. (VB was allowed but mostly for inhouse software)
Then Java came along and made it acceptable to have a language that was:
- interpreted
- ran on a VM
- used garbage collection
- didn't have direct memory manipulation
- had a hugely extensive standard library with tons of useful stuff
This last point was of particular importance. In the mid-90s there C++ library was quite minimalist. So basically you had to choose some library provider like MS MFC or Motif and others. You depended on some commercial vendor or rolled your own.
Java allowed us to go beyond that.
For the first time in history since Smalltalk you had a somewhat ok implementation of OO (better than C++ at least) that actually had an extensive reusable library. Then you had huge Open Source projects supporting it as well. Software reuse became a reality, whereas before it was merely a dream in commercial programming.
Now, in the late 90s its true that Applets where an abject failure with security problems and things like that. But mostly the alternatives were more attractive. And Wintel had lowered the price of the PC to $500 to block Sun's attempt at displacing them.
But another trend was also afoot. Companies such as IBM and Oracle backed what became the J2EE which basically saved Java. Because suddenly Java was an enormously useful Serverside language that adopted the best ideas of ASP and others and went far beyond it (at the time). Meanwhile in the Open Source world Apache launched Jakarta and the enormously successful "Tomcat".
This changed the game of web software. MS had to play catch up.. which eventually they did, but Java was king at the beginning of the 2000s.. And it still is a top popular language. Though young people like to disparage it (you know you've made it when you have haters).
Its thanks to Java that people even consider using languages like Python, Ruby, C#, Javascript and others for serious software development. It was also the first example of widespread reuse in commercial software.
In the beginning there you could choose anything you wanted as long as it was C (or its son C++).
Re: (Score:2)
In the beginning there you could choose anything you wanted as long as it was C (or its son C++).
Eh, for web there was still a decent amount of choice other than C/C++ thanks to the CGI interface. Ther was Perl, PHP, ColdFusion, TCL, and even Bash if you were sadistic enough.
Re: (Score:2)
In the beginning there you could choose anything you wanted as long as it was C (or its son C++).
Eh, for web there was still a decent amount of choice other than C/C++ thanks to the CGI interface. Ther was Perl, PHP, ColdFusion, TCL, and even Bash if you were sadistic enough.
True. There was the CGI option which was often used with Perl in the early days. PHP was there as well. And there was ColdFusion.
But these kind of lacked the backing of major companies. In the early days MS was pushing ISAPI and Netscape NSAPI (which were C/C++ based). But these were dropped in favor of solutions like ASP and later JSP. These two had strong backing of strong companies. You could totally crash your server with a bad ISAPI filter.
People often forget how important large company backing is for
Re: (Score:2)
That's arguable because Perl, Php, Python, Ada, C++, and Pascal were available at about the time. But anyhow, I was mostly talking about the large niche of desktop applications that Java could have competed in but bungled. They missed a big boat.
Server-side is easier to solve anyhow because you don't have to deal as heavily with UI standards and client differences.
Sorry, I'm not impressed.
Re: (Score:2)
That's arguable because Perl, Php, Python, Ada, C++, and Pascal were available at about the time. But anyhow, I was mostly talking about the large niche of desktop applications that Java could have competed in but bungled. They missed a big boat.
Server-side is easier to solve anyhow because you don't have to deal as heavily with UI standards and client differences.
Sorry, I'm not impressed.
Perl was used as a serverside language but was quite minimal. It did not implement any sort of middleware needed for transaction monitoring, it ran everything on a separate process and was very basic. It didn't cover enterprise needs.
PHP was unknown early on, but did catch on eventually as an alternative, but didn't have the momentum or backing Java had.
C++ was used early on for Webprogramming but quickly abandoned when Java appeared.
I've never heard of serious use of Pascal or Ada on the serverside.
I'm tal
Re: (Score:2)
I was just about ready to bet my career on it.
I don't understand. Are you implying that you were only going to have to learn one language?
Re: (Score:2)