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.

Reply via email to