Mitch Pronschinske is a Senior Content Analyst at DZone. That means he writes and searches for the finest developer content in the land so that you don't have to. He often eats peanut butter and bananas, likes to make his own ringtones, enjoys card and board games, and is married to an underwear model. Mitch is a DZone Zone Leader and has posted 2574 posts at DZone. You can read more from them at their website. View Full User Profile

Apple Shuns Java in Mac OS X

10.21.2010
| 26345 views |
  • submit to reddit
Apple continues to drive away Java developers and the Java platform itself today as news has come in that they will deprecate Java on Mac OS X.  Apple's Java runtime for Mac OS X 10.6 (Snow Leopard) update 3 and OS X 10.5 (Leopard) update 8 are deprecated, which means they won't be maintained at the same level as before.

It also seems likely that Apple will remove their Java runtime completely from the upcoming Mac OS X 10.7 (Lion) release and future releases.  However, the Java runtime that ships with Leopard and Snow Leopard will be supported and maintained until the end of their support cycles.  Apple's OS X 10.6 update brings the Java version up to 1.6.0_22.

The release notes give users instructions for installing third-party VMs, indicating that Apple is going to leave it to OpenJDK ports such as SoyLatte to make Java runtime builds for the Mac OS.  

IDEs

In the next year or two, we may not see Eclipse on Macs anymore.  This slow death could begin if Apple doesn't ship a JVM in Lion.  The other major IDEs, NetBeans and IntelliJ IDEA, will have an even tougher time staying on the OS because they rely directly on AWT and Swing.  A port of OpenJDK might use X11 instead of native OSX windowing components.

Alex Blewitt explains the Eclipse issues in more detail:

One of the key problems is that the OSX implementation of Java provides a number of Cocoa-specific bindings and hooks. Whilst Eclipse is based on top of SWT, and SWT uses the native widget set directly (rather than AWT and Swing which render their own), there are a number of hooks into the Cocoa layer to provide application-level services. Some of these have been extended in the redesigned eAWT package to permit Java applications to opt into user events (including the “sudden termination” which enables faster OS shutdown).  --Alex Blewitt

The Writing Has Been on the Wall

We saw Apple's declining enthusiasm for Java back in 2007 when Leopard was being released and PPC users were left with an old version of Java when 64-bit JVM development was halted.  It was a major shift from 2001 when Steve Jobs said Mac OS X was the best platform for Java development.

There was an article on Javalobby about the 2007 Java-Mac OS X events and at that time, Java Father James Gosling had already given up on Macs:

"As several people have noticed at my talks over the past few months, I no longer carry a Mac laptop. As much as I love the Mac's eye candy, it really hasn't been keeping up as a developer's machine - their attention has clearly been elsewhere.  Apple's JDK support is a part of my problem, and yes, I have their JDK6 from the ADC. I've met the folks on the JDK team and they're trying real hard. It's hard to tell what the fundamental issue is, but it keeps feeling like the big problem is that developers aren't the "Target Demographic"."  --James Gosling

While Apple hasn't explained its motivation for deprecating Java, possibilities might include problems with security, Apple's preference toward its own technologies, or what Gosling mentioned: demographics.  Today's news probably won't have a significant impact on Apple's sales, but there will probably be a number of Java developers looking to use another OS.

Does anyone use Mac for Java development?  How does this news affect you?

Comments

Jammer Man replied on Thu, 2010/10/21 - 11:44am

Fine by me.  Now when someone in our group asks for  a Mac instead of a Windows laptop, I now have justification to deny them.  It's also one less platform I need to worry about (Safari) when developing web applications.

 Thanks for making my life easier, Apple!

replied on Thu, 2010/10/21 - 11:57am

I was about to get  a mac pro for my next development (Eclipse WTP) machine. Forget about it. Linux is just fine.

Jim Lombardo replied on Thu, 2010/10/21 - 12:07pm

