
Apple deprecates Java - tomeast
http://developer.apple.com/library/mac/#releasenotes/Java/JavaSnowLeopardUpdate3LeopardUpdate8RN/NewandNoteworthy/NewandNoteworthy.html#//apple_ref/doc/uid/TP40010380-CH4-SW1
======
jdub
Note that they've only deprecated _their own Java runtime_.

~~~
martey
I have not done Java development on OS X, but doesn't this mean that OS X 10.7
would not ship with a Java runtime? Wouldn't this have a negative effect on
the ease of packaging and distributing Java programs on the platform?

~~~
krelian
Was Java that big on the Mac? Neither Windows nor most Linux distros ship with
a Java runtime.

~~~
Corrado
Yes, at one point Apple made a big deal about Java being a "primary" language
on the OS X platform. It had proper Coca bindings, Mac like look & feel, etc.
Steve hawked it in one of the early OS X keynotes as being the future of the
Mac platform. An easy language for all those that were confused by
Objective-C.

Several years ago Apple reversed their position on Java and have been ignoring
it ever since. This is merely the last act in the Java play at Apple.
Goodnight sweet prince!

~~~
rbanffy
> Steve hawked it in one of the early OS X keynotes as being the future of the
> Mac platform

That's standard practice. You make it easy to port apps to your platform until
you gain traction and until your exclusive technologies do, then make it hard
to port away from your platform by phasing out technologies that would enable
that.

A Java app that runs fine on OSX but that's easy to port to (or directly run
on) Windows or Linux does Apple no good while an application written in
Objective-C depending on the latest *Kit stuff locks both developer and user
into Apple's walled garden.

Their move from GCC to clang is no coincidence.

~~~
masklinn
> Their move from GCC to clang is no coincidence.

Erm... what? Clang has already been ported to Windows (and other platforms).
Their move from GCC to clang comes from GCC sucking goat's balls at error
reporting and being integrated into an IDE. You might want to note Apple
_produces_ an IDE so that's kind-of a big deal for them, and a big reason for
the existence of LLVM and related technologies (Clang, LLDB, ...) is very much
that they can be used as libraries and easily integrated into tools.

Seriously, you should be careful, your anti-apple-tag shows a bit too heavily
in that comment.

~~~
rbanffy
Clang/LLVM is BSD while GCC is GPL. That means Apple can extend them all they
want without ever giving you, or their competition, any sources.

If they ever perceive a threat from their competition, Clang/LLVM provides a
lot more maneuvering space than GCC ever would.

And yes, GCC is a very hard thing to integrate into tools and it's that way by
design.

~~~
calloc
I would like to point out that Apple employs the guy that builds LLVM/clang
and all those projects and yet they are still releasing the source code and
everything out there for the public to use.

~~~
rbanffy
> Apple employs the guy that builds LLVM/clang

Curious. Is the copyright Apple's?

~~~
housel
The copyright belongs to each contributor:
<http://llvm.org/docs/DeveloperPolicy.html#copyright>

------
lkrubner
It's a smart move from Apple's point of view. Why should Apple work to support
Flash or Java or any platform that is owned by someone else? Why not shift the
burden of maintenance, and dealing with bugs, onto those who own the platform?
And why not open the door to future Apple products that might compete in the
same space?

Besides all that, this moves suggests a confidence that was unimaginable 10 or
more years ago. Apple is no longer desperate for market share, the way it was
in 1997.

All the same, it makes me sad. I like the JVM. I do not like Java itself, but
I like Groovy and I have started to like Clojure.

~~~
biafra
They should care because they sell hardware to people who use those platforms.
They will sell less hardware to
Java/Scala/Groovy/Clojure/Jython/JRuby/Beanshell programmers this way.

The Mac platform is not important enough for Oracle to care. And Java Apps
won't be in the App Store.

~~~
TheCondor
Why isn't the Mac platform important enough for Oracle to care?

Seems to me that maybe it's big enough that Mac should be supported by Oracle.
That would be a bit more ideal, get updates when all the platforms get
updates.

