| Steve Jobs Comments on Apple's Java Discontinuation | Friday October 22, 2010
|
Macrumors has an article on the fuss about Java on the Mac. They quote Jobs as saying:
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.
It simply isn't true that “Sun (now Oracle) supplies Java for all other platforms”. IBM supplies Java for IBM's platforms, HP for HP's, even Azul systems does the JVM for their systems (admittedly, these all start with code from Snorcle - but then, so does Apple). In the beginning, Microsoft provided Java for Windows - but Sun took over when Microsoft violated their contract and made Java code written on Windows unable to run on other systems. Sun also provided the VM for Linux because there was no one else to do it. In all the other cases, the platform owners wanted to do the ports themselves so that they could put a lot of energy into it, and because they knew the platforms better than anyone else. Apple was the same: in the early days, they were insistent on doing the port themselves. They put terrific energy into it. They did a good job. But then, as OS X took hold and Apple was able to convince developers to target their non-portable/proprietary environment, Apple's fundamental control-freak tendency took over and they put less and less energy into Java. It also didn't help that the early ports that they did were heavily customized - far more than they needed to be. This made upgrading to subsequent releases very hard, and for quite a while Apple's JVM lagged behind all other platforms. But they eventually got their act together and their JVM upgrade pipeline got streamlined and they kept up very well in recent years.
None the less, there were recurring discussions about having Sun or the community shoulder the burden. There were lots of obstacles. One was that a lot of Apple's web sites (MobileMe, iTunes, the app store) were Java apps and they were nervous about not doing the QA themselves. The point became somewhat moot because Apple ended up using a lot of Sun hardware (yes!). But the biggest obstacle was their use of secret APIs. Yes, OS X has piles of secret APIs. Just like the ones that Microsoft had that contributed to their antitrust problems. The big area (that I'm aware of) where these are used is in graphics rendering.
A particularly ironic area was in aliased versus antialiased rendering: Apple's graphics pipeline is well designed: they do antialiasing beautifully throughout. The Java graphics spec has some careful wording to allow Apple-style antialiased-only pipelines to be used. Code that works well with this style of rendering is easy to write. Unfortunately, old Microsoft platforms only supported aliased rendering, and some (this was rare) applications would have rendering artifacts if antialiasing was turned on. These applications were broken according to the spec, and most authors fixed their apps so that they worked in both cases. But one developer took a serious "fuck you" attitude on this issue and forced Apple to implement aliased rendering - which they kept secret because it was such an awful thing to have to do. The "one developer"? Oracle, of course...
|
Posted by progr on October 22, 2010 at 05:21 AM PDT #
Posted by Ted Wise on October 22, 2010 at 05:25 AM PDT #
Posted by Osvaldo Pinali Doederlein on October 22, 2010 at 05:25 AM PDT #
Posted by Bob on October 22, 2010 at 05:50 AM PDT #
Posted by Peter on October 22, 2010 at 06:01 AM PDT #
Posted by Adrian on October 22, 2010 at 06:08 AM PDT #
Posted by Modern Developer on October 22, 2010 at 06:45 AM PDT #
Posted by Mitch on October 22, 2010 at 06:47 AM PDT #
Posted by Rob Dickens on October 22, 2010 at 07:05 AM PDT #
Posted by Robert on October 22, 2010 at 07:07 AM PDT #
Posted by Kyle T. on October 22, 2010 at 07:08 AM PDT #
Posted by Robert on October 22, 2010 at 07:16 AM PDT #
Posted by Ivan on October 22, 2010 at 07:36 AM PDT #
Posted by Richard on October 22, 2010 at 07:47 AM PDT #
Posted by Helper on October 22, 2010 at 07:50 AM PDT #
Posted by Osvaldo Pinali Doederlein on October 22, 2010 at 07:50 AM PDT #
Posted by Luke on October 22, 2010 at 07:56 AM PDT #
Posted by Mike on October 22, 2010 at 07:59 AM PDT #
Posted by Ivan on October 22, 2010 at 08:02 AM PDT #
Posted by Jochen Mader on October 22, 2010 at 08:06 AM PDT #
Posted by Eugenio Segura on October 22, 2010 at 08:34 AM PDT #
Posted by Josh on October 22, 2010 at 09:10 AM PDT #
Posted by James Katt on October 22, 2010 at 09:25 AM PDT #
Posted by James Katt on October 22, 2010 at 09:25 AM PDT #
Posted by James Katt on October 22, 2010 at 09:33 AM PDT #
Posted by Jj on October 22, 2010 at 09:35 AM PDT #
Posted by Jon on October 22, 2010 at 09:49 AM PDT #
Posted by msj on October 22, 2010 at 10:02 AM PDT #
Posted by dafi on October 22, 2010 at 10:03 AM PDT #
Posted by Toby on October 22, 2010 at 10:08 AM PDT #
Posted by sebastian on October 22, 2010 at 10:26 AM PDT #
Posted by Sigivald on October 22, 2010 at 10:45 AM PDT #
Posted by Paul on October 22, 2010 at 10:46 AM PDT #
Posted by Slothbear on October 22, 2010 at 11:07 AM PDT #
Posted by Christian on October 22, 2010 at 11:13 AM PDT #
Posted by Stephen Bannasch on October 22, 2010 at 11:27 AM PDT #
Posted by Ilgaz on October 22, 2010 at 11:30 AM PDT #
Posted by Erich on October 22, 2010 at 12:05 PM PDT #
Posted by Joe on October 22, 2010 at 12:47 PM PDT #
Posted by She who develops without Eclipse on October 22, 2010 at 01:02 PM PDT #
Posted by rcfa on October 22, 2010 at 01:21 PM PDT #
Posted by Eric Kolotyluk on October 22, 2010 at 01:24 PM PDT #
Posted by Jay on October 22, 2010 at 01:28 PM PDT #
Posted by Clemens Ott on October 22, 2010 at 01:49 PM PDT #
Posted by Chad Preisler on October 22, 2010 at 02:11 PM PDT #
Posted by Parallel Forever on October 22, 2010 at 02:19 PM PDT #
Posted by Clemens Ott on October 22, 2010 at 02:27 PM PDT #
Posted by h@kr on October 22, 2010 at 02:46 PM PDT #
Posted by Jon H on October 22, 2010 at 02:46 PM PDT #
Posted by David (bobjob) on October 22, 2010 at 02:54 PM PDT #
Posted by Davide Perini on October 22, 2010 at 03:05 PM PDT #
Posted by Marcel Offermans on October 22, 2010 at 03:31 PM PDT #
Posted by Hohonuuli on October 22, 2010 at 03:38 PM PDT #
Posted by Raffi M. on October 22, 2010 at 03:52 PM PDT #
Posted by Anonymouse on October 22, 2010 at 04:00 PM PDT #
Posted by Guy on October 22, 2010 at 07:53 PM PDT #
Posted by ChrisGWarp on October 22, 2010 at 08:44 PM PDT #
Posted by Peter on October 22, 2010 at 10:26 PM PDT #
Posted by Daniel Bruessler on October 23, 2010 at 03:24 AM PDT #
Posted by Twan van der Schoot on October 23, 2010 at 05:36 AM PDT #
Posted by Stan on October 23, 2010 at 05:47 AM PDT #
Posted by BM on October 23, 2010 at 07:22 AM PDT #
Posted by Tom on October 23, 2010 at 08:55 AM PDT #
Posted by thomas on October 23, 2010 at 09:31 AM PDT #
Posted by JTx on October 23, 2010 at 09:59 AM PDT #
Posted by Jesse Barnum on October 23, 2010 at 11:28 AM PDT #
Posted by Jasper on October 23, 2010 at 12:05 PM PDT #
Posted by ptrfck on October 23, 2010 at 12:13 PM PDT #
Posted by ks on October 23, 2010 at 12:14 PM PDT #
Posted by ks on October 23, 2010 at 01:15 PM PDT #
Posted by Abhi Beckert on October 23, 2010 at 02:04 PM PDT #
Posted by bob on October 23, 2010 at 03:46 PM PDT #
Posted by Luke on October 23, 2010 at 07:13 PM PDT #
Posted by Call Center on October 23, 2010 at 07:25 PM PDT #
Posted by Ilgaz on October 23, 2010 at 09:09 PM PDT #
Posted by stever on October 24, 2010 at 03:02 AM PDT #
Posted by Peter Pilgrim on October 24, 2010 at 04:12 AM PDT #
Posted by Michael Pate on October 24, 2010 at 05:44 AM PDT #
Posted by Slated on October 24, 2010 at 06:29 AM PDT #
Posted by Simon on October 24, 2010 at 06:57 AM PDT #
Posted by Aspect oriented NetBeans Null pointer exception on October 24, 2010 at 10:03 AM PDT #
Posted by Luke on October 24, 2010 at 11:31 AM PDT #
Posted by Herve on October 24, 2010 at 01:13 PM PDT #
Posted by ram on October 24, 2010 at 08:34 PM PDT #
Posted by Dipl.-Inform. Carsten Eilers on October 24, 2010 at 11:53 PM PDT #
Posted by Graham Phillips on October 25, 2010 at 05:45 AM PDT #
Posted by Harald on October 25, 2010 at 06:27 AM PDT #
Posted by Edwin Contreras on October 25, 2010 at 06:38 AM PDT #
Posted by Penti on October 25, 2010 at 09:14 AM PDT #
Posted by Barry Kreiser on October 25, 2010 at 09:47 AM PDT #
Posted by Greg Thompson on October 25, 2010 at 10:01 AM PDT #
Posted by Jogi on October 25, 2010 at 12:01 PM PDT #
Posted by Andrew John Hughes on October 25, 2010 at 03:34 PM PDT #
Posted by Alex Dubois on October 26, 2010 at 05:37 AM PDT #
Posted by Dummy00001 on October 26, 2010 at 06:21 AM PDT #
Posted by Ruby Coder on October 26, 2010 at 08:10 AM PDT #
Posted by business blog customization on October 26, 2010 at 09:01 AM PDT #
Posted by Aldo Laiseca on October 26, 2010 at 11:21 AM PDT #
Posted by Cal on October 26, 2010 at 02:27 PM PDT #
Posted by jose on October 26, 2010 at 08:13 PM PDT #
Posted by Marat Dyatko on October 27, 2010 at 12:18 AM PDT #
Posted by new Color(1.0f, 1.0f, 1.0f, 0.5f); on October 27, 2010 at 01:12 AM PDT #