Got a MacPro recently and have loved it for Java development and Git among other things. But now I'm getting a divorce. Sure I'm a Java developer and I'm ticked off by this, but the real tragedy is the loss of the JVM on the Mac; and the JVM is the real rockstar. It's not just about Java, Steve! It's also those Scala, JRuby, blah, blah, blah other programmers who rely on the only runtime engine that runs on multiple O/S platforms. Now we're back to vendor lock-in. Want to develop on the Mac? It better be Objective-C and plan to run that on Mac only. Want to do VB or C#? Plan to run that on a Windows machine only (yes, I know about Mono, but it's not the same thing as the complete .Net framework). Idiots! As Jammer Man said in his earlier post, at least I have one less platform to worry about. Anyone want a brand new MacPro for cheap?

Charles (Ted) Wise replied on Thu, 2010/10/21 - 12:25pm

It appears from the announcement that Apple is getting rid of their own version. The assumption isn't that Java will no longer be available for the Mac, its that Oracle will have to pick it up as a platform. This is exactly the same approach that every other platform uses. When you say that Oracle's version will use X11 and suck you're assuming that Apple isn't going to pass control of their changes to Oracle or that Oracle wouldn't be able to implement the same things. That's unlikely. From one perspective, this is _better_ then the previous situation. If Oracle adds OS/X as a platform then we'll start getting updates at the same time as every other platform. Not the delayed releases that Apple has been providing.

Thai Dang Vu replied on Thu, 2010/10/21 - 12:42pm

Anyone want a brand new MacPro for cheap? : I do, to install Linux on it (although the screen resolution is not as good as that on my thinkpad).

Eric Bresie replied on Thu, 2010/10/21 - 1:25pm

I don't own a Mac so it doesn't effect me, however...

I think this is actually good. It helps with the fragmentation of the Java world. It gets rid of another instance of Java. It avoids Mac platform always lagging behind in keeping up to date with Oracle/Sun implementation.

Perhaps (if Apple will let them), the internal developers can join in to the openJDK and continue to support things there (like IBM).

I've heard some improvements in the openjdk (i.e. XRender) helped for Linux. I would suspect it might be usable on Mac OSX as well.

Alex Blewitt replied on Thu, 2010/10/21 - 1:58pm

Thanks for quoting me - and for searching through the links - but would it have killed you to link to my blog piece at http://alblue.bandlem.com/2010/10/apple-deprecates-java.html or the InfoQ article that spawned it at http://www.infoq.com/news/2010/10/apple-deprecates-java? Heck, I linked back to the JavaLobby discussion in my write-up.

Pide Piper replied on Thu, 2010/10/21 - 2:05pm

Of course Oracle will write a JVM for Macs ... they are doing it for all the other platforms already ... it's always annoyed me that apple had their own Java anyhow ... I'm not sure what the big deal is ...

Pide Piper replied on Thu, 2010/10/21 - 2:11pm in response to: Jim Lombardo

Calm down. Do any of the other PC makers do their own JDK/JVM? Answer: NO. If you want a JDK for any other platform you download it from Sun (Oracle). Has it been a pain to be dependent on Apple to update their Java in order to stay current? YES. And now we get to join the rest of the community and get our JDK from Oracle. What's the BFD?

Vitaly Mikheev replied on Thu, 2010/10/21 - 2:25pm

That's fine! Finally,  Mac users will have a choice of installing Java of that version (and of that vendor) they need.

Obviously, Apple was never interested in Java. If this move would  happen several years ago, we would already have a mature mainstream Java SE for Mac OS as we have it for Linux.

 

 

Vitaly Mikheev replied on Thu, 2010/10/21 - 2:30pm

@Pide Piper

Absolutely! Language implementation is not Apple's core business (at least for the last 35 years ;)

Collin Fagan replied on Thu, 2010/10/21 - 2:33pm

Apple doesn't want Java on a Mac? That's fine, Microsoft doesn't want it on Windows either. From what I hear way back Apple asked to take the Mac version of Java in house. The real question is if Oracle will take over and support OSX like a first class platform. I believe it's in Oracles and Javas best interest to do so. Lets hope that they do the right thing.

Dudu Zerah replied on Thu, 2010/10/21 - 2:47pm

If we can use OpenJDK, it's ok. I don't like the idea of Apple developing their own JVM, this is not just Apple problem. I think this is an "Oracle and Apple" problem, both will earn money if Java runs on Mac OS.

Arek Stryjski replied on Thu, 2010/10/21 - 2:50pm

I undestand why this may be a problem for SWT/Eclipse but why for swing/NetBeans? The rendering in swing is not dependent on Cocoa integration it can be done just like in Linux or Solaris. But anyway I don't think IBM will let SWT die.

