Yesterday, I talked about what we might be able to infer from Apple’s decision to deprecate Java and prohibit Java applications from the Mac App Store in terms of the future of the Mac as an open platform. Today, I want to round up some links about the future of the Mac as a Java development platform and as a platform for developers.
Nobody is exactly sure what to make of the deprecation of Apple’s port of the Java Development Kit for the Mac, but a lot of people are rather stressed about it, as you can see from several threads at Hacker News. I am a Java developer and I do all of my work on a Mac. Losing the ability to continue to work in this manner would be a hit to my productivity.
First, Apple announced that the version of the JDK that they maintain is deprecated. A Java developer who is a Mac user emailed Steve Jobs what Apple’s future plans are for Java on OS X. Jobs responded that Oracle maintains the Java released for other platforms, that Apple’s Java release is always behind the latest Oracle (formerly Sun) release, and that keeping Java up to date for OS X is their job. Java creator James Gosling takes issue with Jobs on a number of points, noting that many companies do maintain Java for their platforms, and that Apple in the past chose to maintain the port for a variety of reasons. Former Sun open source evangelist Simon Phipps explains why it would be difficult for Oracle to take over maintenance of the OS X JDK.
Matt Drance says this is the end of Java as a development platform for Macs. The one community that really cares about this is Java developers who use Macs. Here’s his prognosis:
A lot of Java professionals use Macs for development, even if they deploy somewhere else. What will they do? If they’re using Eclipse, I think they’ll be OK. It shouldn’t take long to shim SWT on top of an OpenJDK port, and IBM has shown a lot of initiative over the years. Other “pure Java” IDEs, like JetBrains’ (superior, in my opinion) IDEA, depend on a working AWT, and therefore have some more thinking to do.
And finally, Tim Bray, on Twitter:
Unclench, everyone. There are millions of Java devs, all their tools are in Java, they like Macs, one way or another it’ll be there.
I don’t know what the future of Java on the Mac is, but I think it’s foolish for Apple to turn its back on hosting development environments that they don’t fully control. One of the factors that brought Apple back into relevance as a computer maker was the fact that Apple provided a friendly version of Unix that Web developers could use to get their work done. A few years ago switching from Windows to Mac became a no brainer if you were developing apps that would eventually be deployed on Unix servers. That led to a lot of Macs being sold, not only to those developers but also to the people those developers influence.
Furthermore, I believe that the presence of Macs on the desks of millions of software developers who were doing Java work, or PHP work, or Ruby on Rails work contributed in a big way to the growth of iPhone development. There are huge advantages associated with being the platform of choice for developers. Apple should be very careful before it fritters away those advantages.
October 22, 2010 at 10:08 pm
I think Apple is wise to revert control of Java for OSX to Sun. It’s been a major security risk for quite a while, having it be out of sync with Sun’s version. And yes, other vendors provide support for their small-market server versions of Java, but if Oracle can support Java for Linux, then they can handle the much-larger OSX market. I think Oracle’s much more closed approach to Java was the straw that broke the camel’s back here. Apple is clearly tight on software engineer resources, seeing how slow iOS 4 is in coming to the iPad and how long it’s taken them to get around to updating OSX. If they can save resources and increase the default security of their OS by giving control of Java to the company that owns it, they’ll be better off.
October 23, 2010 at 9:13 am
I’m wondering if we’re going off the deep end without really thinking this through and interpreting a poorly worded tech note. What if Apple is going to stop producing their own version of the JVM but leave the structures supporting Java in place? Perhaps the plan is to cede JVM development to Oracle and others and support JVMs in a pluggable fashion to allow for other versions to slot into Mac OS X infrastructure.
October 23, 2010 at 11:06 am
There’s no way Uncle Steve made this decision without a good long talk with his best friend, Uncle Larry – I don’t think Uncle Larry wants Java to go away, having bought the company, so I suspect something’s been worked out such that Java isn’t going away, and Oracle will keep it very well updated on OSX. To the best of my knowledge, Gosling worked for Sun – not Oracle – so his view of the situation is pre-Larry.
That’s my guess.
October 23, 2010 at 1:07 pm
I think that S.P. Jobs usually knows what he is doing. Sometimes he makes mistakes, like not putting CD-R drives on Macs until it’s way passed being obvious or pushing the Cube. In this case I am afraid that technical department heads at hundreds of universities, research organizations, non-profits and not a few corporations, have written question marks next to future Mac purchases and started thinking about alternatives. That’s how important Java (on the desktop) is and any uncertainty in its future support on the Macintosh platform will be seen as a strongly negative factor. In one stoke of poor communication and typical ‘it’s my way or the highway’ attitude, he has jeopardized a significant portion of future growth for the company. Perhaps he doesn’t see this or thinks the growth will be made up in other areas. Maybe he’s right… he usually is.
October 23, 2010 at 1:44 pm
ChrisG is absolutely right. Can’t you see that Apple needs an Oracle/Sun partnership for the coming assault on the enterprise market? The iOS environment is the stalking horse, but Oracle/Sun has the enterprise expertise to finish the job.
October 23, 2010 at 2:27 pm
@daveadams, actually the Linux market is bigger. OS X for the most part is a consumer platform whereas Linux is both a consumer platform (albeit with a smaller market share) and a server market which is much bigger than the OS X server market for Java. No one had forced Apple to take up development of Java on OS X. Their deviations from core Java will make it difficult for Oracle to quickly resume development. That is unless Apple contributes back a code drop of what is currently running and how to diff it.
October 23, 2010 at 2:44 pm
“I don’t know what the future of Java on the Mac is, but I think it’s foolish for Apple to turn its back on hosting development environments that they don’t fully control. “
If you had any experience developing java GUI apps on the mac(which were intended to be cross platform as in run on linux and windows as well) you would know that Apples’ insisted “control” was the entire reason the platform has been unreliable for Java developers.
Apple’s L&F implementation was broken and only got more so with each OSX and JVM release making GUI development with the apple java kit a nightmare for serious professionals and open sourcerers.
This fact spawned projects to try and “fix” or replace Apple’s l&f code such as QuaQua which is the most well known. Most java developers who develop cross platform apps, not just apps for mac, saw this for what it was: sabotage.
So its high time Apple got out of the Java business, and if they didnt and I were Oracle I would have sued them.
Anyone who thinks this is a bad thing, has never actually suffered the pain of trying to make Apple’s horrible l&f code look right and work right. And you probably dont develop production quality cross platform apps you just “use java”, so maybe it never caused you pain.
I also have talked to several other professional Java developers who do deliver production apps on the platform and they are relieved Apple is out of the mix.
So hip hip hooray, Jobs is out of the way!
October 23, 2010 at 4:08 pm
@bob “So its high time Apple got out of the Java business, and if they didnt and I were Oracle I would have sued them.”
This is pure speculation, but perhaps that was some of the motivation here? Oracle is going after Google – a company that made its own loosely compatible version of Java. Perhaps Apple would rather just have oracle provide the official “goods” than go down the path that Google finds itself moving down.
October 23, 2010 at 5:59 pm
“@daveadams, actually the Linux market is bigger. OS X for the most part is a consumer platform whereas Linux is both a consumer platform …. and a server market which is much bigger than the OS X server market for Java”
@James: I doubt LINUX is a bigger market than Mac. LINUX server deployment, I expect, is larger, than OS X server, but there are many more individuals in the world than server racks.
October 24, 2010 at 1:28 am
Oracle owns JAVA. Sun is dead.
Oracle makes JAVA for the desktop operating systems including: Windows and Linux. Why can’t Oracle similarly make JAVA for Mac OS X??? Windows, Mac, and Linux are THE ONLY DESKTOP OPERATING SYSTEMS THAT MATTER.
By having Oracle create all versions of JAVA for the desktop, then all versions will be in sync. All versions will be up to date. All security updates will be done on time.
It is CRAZY for APPLE to devote resources for JAVA at this time when all it gets is GRIEF because it ends up 1 version behind the Windows and Linux version all the time.
Oracle – THE SECOND LARGEST SOFTWARE COMPANY IN THE WORLD – surely has the resources to produce JAVA for Mac OS X. After all, Mac OS X is a Unix OS – something that Oracle is very familiar with. This is true particularly since Oracle produces JAVA for Windows and Linux already.
JAVA is DEAD only if Oracle does nothing about it. Ignoring the Mac would make JAVA a DEAD technology just like the floppy disk.
October 24, 2010 at 3:27 pm
James Katt and Charlie M are correct in their read of Apple’s decision to leave the releases of Java to Oracle. Oracle owns Java!!! Oracle is strong in mid and large scale enterprise systems. Whereas, Apple is coming on strong at the enduser/consumer and small business level. This is a win-win situation for both Apple and Oracle. A close collaboration of these two will span from enduser to enterprise spectrum. An unbeatable combination against Google, Microsoft and even IBM in the IT/IS universe!!!
October 25, 2010 at 2:25 am
THE ABSOLUTELY QUICK, EASY AND NO-BRAINER WAY to port LINUX JAVA to MAC OS X is to take advantage of the fact that Mac OS X IS POSIX UNIX compliant. All then one has to do is to port Java to the X-11 Windowing environment in Mac OS X.
People have ported nearly every Linux application to Mac OS X by this method. This includes even large applications such as GIMP and Open Office.
If Oracle wants to customize JAVA for Mac like the Open Office people did, then it can certainly do a more native port.
Still, there is a dead easy and quick way to get JAVA on Mac Updated for future generations: Just port the Linux version to X-11. Period.
October 25, 2010 at 3:05 pm
Prohibiting Java apps from the Mac app store seems like a mistake. I can’t speak to the JDK issues, not being a Mac user myself.
Unlike on phones, desktop Java apps can work very well, especially where they are permanently open and therefore don’t have to boot the JVM repeatedly, but that describes a very large class of applications. Eclipse provides an experience at least on Windows that is basically the same as a native app.
On the other hand maybe they know that Java apps are a small percentage of the market on the Mac and not particularly important.
I don’t know exactly where Java is going. I’m working with C# at a new job and it’s interesting – no, it’s not the Promised Land, but things like properties and LINQ and delegates and dynamic objects and Entity Framework are neat, and none of that sort of thing looks likely to come to Java anytime soon. I like Java, I think it’s an excellent lowest-common-denominator OO language, and it’s well understood enough to make a good source language for compiling with GWT & Android – although Oracle seems (suicidally) determined to stomp on those – but I have learned to stick to very simple core language features and old APIs like Servlet and JDBC, rather than put my faith in Yet Another Framework – whether that framework comes from Apache or JBoss or Springsource or Sun themselves.
February 23, 2011 at 7:18 pm
@Jacob Davies 🙂
The afore mentioned things like LINQ and Entity Framework etc … Are Actually Copied From JAVA to .NET and Not vice versa. LINQ is a ORM technology, Hibernate predates all ORM’s by years and it was first developed in JAVA. Dont be mistaken Microsoft is just copying everything form Java World To .NET World And then Calling as if they invented it. This is Absolutely Wrong … Infact Long Before LINQ There was a version of Hibernate for DotNET too it is called NHibernate go google it … JAVA is WAS and Will Always BE superior to .NET … More Open More Cross Platform and More Secure.