~~~
biafra
Even if Oracle supported Macs. Apple made it clear they won't allow Java Apps
in the Mac App Store.

~~~
redrobot5050
So what? The Mac App Store doesn't erase the fact that I can go to
<http://www.eclipse.org> and get eclipse.

~~~
biafra
But I suppose you won't be able to run it on iOSXI

~~~
redrobot5050
Haters gonna Hate.

------
jon914
This worries me greatly because my startup's product is based on Java, which
gave us an advantage over others in our space for being able to work across
Mac and Windows while maintaining a great user experience thanks to a lot of
customization on our part (see profile).

While I concede that Java has lost relevance on Mac, there are outliers like
ourselves who've written native looking Java software and don't have a viable
route should the worst case scenario arise.

My only inside knowledge is that the Java "team" within Apple was very small,
which explains why it constantly lagged behind on updates.

------
bgruber
To argue that having an Apple supported JVM was good, or that it doesn't
matter because you'll just have a 3rd-party JVM instead, misses the fact that
it's _the change itself_ that will be cause the of problems. As crap as
Apple's Java support has been, it was a known quantity: as a developer, you
know what your Mac users have (currently it's "most have Java 6, but there are
plenty of people still stuck with Java 5"). The same is true for Windows; even
though the JVM comes from Sun, everyone gets that same JVM, and pretty much
everyone has Java 6.

It will take some time before a new _one true JVM_ for Mac emerges.
Furthermore, Apple's wishiwashiness on the support (" _may_ not be included")
will probably inhibit development on a true replacement.

------
alanh
Given that they are deprecating _their own Java runtime_ and that the major
differentiation of said runtime from others is the _much better approximation
of the Mac UI_ in Java apps, and given that this deprecation is coming ~9
months ahead of OS X 10.7 Lion, I’m going to guess they are finally freshening
up the OS X look & feel and don’t want to spend time keeping their JVM in
lockstep.

~~~
dannyo152
That seems a reasonable guess. Also, java has been showing up with a lot of
vulnerabilities, so the beancounters may have wondered about the costs of
doing qa on implementing those. We know that it is months before we get major
new versions of java or some of the security fixes. Also java 7 is on the
horizon and the dance would start over again.

There's an opportunity here that Apple should encourage. I write in-house apps
in java on the Mac for deployment for my Windows colleagues. They are not
going to stop using Windows. Java has real good libraries for rdbms access.

I guess the options are java develop in a vm hosting Linux or hello -ugh-
mono. But I hope someone gives us a good java that runs natively.

------
jwr
That is very bad news for those of us who use Java on Mac OS X. And I don't
mean UI programming, but developing server Java (or any JVM-hosted language,
such as Clojure) applications.

~~~
swannodette
Why?
[http://developer.apple.com/library/mac/#releasenotes/Java/Ja...](http://developer.apple.com/library/mac/#releasenotes/Java/JavaSnowLeopardUpdate3LeopardUpdate8RN/ResolvedIssues/ResolvedIssues.html%23//apple_ref/doc/uid/TP40010380-CH3-DontLinkElementID_11)

The situation for Java will now be the same as that for developing in any
programming language that Apple doesn't ship with OS X or that ships with a
version lower than the one you are targeting.

My suspicion is that Apple is likely to drop Java in 10.8 which gives ~3 years
for the JVM community on OS X to get their act together making OpenJDK work
well with OS X.

That said, being a Clojure user this does increase my interest in seeing a
Clojure-in-Clojure sooner than later. I'd like to see Clojure target LLVM the
way MacRuby does.

~~~
grav1tas
I think stuff like this isn't really that bad for devs who use the platform.
Devs (should) have the ability to pull down the replacement in this situation
when the time comes. It's going to be harder on the end user that no longer
gets why his/her Java application no longer works right.

~~~
acdha
What end-user Java applications are there for OS X? The only one which comes
to mind is Crashplan but I'm sure it's lurking around in other places.

~~~
_delirium
Do IDEs count? A lot of Mac users use Eclipse. It's not common among _all-Mac_
teams that just do XCode, but it's fairly common for devs in groups that
mostly do PC development to own Macbooks that they run Eclipse on.

Probably not a big concern for Apple, but it's common in universities, too,
since Eclipse is (until now, at least) cross-platform enough that you can
assume Windows/Mac/Linux-using students can all install it on their laptops.

~~~
pvaibhav
As an Android developer using Eclipse on a mac, this news majorly sucks. I
hope the offering from Oracle will be better than Apple's JVM though.

------
ZeroGravitas
I was under the impression that iTunes (the backend server) was all written in
Java using Apple's own WebObjects framework that they ported from Obj-C.

Have they ported it back, or are they planning to ship OpenJDK for server
purposes?

~~~
wmf
Or are they planning to keep iTMS on Java 6 forever?

------
apike
People who follow Apple's developer communication have seen this coming for
years. It'll be interesting to see if Oracle steps up to fill the gap or not.

~~~
lapusta
There is already a port of OpenJDK:
<http://landonf.bikemonkey.org/static/soylatte/>

Though it's not developed by Oracle employees afaik.

~~~
astrange
SoyLatte is nothing more than a build of the OpenJDK BSD Port. You can build
that yourself.

~~~
landonfuller
Not entirely the case. Soylatte is what became the OpenJDK BSD Mac Port. It
was granted re-licensing and was merged upstream to OpenJDK.

What this means:

\- The Java 6 Java Research License (JRL) binaries are based on Sun's Java 6
JRL releases, which mean they closely mirror the shipping official Java 6.
They are also out-of-date and no longer supported. You can only build them
using the JRL sources available from Soylatte, and redistribution of code and
binaries is limited by the JRL.

\- The OpenJDK 6/7 binaries are built from the OpenJDK repository, which is
where all the Soylatte and BSD patchset changes were merged. All current
development occurs as part of the OpenJDK BSD-Port project, and the code and
binaries are fully redistributable.

~~~
astrange
Well, I should have said "at this point". Surely building bsd-port is more
interesting than building your own Java 6.

------
fauigerzigerk
This could be good news for anyone who uses a Mac to work with Java. There
could finally be a JDK for OS X that doesn't lag years behind official Java
releases.

On the other hand, the margin between Apple not supporting something and Apple
banning something is incredibly narrow. Steve Jobs doesn't seem to understand
the difference between choice and fragmentation very well.

~~~
JeremyBanks
Banning? I think that seems rather unlikely. To my knowledge Apple's never
done anything of the sort on the desktop. On mobile platforms users are more
accustomed to having restrictions in place, but if they banned Java on Mac OS
the backlash would be immense.

~~~
fauigerzigerk
An outright ban does indeed seem remote, but if they start to tie software
installation/update/maintainance on the Mac to the Mac AppStore and ban Java
apps from the AppStore, the effect on end users' ability to use Java
applications is tantamount to a ban.

~~~
JeremyBanks
I hadn't thought of this in light of the App Store announcement, but
apparently it's essential to do so.

From the review guidelines:

\- Apps that use deprecated or optionally installed technologies (e.g., Java,
Rosetta) will be rejected

That's interesting.

~~~
stcredzero
I wonder if Apple is planning a "superior platform" strategy? If they can move
to an App Store being the norm for Mac users and solve lots of deeply
ingrained security and compatibility problems in the process,
Microsoft/Windows is going to have quite a hard time following. The record for
Apple accomplishing big architectural shifts with minimal pain (OS X, PowerPC
-> x86) is much better than for Microsoft. (Vista) It would be like a lightly-
armed force luring heavily equipped force into boggy ground, where the latter
gets stuck in the mud while the former only gets slowed down.

~~~
jrockway
Of course, Debian has done this since the early nineties, and yeah, it is nice
to have guidelines (DFSG, etc.) that applications must follow to be a part of
the platform. Having one entity responsible for system integration makes for a
well-integrated system.

I doubt what Apple comes up with will be as good as Debian, but at least it
gives "the masses" the chance to use a well-integrated platform.

~~~
stcredzero
I'm thinking about going beyond what even Debian accomplished. As awesome as
Debian is, it's based on unix-derived architecture from the 1970's. What about
a successor to OS X with capabilities, orthogonal persistence, and no bootup?
(App Store requirements and APIs could target easy migration to the new
architecture.) Microsoft would have to follow or be left in the dust, but it
would be travelling a path Apple is better suited for.

~~~
jrockway
_it's based on unix-derived architecture from the 1970s_

Isn't this like saying that we shouldn't use wheeled vehicles anymore, because
wheels are a stone-age technology?

It's fun to reinvent the wheel, but the wheel has been around for a long time
for a reason.

~~~
aidenn0
I think of Unix as more of a local-maxima than a fundamental item like the
wheel. It's more like the internal combustion engine: there's been lots of
technologies proposed that fix problems with it, but it's managed to improve
faster than those technologies can gain traction.

~~~
stcredzero
_I think of Unix as more of a local-maxima than a fundamental item_

Recognizing the difference between fundamentals and local-maxima constitutes
some of the most powerful entrepreneurship!

------
jimfl
Combine this news with the announcement of the App Store for OS X, and one
possible conclusion is that Apple doesn't want Java-based apps in the app
store. It's an easier prohibition to make if the JVM is not officially
supported by Apple.

Also, this could be a guard move against Oracle, a capricious litigator.

~~~
ZeroGravitas
_2.24 "Apps that use deprecated or optionally installed technologies (e.g.,
Java, Rosetta) will be rejected"_

It doesn't explicitly e.g. it, but Flash isn't installed by default either on
the new MacBook Airs, so I'm guessing you can't do a wrapper around a SWF
either.

~~~
benologist
Flash has had "publish to exe" capabilities since forever so I'm sure
something'll emerge that publishes to w/e Macs use.

~~~
callahad
The Mac App Store also requires that you use XCode to package your apps.

~~~
diskrete
One thing this enables is switching platforms. If a future MacBook Air runs on
ARM instead of Intel, anyone using Xcode would only need to recompile to
target the new platform. Similar to how Intel support was easy for Xcode
developers (but very hard for Metrowerks developers). Getting everyone on
Xcode gives Apple tremendous flexibility. They could even have apps target
LLVM-IL (whatever it’s called) instead of the CPU directly.

------
fdb
So then what's the best way to do cross-platform development?

For all its faults, Java does deliver something that resembles the "write
once, run anywhere" dream.

Any idea for a high-performance, cross-platform, native UI development stack?
Is C++/Objective-C still the best option?

~~~
voidpointer
Depending on what you want to do, Adobe AIR would be a practical way of
delivering applications on Mac, Win and Linux...

~~~
rryyan
It's worth mentioning that AIR apps do not use native UI widgets. (and in my
opinion: the Flex widgets kind of suck)

