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 <meinh...@javabilities.com> 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 javapo...@googlegroups.com. To unsubscribe from this group, send email to javaposse+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/javaposse?hl=en.