Jonathan Fisher replied on Thu, 2010/10/21 - 3:11pm

Steve Jobs needs to attend a session at Java One. He should stand up front and look at the audience and count the number of white apple logos glowing on the tables...

Richard Osbaldeston replied on Thu, 2010/10/21 - 4:18pm

Wow this is a kick n the pants for developers hoping for a Java desktop revival. Having the runtime preinstalled was a much preferable to forcing users to navigate to a download site and install the correct runtime themselves, let alone keep it up-to-date etc..

So we'll have to wait and see if Oracle is going to step up to fill the gap. Worst case scenario is no Apple JVM in Lion and users have to wait another year before one becomes available from Oracle. An Open Source project probably won't cut it, users won't trust it and theres simply too much work needed to get it up-to-spec and keep it updated & secure. SoyLatte currently only works on X11 if you've seen such apps on Mac OSX (e.g. Gimp) you'll know this isn't going to be acceptable. Developers should expect parity with what the Linux runtime offers at least. Esp when it comes to hardware/gpu acceleration & effects. JavaFX 2.0 will be launching around the same time, going to be a damp squib if it only works on Windows & Linux. The next best thing would be Apple contributing their JVM code, or the changes back to Oracle.

Did this news come completely out-of-the-blue? Why weren't Oracle ready with news that they'll be supporting Mac OS X going forward. Why leave space for FUD? In fact why wasn't this made as a joint announcement? Hard to believe the last(?) third party JVM licensee didnt inform Oracle some time ago. Sometimes I wonder if Suns PR department was the only one to survive the acquisition intact.

The other news is Java apps won't be admissible to the new Mac OS X appstore, which will no doubt be marketed as the only safe way to purchase & install new apps on Lion. Even if we do get a substitute JVM vendor Java apps (or even part Java apps) won't be able to compete on the same playing field as native OS X ones it seems. Grim news really.

As Eclipse uses SWT and bindings for Cocoa already exist for this, can Eclipse run on SoyLatte as-is without X11? in which case its mostly Netbeans & IntelliJ devs and Swing users who'll feel the most pain.

Javier Diaz replied on Thu, 2010/10/21 - 4:14pm

This is a backstab at the perfect moment. As soon as Oracle could say:ok, lads, Java 7 next summer, this time is for real, Steve said: not in my platform, at least not by me and ... OS X 10.7 next summer.

Henk De Boer replied on Thu, 2010/10/21 - 4:48pm

I do wonder about one thing. Wasn't OpenJDK supposed to be Mac compatible from the outset, our savior for the always behind Apple port?

Then why is is that there are no pre-compiled binaries being made available except from a single very old version of OpenJDK 6. One can definitely build them from source, but there simply aren't any being made available. What gives?

Otengi Miloskov replied on Thu, 2010/10/21 - 5:04pm

This is not only about Java, It is the walled garden and the distortion field of Stevie. MacOS X Lion 1.7 even does not come with flash and maybe they will drop the support of scripting languages on the core. Anyway What you will expect about apple?! geez, as Stevie said, All the Iphone and ipad features will comeback to the mac no just the eye candy but also the crap bureaucratic of Apple system. Im so tired of apple crap, Im out. Im still have an apple laptop but its my last. Next laptop will be a Sony Vaio or a Toshiba with an Intel 7i, it is more faster and more cheaper with good quality than a Mac and I can run whatever I want, Java, Flash, Python, Ruby, Javascript, Linux, Windows etc. Good bye Apple!.

Otengi Miloskov replied on Thu, 2010/10/21 - 5:18pm in response to: Jammer Man

Safari == Webkit, Target Chrome and equals to Safari. Im agree as you said one less platform to worry about.

Justin Forder replied on Fri, 2010/10/22 - 2:35am

Steve Jobs apparently emailed: "Sun (now Oracle) supplies Java for all other platforms. They have their own release schedules, which are almost always different than ours, so the Java we ship is always a version behind. This may not be the best way to do it" - see this discusssion at Hacker News.

Martijn Verburg replied on Fri, 2010/10/22 - 3:50am

