And not only on OSX -- generally the rise and fall of Java. In late nineties "Java Applets" (+ the web plugin) were supposed to go big. Never happened. Then there was always the promise of Java on the consumer desktop. Never happened either [1]. Java on the enterprise desktop also didn't fare that well. As for startups and smaller companies, the mostly go with Ruby/RoR, Python, Node, Go, PHP, etc.
Nowadays it's just mainly Java on the enterprise server.
[1] Yeah, I know you can name 5 somewhat successful desktop Java apps. I doubt you can name 50 though, and that's the whole point.
Microsoft for example is a winner in desktop space, but they don't get most of the server, nor most of the mobile. And even their desktop profits are not that great.
And Android is a winner on the marketshare front, but its profits (from all makers, Google, Samsung, etc) combined are at best equal to Apple's which has 1/3 to 1/10 the market share (depending on the country).
As a technology, it was fairly clear even in the late nineties that Java was a bad fit for the web.
I don't remember anytime where I've used a Java Applet on any single banking site.
[1] http://www.dinside.no/931165/dnb-dropper-java-fra-november
So it's not banking per se, but it's finance-related.
Some are moving away from them, but installing spyware instead.
How successful exactly? Crappy banking sites aside, you could, even in 2000 or 2005, surf the whole web with Java disabled and not have any problem.
That was less true if you disabled Flash.
Sometimes the Java stuff was hidden: Before XMLHttpRequest I personally used Java in several web apps as a way to do messaging with the server, because Java permitted you to do arbitrary socket connections. You inserted a 0x0 applet into the page and then used the JS bridge that both IE and Netscape provided. Aside from the JVM startup time (which could be several seconds) it was pretty great, actually. I wrote a commercial audio conferencing system that showed the talk status of each participant, for example.
Basically, Java applets were (were, mind you) highly successful before the advent of Flash and AJAX.
They could have gotten Java much more widespread if they weren't religious against AOT compilation to native code, leaving that to third party JDKs. Thus forcing the whole distribution headache.
Then the whole APIs for media and graphics, 3D and desktop integration where left abandoned.
Swing is powerful, but by default looks awful, one needs to know which APIs to make use of. The Filthy Rich Clients blog was quite helpful in this regard.
The sad thing is that it helped to displace much nicer native languages like Delphi. Borland's mismanagement also contributed a lot, though.
https://developer.apple.com/library/mac/documentation/Portin...
Here, Java is a peer of Carbon and Cocoa.
Also, IIRC, on the original OS X reveal presentation, Jobs flagged Java as deeply, natively integrated in a way that no other OS had done before (surely this is available on youtube but don't have a link handy)
It would almost seem like they were betting half the farm on Java. I find it fascinating how fast Java was alienated from the mac given its initial deep embed. Even today, Oracle's JVM for OS X installs into the dedicated /Library/JavaVirtualMachines folder, something I've never seen anywhere else.
As I also remember Apple sales people coming to CERN doing a presentation trying to sell us the idea that since Mac OS X was built on NeXT and BSD, it was also an UNIX that could be used by the researchers.
In the early days of MacOS X, Apple wasn't sure that the Mac OS developer community would enjoy using Objective-C, so they bet the farm on both languages.
As it became clear that the majority of the developers were quite happy to using Objective-C, they just slowly killed the Objective-C - Java bridge, and then eventually gave the JVM code to Oracle.
This also helped killing the Java role on the desktop and together with Microsoft, started the industry cycle to move back into AOT compiled languages.
I wonder how it would have turned out if they had killed Objective-C instead.
On the other had, I also sometimes wonder how a Mac OS X based on BeOS ( C++ )would be.
Well, it's not like Java ever did much to win the Desktop. Swing was a horrible over-engineered mess, performance was crap until GC improved and CPUs caught on in the mid-late 00s, and the desktop saw mostly neglect from SUN.
>I wonder how it would have turned out if they had killed Objective-C instead
And have all OS X userland apps being written in Java? Probably Apple would have been dead.
Besides it's not like they killed Java among protests from developers -- the majority of developers and users "were quite happy to using Objective-C" as you said.
The big problem, was that it required an effort to learn how to do it, which the majority of the developers weren't willing to do.
I still don't understand why one needs to explicitly enable the native L&F. It should have been enabled by default.
In those days (2000-2001) Java was the most hyped language on the planet, thanks to SUNs marketing efforts (and huge cash influx from the dot-com era and need for big servers).
That's what motivated Apple.
But the reality was, few developers ever cared to produce Mac apps in Java, and fewer users like those when they did appear. Despite the deep integration (which was mostly some hooks to native APIs), it was always an alien looking step-child on the platform.
Looks like Cyberduck is still written in Java using the Cocoa bridge:
https://trac.cyberduck.io/browser/trunk/osx/src/main/java/ch...
Android uses its own runtime, its own platform APIs, they just borrowed the syntax and basic libraries and added their own (non standard) implementation below, plus their own platform APIs, unique to Android.
It's nothing like SWT/Swing, J2EE, or the "compile once, run everywhere" Java of yore.