------
phishphood
I am numb with anger right now. I sell java based consumer app and good 50% of
my sales are from macos. To be honest java prohibition in the appstore wasn't
surprising, I had to sign new dev agreement in august that explicitly
prohibited java based apps, but they let my app in anyway.

What I find so utterly surprising is that they are completely killing it on
the os level.

html5 here I come.

------
msy
I wonder if putting the boot into the most straightforward cross-platform
solution for desktop apps has anything to do with the proliferation of OSX
Java apps with shoddy/un-maclike UX/UI or whether it's something to do with
Oracle's recent moves.

~~~
thought_alarm
I think it just means that Apple has no interest in bringing Java 7 to OS X.
It certainly took them a long time to release Java 6.

Funny thing is, one of my favorite Mac apps was/is written in Java: Cyberduck
FTP client.

Cyberduck is an open source app originally written using the Java/Cocoa
bridge, then using some hybrid of Cocoa and Java. But the thing is, the end
user has absolutely _no idea_ that it's a Java application. The only reason I
know it's written in Java is because I looked at their source code to see how
they implemented Quick Look (before it was a public API), and boom, the damn
thing's in Java! As a longtime hater of Java desktop apps, I was
flabbergasted.

As far as I'm concerned, OS X was the only desktop platform where Java had any
sort of chance for user acceptance, but it never caught on with developers. As
such, Java has been effectively dead as an option for desktop development
since OS X Leopard.

