Hacker News new | past | comments | ask | show | jobs | submit login
Oracle and Apple Announce OpenJDK Project for Mac OS X (apple.com)
200 points by cstuder on Nov 12, 2010 | hide | past | favorite | 98 comments



Almost as important is the announcement that the current Apple JDK, 1.6, will still ship in Lion. Given the release cycle of Java 7, that's a big relief to Java users and given the HN crowd, budding Android developers. Moreover, it seems to quash the (ridiculous) rumours that OS X Lion will end up being some locked down antithesis of previous versions of OS X.


  > that's a big relief to Java users and given the 
    HN crowd, budding Android developers
And don't forget the Clojure, Scala, JRuby, Groovy, Jython, Mirah et al users ;)


This is off-topic, but I'm amazed by the descriptions at the end of TFA (I know, I know, it's a press release, but still...)

Oracle is the world’s most complete, open and integrated business software and hardware systems company. (...)

Let's grant integrated and complete, but definitely not "open". Though this is dwarfed by Apple's incredible self-praise:

Apple designs Macs, the best personal computers in the world, along with OS X, iLife, iWork, and professional software. Apple leads the digital music revolution with its iPods and iTunes online store. Apple is reinventing the mobile phone with its revolutionary iPhone and App Store, and has recently introduced its magical iPad which is defining the future of mobile media and computing devices.

Woah there cowboy! A bit of humility maybe?


A bit of humility maybe?

Why? If you think your product is the best, say so. If you think your product is revolutionary, say so. If you think your product is magical, say so. If you think your product is defining the future, say so.

The only reason I can see to criticize a PR footer like that is if you think the company doesn't actually think of itself that way and is just trying to bullshit the reader.


As a side note, I wouldn't call Apple products "magical", maybe to the extent that they make people's money disappear. But that can be explained, somehow, without magic too.

I think the focus of his reply should have been on Jobs' giant ego, which is undeniable.


I really don't understand why so many “techy” people freak out as soon as Apple dares to use the word “magical”. That's certainly much better than calling everything “innovative” and it is self explanatory if you don't play stupid.

Apple deserves to be lauded for not using overly boring adjectives once in their boilerplate blurb.


> Apple deserves to be lauded for not using overly boring adjectives once in their boilerplate blurb.

Plaudits for using hyperbole? Oh laud, gag me with a spoon, please.


If a company wants to dazzle me with bombastic statements they can at least try to not be boring.

(I’m also not sure whether it’s hyperbole. I would guess that many people working at Apple actually believe the boilerplate. That might make them deluded but not hyperbolic.)


I dunno man, I play with my iPad quite a bit and it really does seem just about sufficiently advanced.


Tablet PCs have been around for ages, removing the keyboard and slapping IOS on a thin, well made one may be finally doing it right but I'd hardly call it 'magical'.


To paraphrase Arthur C.Clarke, any sufficiently advanced technology is indistinguishable from magic. Since most users _don't_ understand the technology they use, it is "magical" to them.

The real question: is it good magic or evil magic?

From a normal person's point of view, what Apple does is, usually, good magic.


I don't need to understand things to know that they aren't magical. And I think that goes for the average person as well.

Your quote doesn't fit the context.


all it really proves is that the average apple consumer isn't as smart as the average apple engineer.


Well, considering that whenever someone posts on a technical forum (such as HN) asking what laptop to get to run Linux, they receive a lot of recommendations that they get Macs, I don't think "best personal computers in the world" is too far out of line for Apple to claim.