I don't think it's a necessarily bad thing either, but given the lack of response by Oracle, I suspect this came as a surprise to them. I know that the latest binary of the openJDK built for mac works just fine for me in terms of basic server side examples, I suspect it's the complex UI stuff (Mac L&F) and perhaps taking advantage of Lion capabilities that could mean a late arrival of Java 7 for the Mac. Cheers, Martijn (@java7developer - twitter)

Otengi Miloskov replied on Fri, 2010/10/22 - 4:06am in response to: Justin Forder

Booo, Steve Jobs is a marketing guy and a lier. Apple Java yes it was late to the Sun releases but It was one of the best Java implementations with nice support on Swing for Mac OS X goodies. No, this is a lie, We know what Stevie and Apple wants, its we all develop apple products in Objective-C and cocoa as all the BS with Iphone and Ipad. As I said, check about flash they kicked out from Lion also.

Otengi Miloskov replied on Fri, 2010/10/22 - 4:12am

By the way this is all about the mac app store, of course they dont want to put java apps on the app store they want to exclude java and flash apps from the mac so the mac app store is safe from whatever is their point of view and just deploy objective-c apps. Lets face it guys really, the mac and apple products are all walled gardens. If you want to develop on the mac or for the mac you have to use apple tools(xcode etc). forget everything else. For java developers the best will be to target the mac but just for web applications.

Armin Ehrenreich replied on Fri, 2010/10/22 - 4:35am in response to: Martijn Verburg

The silence of Oracle on this becomes daunting. If Oracle was really caught off guard this would be a disaster for Java on the Mac and for the Java cross-platform story.
Apple needed years to provide a decent, fast Swing implementation. And they know their platform and have used non public APIs for implementation.
Oracle has no chance to do this in reasonable time on their own. And after all, why implement AWT it they head for JavaFX? But this would mean only to have a X11 implementation of Swing on the Mac.

Igor Laera replied on Fri, 2010/10/22 - 8:08am

 

I work with XCode on a MacMini. I can't really see any app that is build with Java to run
on a Mac without extreme conformance.

The Mac guys I know despise 1:1 RCP/Swing ports, because the most devs simply don't
invest any time to optimise the gui to mac users. For me, JavaGui on a Mac is a kludge for
developers, but not real users. I can't see how todo anything on Mac without entering the
ObjectiveC+Cocoa 'universe'.

If Oracle delivers timely, real jdk ports to write server software - I could see that. But I doubt
that the number of successful, performant, really liked java apps on Mac exceeds 20.

My take on it, especially with the new Appstore for Mac is, to find a way to autoconvert/
cross compile/port Java2Objective-C and slash a real Cocoa frontend on it.

 

Yannick Menager replied on Fri, 2010/10/22 - 9:54am in response to: Justin Forder

If it was *only* about deprecating the JVM... That excuse would be have been somewhat believable.

However if you couple that with the "Java apps are forbidden from the new Mac App Store", it clearly shows that the reasons are  primarily anti-competitive.

Ponraj Suthanth... replied on Fri, 2010/10/22 - 11:41am

Well i belive, Steve, has got something different. If apple sees the big success of IPod and IPhone, that dosent mean they have won the whole heart.

 

Avoiding JVM Specifically means, locking out Java, JRuby, Scala, Grovy etc. I dont think Object C can catchup all those stuffs.

 

I beleive the Apple JVM will be provided by Open source community instead of the Apple itself. if that happens, i would feel good. if not, i would look for avoiding Apple.

 

Regards

Ponraj S

Claude Lalyre replied on Fri, 2010/10/22 - 12:33pm

I was planning to buy a brand new Mac book Air... Now, I am thinking carefully about this issue....

Jason Kilgrow replied on Fri, 2010/10/22 - 12:41pm in response to: Charles (Ted) Wise

But what is Oracle's motivation for that? Do you think that anyone is going to now pay for the JVM that was once free from Apple? If someone can show Oracle where the money is for supporting another platform, then do it! Otherwise, you mac users are going to be left with OpenJDK (which, IMO, isn't a *bad* way to go...it just won't perform as well as a jdk/jvm with native hooks). Good luck! I, too, loved my mac but I had to leave it behind because of the sucktastic performance of the JDK. Win7 or Linux is a completely viable option for Java development and should always be considered over a mac simply out of priciple.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.