~~~
meelash
Really, that's very surprising. I'm a longtime Cyberduck user and had no
idea...

~~~
micheljansen
I am both surprised and delighted.

------
tophercyll
The biggest loss here is the Mac specific GUI bits. Not only does Apple Java
use native drawing primitives for ui (instead of requiring X11 like some
ports), it also doesn't look completely horrible.

Unlikely as it is, I wish Apple would upstream that code to Oracle.

I guess there's potentially still SWT on top of a ported, open source Java7
from Unix/Linux if you need to do non-X11 UI on Mac.

Well, some Googling suggests that might work anyway...

------
alexyoung
Maybe the fact WebObjects was removed from Snow Leopard Server means they
don't depend on it internally as much?

It seems like they've been cooling off on Java development and support over
the last few years.

~~~
cosmicray
I believe that the current WebObjects license (while no longer having a
licensing fee) stipulates that it should be run on Apple hardware. Some wags
have speculated that it would be OK to run it on an Mac Pro even with Windows
7.

I don't believe this is an immediate issue, but one that people doing long
term planning should consider. If you want to write/run Java code, have at it.
If you want to write something that will be widely distributed, you may want
to think carefully.

~~~
slantyyz
It used to be cross platform. Back in the dotcom days, I was at a company that
would sell implementations of it for Windows and Sun servers.