iPods completely dominate portable music playback, and the iTunes store is one of the biggest sellers of music in the world (didn't they take #1 a while back?). That would justify "leads the digital music revolution".

Take a look at Android's UI design before the iPhone came out, and compare to after iPhone. Look familiar? Take a similar look at mobile app sales before and after iPhone. "Revolutionary" is an acceptable claim, considering how much the mobile phone industry changed in direct response to the iPhone.

That leaves the iPad, the only one on the list they may have overhyped in the press release. Sure, it blows away every other attempt at a tablet so far, but most of the other table makers trying to capitalize on the iPad's success seem to be aiming for smaller tablets, so we can't yet say the iPad is "defining the future".


apple laptops ≠ linux machines. in fact, most of the new macbooks are quite hard to get running on something modern like ubuntu 10.4 LTS, and just because OSX is a derivative of BSD doesn't make it friendly with current linux versions. especially those macbooks with "automatic graphics switching" and the like. sure you can boot, but all the [proprietary] advanced [closed] features that apple adds don't really function at all.

linux is great on a 2 year old macbook, however.


I think the reason that people suggest Mac over Linux for laptops is that 1. Apple makes really good laptops. They're solid, they're lightweight, they're not creaky and they don't feel cheap; 2. You can do anything on OS X that you can on Linux (e.g. running bash, RoR, Python scripting, most open-source software).

This is a big part of the reason geeks are moving in large volumes to the Mac: you can have your laptop, you can compile and run Apache or PHP, install gems, test Rails, and it's all just as effortless as in Linux (or, depending on the Linux distro, even more so).

What you don't have to do is re-configure X or your nvidia drivers when a 'yum update' does a kernel upgrade, and you suddenly find yourself without X for ten minutes while you find and run the nvidia kernel module builder/installer (a problem everyone in my office had every few weeks at one company).

A lot of stuff just works effortlessly, and while this is getting better in Linux, there's still a lot of 'gotchas' that crop up out of nowhere because some company or some developer just doesn't care.

It's not a question of 'You want Linux, buy a Mac and run Linux on it', it's a question of asking why the user wants Linux. If it's so that all your software, top-to-bottom (excluding the BIOS) is open-source, then get a Lenovo, but if what you want is a better Rails dev environment than Windows, a Mac will do that for you and be less effort in the long run.

This is the reason I'm on a Mac, and it's the reason a lot of other open-source or web app developers run Macs as well, and I think it's the secret sauce that's made a big difference in Apple's sales numbers - geeks buy, then geeks recommend.


I'm no fanboy, believe me. But most of that is pretty accurate.


I'm no a meta-fanboy, believe me. But a real fanboy would have written that comment too.


Meta-fanboy = a fan of "meta"? Meta-fanboy = a fan of fanboys?

Meta-feta fanboy = those who admire the processing of Mediterranean cheese.


The iPad is magical?


People using them with their autistic or otherwise-disabled kids seem to think the iPad is as close to magical as you're likely to find in the real world.


Yes, for at least one definition of magical: beautiful or delightful in such a way as to seem removed from everyday life.


A lot of people do have that reaction to it, yes.


To the same degree that the other statements are accurate.


Indeed. And seemingly animate as well, since it "is defining the future of mobile media and computing devices." Would've thought that was the folks making and using them, but hey, I'm not the one wearing the turtlenecks.

(And yes, I own an iPad. But probably not the one that is going around defining things. Other than words. With a dictionary app.)


It's an absolutely acceptable use of the verb "define." There's nothing about it that requires an animate subject.


Too meaningless to be false is hardly the same as "pretty accurate".


Just goes to show how meaningless "open" has become.


"Open" as in "Open for business."


and 'Open to taking your money'


You're using the wrong definition. "Open" in this context is the same as OpenVMS, Openstep, OpenLook, Openview, yadda yadda. Open standard, not open source.


Which only demonstrates that "openness-abuse" has been with us for many years...


Expecting humility from human beings is understandable. But why do you expect a company to be humble? Can you name companies that you think are humble?


I like the backhand sleight towards Microsoft as well:

the project now has the backing of three of the biggest names in software

Hmm, who could they be?


Woah there cowboy! A bit of humility maybe?

I think if they added "humility" to that list, it would've crossed a line.


This bit is hilarious:

The best way for our users to always have the most up to date and secure version of Java will be to get it directly from Oracle.

Contrast that with a recent quote from Bill Evans:

We're happy to continue to support Flash on the Mac, and the best way for users to always have the most up to date and secure version is to download it directly from Adobe.

It's like they're just toying with the tech press.


I don't see any contrast. How is the fact that Apple takes a consistent stance toward third-party platforms "toying with the tech press"?


Or look at something like Chrome or Microsoft who says, all these application crashes point directly back to this product, we're going to write shims and provide auto-updaters, to get this problem under control.


So... Is this good or bad?

I know Oracle is giving its back (not to say finger) to the Apache Foundation, but OpenJDK is a GPL-licensed version of the Java stack. Why is it bad (as in why so many complain) that Apple, Oracle and IBM cluster around OpenJDK? Why is the GPL not good enough?


It's not "clean", only JRE that have passed the TCK (Java Compatibility Kit) get the patent waiver, if you modify the JRE and don't get it re-certified then you lose the patent protection. And to get it certified you have to agree to a restrictive licence from Oracle. Sun promised Apache to make the TCK available under an open licence but this never happened.

IBM was previously putting pressure on Sun/Oracle to make the TCK available under the open licence to Apache that they had promised, since IBM have switched to OpenJDK, it removes that pressure and makes Java much more closed.


> only JRE that have passed the TCK (Java Compatibility Kit) get the patent waiver,

No. That's not true. As long as your code is derived from OpenJDK (and unavoidably licensed under GPL), you are protected from patent lawsuits from Oracle (for technology contributed to OpenJDK). What it doesn't protect you from is trademark issues if you claim whatever thing you have is Java. You can say "pretty much compatible with that famous VM invented by Sun(TM)" and you are clear.

> And to get it certified you have to agree to a restrictive licence from Oracle

Again, the GPL states you can use OpenJDK for whatever you want. If you decide to run a nuclear reactor with it, you are free to do so (as only the Oracle JDK is licensed under such restrictive terms)

> Sun promised Apache to make the TCK available under an open licence but this never happened.

I understand this is the core of the problem. What is not clear is how this adversely affects users.

> since IBM have switched to OpenJDK, it removes that pressure and makes Java much more closed.

We still have OpenJDK licensed under GPL. How's that closed?


It's ambiguous. Oracle's not the only company with patents in Java technology, the TCK patent protection clause is stronger than that in the GPL, in that it give you protection against non-Oracle patents that are part of Java. It's arguable that Oracle implicitly licences these as part of the GPL patent clause, but it's not watertight.

Third-party implementations such as Harmony (and presumably GNU Classpath) obviously don't have patent protection because they neither derive from OpenJDK nor have a TCK licence. Java isn't open until anyone can freely implement it.


> It's arguable that Oracle implicitly licences these as part of the GPL patent clause, but it's not watertight.

It's Oracle's obligation to either give a royalty-free permission to use and grant usage of its patented technology (all of it, not only stuff expressed in code it contributed) or refrain from distributing OpenJDK under GPL altogether.

http://en.swpat.org/wiki/GPLv2_and_patents

Unless I misread the text there.


Oracle isn't the only company with patents in the JRE though, when a third party contributes patented technology to the JRE they have to agree to the patent waiver for all TCK passing implementations.

Dependent on the language of these waivers, Oracle may or may not be considered to be "controlling" the patents. If they're not controlling the patents then it means they can't give the GPL waiver on behalf of the other contributors, and thus any non-TCK compliant OpenJDK fork may be in violation.

Speaking more generally GPL v2 was never really designed to handle patents, the patent clauses are pretty much secondary to the rest of the GPL, and probably are much more vulnerable to attack via loopholes than the rest of the GPL due to their vague and implicit nature.


The GPL states that if you fail to grant downstream users rights to use and redistribute the code (which includes any patented code contributed by the patent holder to the product from any party that did it, not only Oracle) you cannot distribute your code under the GPL.

If Oracle included patented technology it did not control, then it must stop distribution of infringing code under the GPL. That's one of the reasons it took so long for Sun to license its code under GPL - it was cleaning up code, removing patent-infringing code.

The terms of the TCK will not protect you from lawsuits for infringing on patents Oracle had not the right to grant you usage. In fact, no agreement with Oracle would.


> Java isn't open until anyone can freely implement it.

This is the nub of the matter.


>"What it doesn't protect you from is trademark issues if you claim whatever thing you have is Java."

There's more to it than that. If I call it Dalvik, like Google did, why would I get a lawsuit?

Edit: I have to say I don't think I even understand what open source means anymore. If I release an open source product, but then say you can only make modifications and sell it if you pass my tests (which I don't make freely available), it's not really open right?


