Thanks David and Chris for that info. I knew/remembered a lot of the history but didn't know much of the Apple specific background.
I can see how that OpenJDK seems like it would be the more likely future of Java on the Mac. I will start looking more into OpenJDK even though I'm pretty happy with Sun/Oracle's JDK for Linux. Lloyd On Fri, May 7, 2010 at 7:53 AM, Chris Adamson <[email protected]> wrote: > David Herron has already addressed the question of why Sun didn't do > the Mac port of Jav, but I would like to offer a little more > historical perspective. > > In the mid-90's, a lot of interest in Java was based around applets, > so some of the first implementations came from browser makers. In > 1996, arguably the most important JVM was not Sun's but Netscape's. > Microsoft also made a VM for IE (and deliberately left out certain > APIs, like RMI, which came up as an issue in the anti-trust case > against the company later that decade). > > On the Mac during this period, Sun put out a Java 1.0 JDK that clearly > didn't benefit from much attention: it was absurdly slow and buggy. > Rumor has it that a single engineer was assigned to the port. > Developers who wanted to learn and use Java turned to IDE makers: > Metrowerks (who made CodeWarrior, the top Mac IDE of the day) turned > out what was probably the best Mac JVM of the time. Symantec also > shipped their own VM as part of their Café IDE, and another company > called Roaster had a really nice JVM. Microsoft licensed the > Metrowerks VM for the Mac version of IE, and Apple licensed Roaster, > but apparently never did anything with it. To add to the confusion, > Netscape rev'ed their Mac JVM to a weird "1.05" version -- Java 1.1 > for everything except the AWT, which remained at 1.0 (a huge problem, > as 1.0 and 1.1 had different and incompatible UI message-dispatch > architectures). > > With all these JVMs, and a limited ability to get a given browser to > switch VMs, the situation was a mess. Apple decided to provide a > system-provided JVM, so Java would always be available to browsers and > applications and would behave consistently. Sun loaned a few > engineers to Apple's team to make this happen. Sun was probably happy > to have this off their hands, getting another Java platform mostly on > Apple's dime, as many believed Apple was in an irrevocable death > spiral (imagine telling someone in 1997 that by 2010, Apple's market > capitalization would eclipse Microsoft's, as now appears inevitable). > At any rate, the resulting port was called Macintosh Runtime for Java > (MRJ), and once it was included with the system, it cleared up a lot > of the JVM confusion. > > As Sun's decline started around 2000, the first round of their decade- > long series of layoffs included all the engineers they'd loaned to > Apple, which was taken by most of us Mac-Java developers as another > sign of Sun's disinterest in the platform: throughout the decade, Sun > didn't provide Mac versions of APIs that required native code (e.g., > JMF, the ME SDK, etc.), and can't be said to have done any kind of Mac- > specific releases until mid-decade, when they started rolling a Mac > installer for NetBeans. > > With the shift to OS X, Java was in a better position on the platform: > Java has always had what some of us on the MRJ list called "latent > subtle unixisms", and the architecture of the old Mac OS proved very > unaccommodating for Java's version of threading, file-system access, > etc. Java 1.2 was never attempted for classic Mac OS, and when OS X > came out, it shipped with the then-current Java 1.3. > > For the rest of the decade, Apple as a licensee ported subsequent > versions of Java with varying degrees of timeliness and quality. At > first, there was a genuine interest in the language, with Apple > converting its WebObjects app server to Java, and providing Java > bindings to native APIs like QuickTime, Core Audio, and Cocoa. Jobs > made the now-infamous commitment to make Mac the "best platform for > Java development" in the JavaOne 2000 keynote. For those of you with > your panties still in a bunch over this broken promise, remember to > also demand the JVM for the PlayStation 2 that was promised in the > 2001 J1 keynote, Java on the Infinium console, or any other number of > boasts that did not come to pass. > > In time, Java clearly became less important to Apple, highlighted by > Jobs' 2007 comment that Java was a "ball and chain" that "nobody uses" > in justifying its exclusion from the iPhone. To be fair, times had > really changed: when Apple licensed Java back in 1997 or so, it > appeared that a lot of desktop development was shifting to Java. > Apple's stated reason for creating QuickTime for Java was to give > existing QuickTime developers a migration path to Java (ironically, it > was later and more frequently used by Java developers needing a more > capable media engine than Sun's JMF). However, the failure of large > desktop Java projects in the late 90's and early 2000's, like the > attempts to port Corel Office and Netscape Navigator to Java, badly > tarnished the perception of desktop Java. By the early 2000's, Sun > had mostly shifted its efforts to the server and (to a lesser degree) > mobile space, all but abandoning the desktop (for example, the Swing > API remains little changed after its 1999 release). > > So you end up in a position in the late 2000's where Apple is mostly > interested in desktop technologies, where Java has been rendered > practically irrelevant (at this time, Apple's also about to push into > mobile in a big way, but intends to displace existing technologies, > including Java). Sun remains disinterested in the desktop, and its > last effort in this space, JavaFX, is pretty much a total disaster, > alienating many of the remaining Swing developers and gaining few > converts. > > So what's the case for Java on the Mac now? It doesn't help Apple, > which isn't much of a enterprise server company, and it really doesn't > help Sun either, provided that Apple's version is just viable enough > that Java can still make plausible claims of "run anywhere". For much > of the 2000s, I held on to a hypothesis that the cost of maintaining > Java on the Mac was justified by Apple solely in terms of hardware > sales to Java developers, who swooped up elegant MacBooks and used > them to write webapps (some of which, surely, refused access to non-IE > clients... a bitter irony). > > There may be other reasons that aren't publicly-known -- I've heard > many rumors over the years of licensing spats -- but what I'm left to > conclude is that the Mac platform isn't big enough to justify Sun (now > Oracle, of course) picking up the tab for maintaining Java on it, and > Java isn't important enough to the Mac's end-users for Apple to make > anything more than a half-hearted effort to keep up to speed. > > --Chris > > On May 6, 7:02 am, Lloyd Meinholz <[email protected]> wrote: > > Why didn't Sun provide a JDK for MacOSX like it (eventually) did for > Windows > > and Linux? Did Apple take the lead because they thought they would > provide > > the best LOF for the graphical parts, because Sun didn't have the extra > > resources, both or some other reason? > > -- > You received this message because you are subscribed to the Google Groups > "The Java Posse" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<javaposse%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/javaposse?hl=en. > > -- You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.