That was when the software price started at 50k (iirc) though. When you're
charging that kind of coin, I guess the motivation to support Windows is
higher.

~~~
uriel
Java has _never_ been cross platform. Back in the dot.bomb days running java
on anything other than Windows and Solaris was a huge pain in the ass when not
outright impossible, and there was Sun's infamous internal memo about how much
Java on Solaris sucked!

~~~
blasdel
I found the memo from 2003:
[http://web.archive.org/web/20030210024427/http://www.interna...](http://web.archive.org/web/20030210024427/http://www.internalmemos.com/memos/memodetails.php?memo_id=1321)
\-- this blog thread discussing it is enlightening:
<http://www.advogato.org/article/624.html>

------
shepting
The reason that this is a big deal is that they've released/leaked some of the
guidelines for the Mac App Store and it states that apps developed using
"deprecated or optionally-installed technologies will not be accepted."

------
xentronium
Does this effectively mean that I will not be able to use java application on
newer OS X at all (in case of java runtime support removal), or I will have to
install some third party java package?

~~~
protomyth
It seems like you will do what you do on Windows and some Linux distributions,
you will go to Oracle's site and download the JDK / JRE from them. I am really
wondering if this is totally and Apple thing or partially a suggestion from
Oracle.

------
nikster
CALM DOWN EVERYONE

Here's what Steve Jobs said in an email to a Java developer: "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."

To me, the sheer number of people using Java on the Mac in one way or another
guarantee that it's not going anywhere. Apple isn't going to develop it
anymore, but that may be a good thing. We'll see.

If Java apps can't be in the app store it would be a bummer. I don't see where
it says that though - the app store rules say that you can't depend on
deprecated tech. But it doesn't prevent you from shipping your Java based app
complete with a Java VM - like you'd do on Windows.

------
jason_slack
Jobs did say at D8 that Apple chooses technologies that are in their Springs
and not their Falls. Java has had far to many Falls....

Seriously, Apple does not need Java and I think the market for Java apps has
become few and far....

------
ponce
Now deprecate your own OpenGL drivers.

~~~
mambodog
Then who would maintain them? The hardware manufacturers? :\

~~~
ponce
Windows and Linux drivers are maintained by the manufacturers.

------
rodh257
I didn't realize Apple did this (not a Mac user personally). Didn't Microsoft
get sued for providing their own Java runtime years ago? What is the
difference here? (just out of interest) Obviously Sun/Oracle have been fine
with it, so is it different to what Microsoft did?

~~~
prodigal_erik
What Microsoft shipped was not a conforming JVM. It couldn't interoperate with
servers using the native Java RPC protocol (RMI), it couldn't use the same
native code (JNI) libraries that any JVM would, and it couldn't verify signed
packages (JAR). It also added nonstandard methods to standard classes, and any
code which called them without reflection wouldn't even load on a JVM.

------
mikecaron
This whole thing happened when Java 1.6 came out. It took Apple forever to get
it into OS X and there was a big fight for it. Now it's happening again. Must
be a pain for Apple to manage it.

------
shimonamit
Sounds significant, but how important is Apple/MacOS to Java?

~~~
pyre
Not _really_ as significant as one might think. This is just Apple saying,
"we're discontinuing our own, internally developed and maintained JRE/JDK." I
don't know off-hand how far this diverges from Sun/Oracle Java or IBM Java
though (maybe someone else can step up with that information).

I didn't see anything saying that they would never distribute _any_ JRE on Mac
OS X though. They may just find someone else's JRE to distribute.

~~~
zmmmmm
If they help to maintain and distribute an alternative JRE (which could only
really be OpenJDK, one would think) then it's good news for Java developers.
On the other hand, if they don't distribute any and don't help to maintain it
then it's a disaster. If the latter turns out to be true then I'd be pretty
concerned if I was a Java developer (or if I used any of the JVM based
languages).

------
mcritz
Aren’t the CEOs of Apple & Oracle bestest friends in the whole world? Will it
be long before Oracle/Sun picks up the slack on this?

------
frankus
It's probably just wishful thinking, but here's hoping they're working on
bringing some kind of newer managed environment to OS X.

------
shimonamit
Speculative, but could this be an early preventative measure to keep JRuby
from challenging their up and coming MacRuby platform?

~~~
masklinn
"Their" up and coming MacRuby platform? Is that a joke?

~~~
shimonamit
Might I say, "the up and coming MacRuby platform Apple has designs for"? At
least a couple of the committers are Apple employees. But I misattributed the
project as being "theirs", which apparently isn't true.

~~~
chc
Eh, it's Apple's in any meaningful way. The project is led by Apple's Laurent
Sansonetti, hosted by Apple's Mac OS Forge, and Sansonetti has said that
MacRuby is intended to replace RubyCocoa, which is currently bundled with Mac
OS X. MacRuby also recently started making improvements to Apple's
BridgeSupport framework. I don't know how much more an open-source project
like MacRuby could do to deserve to be called "Apple's."

~~~
sigzero
From the contact page:

MacRuby is a free software project by Apple Inc. Many folks inside and outside
of Apple contribute to this great project and we have a MacRuby Project Team
page to list them. Please feel free to contact us if you have any questions,
ideas or bugs to report.

------
derefr
Does this mean that if you want to distribute a Java app bundle, you must
package the JRE into it as a framework?

~~~
thought_alarm
No, it means that Apple is not bringing Java 7 to OS X.

It doesn't prevent someone else from bringing Java 7 to OS X, nor does it mean
that the existing support for Java 6 is going anywhere.

~~~
cosmicray
It also means that Apple has to apply fewer engineering resources to
supporting Java.

OS X and iOS, full steam ahead !

~~~
jon914
For lengths of time, they only had one engineer on it by the name of Mike
Swingler.

I can't speak for that today, but my source for this info was the Java Swing
team themselves since they talked all the time with the Java "team" at Apple.

------
nickpp
Wait, I thought Oracle (Java's current owner) is Apple's friend, because of
the lawsuit against Google's Android.

Head spinning.

~~~
tuxychandru
I doubt Oracle suing Google was an effort to favor Apple. It was more to save
their own Java platform in general and Java ME in particular.

~~~
bad_user
Oh, please, it was more to earn some money out of the Sun acquisition.

Like they give a shit about the Java brand.

------
code_duck
So, Apple pretty much is out to eliminate anything that isn't Apple.

------
steipete
the only pity may be eclipse.

------
epynonymous
fuck oracle :)

~~~
jrusoff
Does anyone else use Oxygen on the mac. I've never found anything that comes
close when working with XML. But judging from the clunky UI, I have to
conclude it's written in Java. I wonder what they will ship in future, maybe
the app with a JVM installer? JR