> If I release an open source product, but then say you can only make modifications and sell it if you pass my tests (which I don't make freely available), it's not really open right?

I believe your restriction on making derived works conflicts with just about every free and open-source license out there. What Sun did and Oracle does prohibit you from doing is calling something that doesn't pass the non-freely-available TCK by the name Java or implying it's Java-compatible.

As for Dalvik, it's not derived from a project Oracle contributed the said patents. In this way, Dalvik is not protected agains Oracle's lawyers.


I think reversing a linked-list using recursion is a walk in the park compared to trying to understand patent/trademark law for software.


I believe the reason is that it was not derived from anything, such as OpenJDK, that had existing licensing protection.


You would not get a trademark lawsuit. Patents have different rules.


> As long as your code is derived from OpenJDK (and unavoidably licensed under GPL), you are protected from patent lawsuits from Oracle (for technology contributed to OpenJDK).

I don't think that is correct. OpenJDK is under GPLv2, so there is no explicit patent license. However, it seems pretty well accepted (among lawyers) that there is an implicit patent grant. That implicit license would certainly cover the unmodified OpenJDK, but how much you can modify it and still be covered is uncertain.


>We still have OpenJDK licensed under GPL. How's that closed?

See the Oracle vs. Google suit for how it is closed. There is one blessed open implementation, other implementations get the shaft aka Apache harmony, Google's Dalvik.


I don't think this has anything to do with that dispute (at least on Apple side). Rather, Apple wanted to lose the responsibility of bundling Java with Mac, but they couldn't abandon Java altogether.


Blog post from Oracle's Henrik Ståhl, responsible for product strategy in the Java Platform Group, with a little more detail and comments.

http://blogs.oracle.com/henrik/2010/11/oracle_and_apple_anno...


I'm itching to take a look at Apple's "foundation for a new graphical client"


"To set expectations, the first drop will be effectively a "SoyLatte"-level implementation, but is packaged as a Universal Mac OS X .jdk bundle that can be dropped directly into /Library/Java/JavaVirtualMachines. Over the coming weeks and months, we will be adding pieces and parts of our Java SE 6 implementation to the public project, and will cut over from using an X11-based AWT to a Cocoa NSEvent-based one with a new OpenGL-backed graphics layer.

There are several parts of our Java SE 6 implementation (like the AWT widgets) that are not contributable, in much the same way that several parts of Oracle's implementation are not. However, the vast majority of our Swing Aqua Look and Feel implementation is, as well as the eAWT/eIO API. We intend to host the legacy AWT widget set using lightweight peers, but that work is still in progress."

Mike Swingler (Apple Java Engineer) on the java-dev list

http://lists.apple.com/archives/Java-dev/2010/Nov/msg00104.h...


I wonder why they don't just release their existing AWT/Swing adaptations?

Either they are afraid of people using the Mac OS style on Windows, or that by open sourcing the style, they loose their copyright to it, or the code is such as mess that they'd rather not release it into the open.


How many years-old projects with deep hooks into a proprietary OS, written with no intention of ever being open sourced, would or could be opened on any reasonable timeframe? Any precedents spring to mind?


WebObjects...? And still not open. But perhaps not the precedent you were looking for...


I don't think WebObjects has a lot of internal system hooks, does it?


The old backend was written with quartz, and hopelessly integrated into the OSX internals. It's part of the reason why Apple had to ship their own java.

The new backend will only depend on OpenGL, which is much better for anyone who isn't looking to lock you into their format. Which, oddly enough, appears to be Apple's goal with it's handling of java.


This thread breaks the really admirable hacker news quality of not giving in to snark.


This oughta help stop the FUD.


Does this mean there's some chance you'll be able to use Java for Mac App Store apps?


Java will still be an "optional" install, much like Flash, Silverlight, et. al. Because Apple can't guarantee that it will be pre-loaded on every Mac, any apps listed in the Mac App Store that used Java wouldn't work on "factory" Macs. I'm guessing that's a deal-breaker for Jobs & co.


No they state right in the Mac App Store guidelines that you cannot.


Apple has certainly back-pedaled on App Store guidelines before. Lately they seem to start with the most restrictive set of guidelines to set a precedent and then ease things as they see fit. It's always easier to start strict and then relax over time, than it is to go the other way. Especially when the topic is programming languages/frameworks where over time a large code base can be built up.

Perhaps now that Java will not be considered deprecated from the platform, it will be allowed for us in App Store applications.


I expect it will be allowed only if you ship the JVM and runtime with your app. (And then I suppose Apple might reject you for your app being unreasonably large.)


Hello!? 2005 called and wants it's misconceptions back!

http://weblogs.java.net/blog/stanleyh/archive/2005/05/deploy...

7.5M if you want to strip.


This sounds nice in theory, but can you point me to any examples of Java apps that are actually distributed this way and are less than, say, 20 MB (or some reasonable threshold for the app's complexity)? I know that, just looking at my JVM framework on my hard drive, it's more than 200MB. Is it really a practical option to shrink this footprint 98%?


I think you've just proven my point, that packaging the JRE isn't going to kill the distribution of apps because of download size. Mostly, it's the frugality of the app's coders which will make or break it with regards to this.


The way people describe themselves in press releases is ridiculous:

"Oracle is the world’s most complete, open and integrated business software and hardware systems company. For more information about Oracle, please visit our Web site at www.oracle.com.

Apple designs Macs, the best personal computers in the world, along with OS X, iLife, iWork, and professional software. Apple leads the digital music revolution with its iPods and iTunes online store. Apple is reinventing the mobile phone with its revolutionary iPhone and App Store, and has recently introduced its magical iPad which is defining the future of mobile media and computing devices."


“…the foundation for a new graphical client”

Cocoa??


"we will be adding pieces and parts of our Java SE 6 implementation to the public project, and will cut over from using an X11-based AWT to a Cocoa NSEvent-based one with a new OpenGL-backed graphics layer."

http://lists.apple.com/archives/Java-dev/2010/Nov/msg00104.h...


Probably more importantly not X11.


This is really Oracle's news rather than Apple's.


It's actually a more important announcement for Apple though in light of their stopping development of their own JVM.

This allows them to still be behind it without having to actually do the work.


If you're following the apple-java mailing list, you'll see this isn't the (supposedly) the plan. They're contributing eAWT and eIO to openJDK, plus assisting in writing a new OpenGL based Swing backend and Swing lightweight placeholders for AWT components.

To quote Mike Swingler (Apple java engineering): "Cheers all, we look forward to working with you in public!"

Sounds like the plan is to continue Apple's work as part of a respected open source project. Compared to developing in secret like they have been, what's not to like about that?


It also means one bug repository, instead of two. Bugs can now (or soon) be filed against OpenJDK, and not in Apple's radar bugbase.


Though I'm glad for this desicion, I can't help but wonder: what's in it for oracle? The puny 5% of desktops running mac os?


Money. They're in for the money.

a) Even if it is only 5%, it is almost pure profit for Oracle. Many big companies would like to expand 5% for almost free.

b) The decision maker might run mac. No mac support, no sales. (One of my customers is like that). This is similar to the "American’s with Disabilities Act" which requires accesibility even though less than 5% of the users are disabled.

