top | item 1819328

On a New Road : James Gosling on Apple and Java

101 points| muon | 15 years ago |nighthacks.com | reply

82 comments

order
[+] bad_user|15 years ago|reply
They just don't get it ... Java sucks so badly for desktop development, it's not even funny.

     It also didn't help that the early ports that they did were heavily 
     customized - far more than they needed to be.
This also reminds me of what Gosling said about Eclipse ...

     [Talking about Netbeans] To us, Eclipse feels like something very "me 
     too" and derivative, backed up by a really strange marketing campaign
Also on Eclipse's SWT:

     The SWT thing was just...it pissed me off beyond words.
     ...
     It has all the AWT problems: it's way simple, it doesn't port very well.
Also on .NET's support for C++:

     [This] has left open a security hole large enough to drive many, many 
     large trucks through
[+] kls|15 years ago|reply
I would say that, now though Netbeans has surpassed Eclipse. In my personal opinion as of 6.5 and on it has become the best Java IDE available. While SWT was clearly superior at the time Eclipse was originally built, Swing has caught up. I made the switch to Netbeans on the recommendation of someone I respect a great deal, I used it a long time ago because it was the only IDE Blackberry buit is dev tools on and it was one of the most painful development experiences I have had to endure. I was hesitant when 6.5 came out and my friend urged me to give it a second change. I am glad I did now, they really got their act together. I hate that Oracle bought Sun as it seemed in the last few years they where really getting their technical act together. Netbeans became a superior IDE, Glassfish is a great simple to use app server, Their identity server was a great product, Virtual Box was a great desktop virtualization product. They where making strides but they just waited too long to turn the ship.
[+] gaius|15 years ago|reply
It also didn't help that the early ports that they did were heavily customized - far more than they needed to be

I respectfully submit that the man who thought AWT was an acceptable GUI toolkit doesn't have a leg to stand on here.

[+] whatajoke|15 years ago|reply
> I respectfully submit that the man who thought AWT was an acceptable GUI toolkit doesn't have a leg to stand on here.

Where did Gosling say that? I remember reading that AWT was a botched job because they had very little time to ship out a UI toolkit. They replaced it with Swing later.

And if you think Swing also sucks, then try developing swing apps in groovy. Java language sucks even in SWT UIs.

[+] boris|15 years ago|reply
Sun to developers: "With Java you can write once and run anywhere!"

Sun to OS vendors: "Hey, we just promised developers they can run Java on your platforms. Now you go make it happen!"

Apple to Sun: "... you!"

[+] pohl|15 years ago|reply
NeXT to developers: With OpenStep you can write once and run anywhere!

Sun to NeXT: yeah, let's do this!

Sun to developers: "With Java you can write once and run anywhere!"

Sun to Lighthouse Design: Come to daddy!

Sun to NeXT: buh-BYE!

Sun to OS vendors: "Hey, we just promised developers they can run Java on your platforms. Now you go make it happen!"

Apple to NeXT: come to daddy!

NeXT to Apple: Avast ye swabbies - prepare to be boarded, arrrr!

(...time passes...)

Oracle to Sun: Come to daddy!

Apple to Snoracle: "... you!"

[+] fauigerzigerk|15 years ago|reply
The problem is not what Sun said to Apple or what any of them said to Oracle or the other way around. That's not my business. The problem is what Apple said to Java developers at a time when Apple was weak and how needlessly ruthless and brutal Apple turned against Java developers once they were strong.

I'm not naive enough to see this as a moral issue. It's a quite rational and understandable business decision on Apple's part. I just doubt that treating your partners or even ex-partners like that is beneficial in the long run.

[+] funkdobiest|15 years ago|reply
I think he is saying that Oracle caused a lot of headaches for Apple in the past so Apple is returning the favor by trying to force them to support Java on their platform.Who knows how this will play out, but it will be interesting since many Java developers use Macs.
[+] jimwise|15 years ago|reply
Yeah. Another way to look at this is that traditionally Java ports fell into two categories:

a.) The platform was important enough that Sun would lose credibility if there wasn't a good JVM available (Windows, Linux), so Sun (now Oracle) did the port.

b.) The platform was minor enough that the platform would lose credibility if there wasn't a good JVM available (MacOS, AIX, HP-UX), so the platform vendor did the port.

I see this as Apple indicating that with recent growth in market share and cachet, they've now moved from category b.) to category a.).

[+] slantyyz|15 years ago|reply
I thought Oracle and Apple were on good terms?
[+] BonoboBoner|15 years ago|reply
Until we know what Oracle is gonna do about this, all the talk is useless right now.

The fact that they split the feature-set for JDK7 due to time restrictions (aka plan b for jdk8) does not make me feel confident about them being able to throw out another VM for a different platform so quickly.

[+] davidw|15 years ago|reply
It's "Gosling". Seems to have some sour grapes, but that doesn't make him wrong.
[+] YooLi|15 years ago|reply
It doesn't make him right either.
[+] rev087|15 years ago|reply
Please forgive my ignorance, but wasn't Google sued by Oracle over issues regarding Google's implementation of the Java VM? It just sounds natural that other companies would be less motivated to maintain their implementations...
[+] jbarham|15 years ago|reply
No, Google is being sued because it doesn't implement the JVM. Instead Google created a completely independent VM for Android called Dalvik, and, crucially, a JVM to Dalvik bytecode compiler. Thus Google can leverage all the standard Java programming tools, but at the final stage of deployment they convert it to Dalvik which they claim is "not Java".

Very clever and very sneaky, which is why Oracle/Sun is annoyed.

[+] cmiles74|15 years ago|reply
J. Gosling's point isn't entirely clear to me, either. I came away with the impression that Oracle is a difficult company to deal with. Perhaps he's trying to draw a line between Oracle being difficult and Apple deciding they no longer want to do their own port. I supposes that's possible.

Still, it seems more likely that Apple decided that the cost of maintaining the Java port on OS X simply wasn't worth it. In the same manner that they decided that nobody wanted to use Flash on their smart-phones, they've decided that nobody wants to use Java on their laptops or workstations.

[+] jonhendry|15 years ago|reply
I think they've decided that, at this point, Java is within a few years of being a floppy disk drive in the iMac era.

Okay, that's a little harsh. But apart from Android, Java doesn't seem to have much buzz these days. And Android gets into the whole lawsuit mess.

Also, there seems to be a lot of disruption in the Java space due to the Oracle acquisition. IBM ditching Harmony for OpenJDK, the Oracle/Google lawsuit, etc.

This seems like an opportune time to step away. Since the whole Java ecosystem is stirred up and reconfiguring, it makes sense for Apple to pull back before a new configuration has solidified. While things are fluid, let the Java organizations figure out what they want to do with OS X.

[+] gaiusparx|15 years ago|reply
My guess: 1. the port of Java to Mac OS X Lion is affecting the schedule for a summer 2011 release for Lion. 2. Mac App Store is not accepting desktop Java app.
[+] bad_user|15 years ago|reply
Cutting costs is not the same thing as banishment.

On Flash they took a political stance, i.e. Flash is proprietary, HTML5 / H.264 is the future, long-live Quicktime.

[+] recurser|15 years ago|reply
I haven't used WebObjects for years, but I'm curious how this whole Java kerfuffle is going to affect that. Do people still use it?
[+] cosmicray|15 years ago|reply
In theory, it should have minor (if any) effect.

The existing version of Java 6 will still run (and Apple has said it will have support for the normal cycle, whatever that means).

Potentially other versions could appear.

WebObjects use of java is primarily server side, and as such has less (possibly little) GUI usage.

It may even be possible to run WebObjects on other platforms. That becomes an interesting situation if the license stipulates Apple hardware, but Apple no longer provides the proper runtime environment to use it.

[+] jfb|15 years ago|reply
It's in very heavy use internally at Apple.
[+] matwood|15 years ago|reply
It does sound like from reading Gosling that Apple did this as a way to poke Oracle in the eye. The Mac has potentially become a large enough platform now that it seems Apple thinks they can leverage it against others. There is such a thing as overplaying a hand which I think Apple is dangerously close to doing (i.e. read their new mac app store rules).

What did strike me about the announcement though was how nonchalantly it was made. I have to think this was on purpose given how masterful Apple normally is with their marketing. So that leads to the question of why? Was Apple in talks with Oracle that broke down so they simply called Oracles bluff?

By the way, all of the knee jerk reactions have been very amusing. Reading comments and stories about it yesterday made me think Apple came down and removed Java from every Mac in existence :)

[+] wyclif|15 years ago|reply
Reading comments and stories about it yesterday made me think Apple came down and removed Java from every Mac in existence

Right. Don't those people know that even if you're running Linux, you still have to download and install a JVM?

[+] antareus|15 years ago|reply
The time is certainly ripe for a better language to step in and make cross-platform desktop application development easier. Seems like most anything you use (barring C++) necessitates shipping 20mb of dependencies.

I miss the pay for what you use model.

[+] glhaynes|15 years ago|reply
It seems to me that one of the main benefits of desktop apps is that they are tightly coupled to the platform. Great cross-platform apps are very much the exception.

So my vote goes to web for cross-platform while heavily optimizing everything else (everything client-side, at least) for the one platform it natively runs on. I don't see great user experience coming through a different route.

If you do need native capabilities client-side, hybrid apps that embed a UI built using web technologies are a potential option sometimes, too.

[+] jbarham|15 years ago|reply
Longer term JavaScript + HTML5 will get you most of the way there.
[+] julian37|15 years ago|reply
"[...] Microsoft violated their contract and made Java code written on Windows unable to run on other systems."

More precisely, Microsoft violated their contract when they added classes and methods in the "java" top-level package (namespace) and failed to implemented some mandatory parts of the specification (mandatory as per the contract), such as RMI.

Source: http://www.javaworld.com/javaworld/jw-10-1997/jw-10-lawsuit....

[+] cgos|15 years ago|reply
sad to see that all these years I've been bragging around, and happy to do so, with my macbook doing java dev. Finally I had a nice machine, cute os to work. Sad that some day a big corp will tell me that now it's windows or nothing. Sad to feel like apple is letting us down.
[+] YooLi|15 years ago|reply
There are millions of java devs, probably millions on Macs. Do you really think there will be no more Java available on Macs in the future just because Apple said they won't be working on their own implementation anymore?