c) 5% is the average. Many companies aren't average, e.g. universities and research based companies.


Your point (c) is the most important, in my opinion. I work in computing theory research at a major UK university, and well over 50% of the desktops I see used are Macs, and about 80% of the laptops. Many of our undergraduates also use Macs. A working Java implementation is quite important for this area - both for Apple, to ensure we keep buying them and Oracle, to stop people just saying "Well, we don't use that much Java anymore, let's just drop it".


You don't think that Apple has a bright future building computers? This deal wouldn't have made sense 5 years ago, but Apple is an important force right now and is poised to be a huge part of the future.

The fact that iPad and iPhone don't run Java right now isn't relevant. They very well might in the next 5 years. Things change fast!


My guess would be that that number is much higher for developers (at least not .NET developers). Just look around at conferences. Heck, just look at this: http://james.gosling.usesthis.com/


It's actually closer to 10% if you look at the most recent numbers and discount machines that are not actually part of the market in any reasonable sense (e.g. nobody's going to be installing your software on their old cash register).


Support contracts?


Ellison gets another checklist on his sales brochure and will now continue to get a christmas card from his buddy Jobs.


I'm glad that they're not throwing everything away. I wonder if this will provide any benefit to the Linux OpenJDK.


My personal hope is that they'll do enough work to make the OpenGL Swing backend actually work. When our web browsers are starting to have credible 3D acceleration on our platforms... it's pretty unacceptable that the Swing OpenGL pipeline is so broken.


If based on Cocoa, with more closed-source hooks, then probably not.


It's to be based on OpenGL. So hopefully!


Awesome, now I can get the new Air without fearing it wont run Scala.


"The enemy of my enemy is my friend." - proverb


"A penny saved is a penny earned." - proverb


"Well, isn't the enemy of your enemy like, your friend? Or whatever? Can't they team up?"

"Not exactly. In this setting, the enemy of your enemy is still a floating, greasy, armored brain."

"Well, what about his enemy? Maybe you could be friends with him."

"No, because that guy is a mechanical horror in an undying battle shell. He sails from world to world in a flying tomb, serving gods who eat hope."

"So, probably not."

"Odds are low."

http://www.penny-arcade.com/comic/2007/03/05/


Not quite - Jobs and Ellison are BFFs


I trust Google with my email more than facebook.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: