Forgot your password?
typodupeerror
Java OS X Oracle Apple

Apple Deprecates Their JVM 451

Posted by CmdrTaco
from the zomg-i'm-posting-a-java-story dept.
Mortimer.CA writes "In some recent release notes Apple has deprecated their JVM: 'As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated.' In the past Sun (now Oracle) has always let Apple do this: 'Apple Computer supplies their own version of Java. Use the Software Update feature (available on the Apple menu) to check that you have the most up-to-date version of Java for your Mac.' I wonder how much heads-up Oracle was given for this change, and if the Java team has any code ready to go, or whether they'll have to ramp up porting for Mac OS 10.7 (aka 'Lion')."
This discussion has been archived. No new comments can be posted.

Apple Deprecates Their JVM

Comments Filter:
  • by ciaran_o_riordan (662132) on Thursday October 21, 2010 @08:50AM (#33972270) Homepage

    Oracle's patent moves probably didn't help, but Apple's normally not a company to be afraid of software patents - they have a big enough portfolio of their own.

    http://en.swpat.org/wiki/Java_and_patents [swpat.org]

    (Phone patents are another beast - they're held by companies that Apple often doesn't have as long a history of dealing with and they don't yet have patent non-aggression pacts)

  • by ThrowAwaySociety (1351793) on Thursday October 21, 2010 @09:14AM (#33972488)

    In the past I've heard macs referred to as the ultimate developer's machine, with a full UNIX, all the gnu tools, a nice UI (with X if you need it), and nicely integrated laptop hardware. But Java is still one of the top languages on the planet, so if Apple really stops keeping it up to date that could put a nail in that coffin. Heck, I'm pretty sure the Apple Store has a big pile of Java back there...

    The Linux foundation doesn't develop a Linux JVM.
    Microsoft's JVM was awful and incompatible.

    Both those platforms are still widely used for Java development and deployment, in spite of depending on a third-party JVM.

  • by Anonymous Coward on Thursday October 21, 2010 @09:21AM (#33972558)

    UNIX is a specification, not an implementation. Mac OS X 10.5 onwards on Intel are UNIX 03 certified /pedantic

  • Re:I'm curious... (Score:4, Informative)

    by Thomasje (709120) on Thursday October 21, 2010 @09:21AM (#33972564)
    Sun did not sue Microsoft for making their own JVM; they sued Microsoft for making an incompatible JVM, while using the Java trademark -- in direct and deliberate violation of the Java licensing terms.

    In short, Microsoft feared and sought to impede the development of network effects that cross-platform technology like Netscape Navigator and Java might enjoy and use to challenge Microsoft's monopoly. Another internal Microsoft document indicates that the plan was not simply to blunt Java/browser cross-platform momentum, but to destroy the cross-platform threat entirely, with the "Strategic Objective" described as to "Kill cross-platform Java by grow[ing] the polluted Java market."

    More... [wikipedia.org]

  • by beelsebob (529313) on Thursday October 21, 2010 @09:23AM (#33972582)

    MacOS is actually based on the mach kernel, and not UNIX. /pedantic

    Mac OS X is actually based on the mach kernel, which, along with OS X's userland is a certified implementation of UNIX. /pedantic

  • by recoiledsnake (879048) on Thursday October 21, 2010 @09:25AM (#33972604)

    From the Mac App Store guidelines:

    2.24

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

  • by Anonymous Coward on Thursday October 21, 2010 @09:27AM (#33972626)

    Other media players will probably support HTTP Live Streaming in a couple months. It's not like it's a proprietary format or anything- it's just a continuously updating MPEG-2 file sitting on a server. Quicktime continuously checks that file for updates and downloads just the new parts when they get uploaded. I'd rather they use that than Adobe's proprietary streaming format or Real's proprietary streaming format.

  • by kthreadd (1558445) on Thursday October 21, 2010 @09:27AM (#33972632)
    Java on the Mac have always been maintained by Apple, they licensed it about fifteen years ago from Sun. There has never been a Sun Java for Macs. I don't know how much code is going back to Sun/Oracle but in worst case that may be nothing at all. The main problem is that Java by itself has no support for things like the Mac Aqua UI, that's all additions made by Apple. In the late 90's when the Mac wasn't going well Apple decided to license Java and fix those things since Sun wasn't likely to put much time and effort on it. It's actually really good and well done.
  • Re:Question (Score:2, Informative)

    by LDAPMAN (930041) on Thursday October 21, 2010 @09:28AM (#33972642)
    Apple did it with Suns approval and they didn't make changes that made it incompatible.
  • by characterZer0 (138196) on Thursday October 21, 2010 @09:33AM (#33972672)

    Binaries for the JVM are cross platform. The JVM itself is written for the platform. If you write a Java application and compile it on Windows, the compiled version will run on a JVM on Mac. But the Windows JVM will not run on a Mac.

  • by Anonymous Coward on Thursday October 21, 2010 @09:41AM (#33972748)

    Java applications are supposed to be cross-platform, but the runtime environment has to be written for the host platform. It's not pure Java that's accessing files on the OS filesystem, opening sockets, painting dialog boxes on the screen, etc.

  • Java is crossplatform in the sense that you should be able to run your java app* on any system with a compliant java implementation but someone still has to provide that implementation of java built on whatever interfaces the OS provides.

    Currently on the mac (unlike with windows and linux) apple provides the java implementation based on code licensed from sun (now oracle). If apple stops updating thier java implementation and doesn't either release the code or at least push it upstream to oracle then either java on the mac becomes ever more outdated or someone else redoes the porting.

    * provided the app is pure java and written properly.

  • by Richard_at_work (517087) <richardpriceNO@SPAMgmail.com> on Thursday October 21, 2010 @10:13AM (#33973060)

    The Linux foundation doesn't develop a Linux JVM. Microsoft's JVM was awful and incompatible.

    Both those platforms are still widely used for Java development and deployment, in spite of depending on a third-party JVM.

    I distinctly remember Microsofts JVM being faster and more stable than the alternatives (Suns own port), but had Windows only extensions which meant if you wrote for it your app wasnt portable elsewhere - to say it was awful is a bit of a lie, but you are right on the incompatible side.

  • by Anonymous Coward on Thursday October 21, 2010 @10:24AM (#33973174)

    Why wouldn't a peripheral require a driver? If the physical machine doesn't know about a device, why would a virtual machine hosted on it be aware?

  • by fusiongyro (55524) <faxfreemosquito&yahoo,com> on Thursday October 21, 2010 @10:26AM (#33973194) Homepage

    Right, but Apple does ship versions of Python and Ruby that can access their Cocoa libraries. Apple would rather all developers use Objective-C, but that's just a way of ensuring that developers use Cocoa. Using Cocoa is what they're really after, technically speaking, because their real goal is for all Mac applications to use the same toolkit, look nice and behave like other Mac applications.

    I promise you Apple doesn't care if Swing applications look similar to Mac applications since they won't behave like Mac apps due to not running through Cocoa. I bet Apple would be happy if those apps just never ran on OS X. But they have in the past provided a way of using Cocoa through Java. Apparently the Mac Java developer community had enough of a clue to realize that using Cocoa is a great way to restrict your app to one platform and miss the whole point of using Java in the first place.

    Apple's special JVM was really just a way of trying to sneak Java developers into Cocoa, but it never really worked, so at this point, it's probably in Apple's best interest to just provide a stock JVM so people who really want to use Java can and let Oracle worry about whether or not Swing apps look like Mac apps. In general, Swing app usability is damning enough that Apple can just leave well enough alone and their customers will want Cocoa apps or Swing apps that have been engineered to look and behave a lot like Cocoa apps anyway.

  • by TheRaven64 (641858) on Thursday October 21, 2010 @10:37AM (#33973326) Journal

    NeXT jumped on the Java bandwagon early on, porting their flagship WebObjects framework from Objective-C to Java. When Steve returned to Apple, he planned to make Java a first-class citizen of OS X. The Apple JRE had a number of enhancements over the stock one. For example, it shared classes between JVM instances, a feature that didn't appear in the Sun JRE for a few years. It also included a lot of stuff for native integration - you could make the menu bar sit at the top of the screen from Swing apps, just like a proper Mac App and use the standard Mac keyboard shortcuts, for example.

    They also shipped an Objective-C to Java bridge. You could call the Cocoa APIs directly from Java programs with some low-level automatic translation letting you use Java strings and arrays instead of NSString and NSArray, for example. This was deprecated some time around 10.2 or 10.3 (I can't remember - Wikipedia probably can), largely because no one was using it. New Cocoa APIs were not added to the bridge.

    The idea that Java would be one of the dominant languages for OS X development died five years ago. Apple has only continued to invest money in their JRE to help sell XServes running OS X Server and running WebObjects. I'd imagine this market is now so small that it's no longer worth bothering with.

  • by TheRaven64 (641858) on Thursday October 21, 2010 @10:39AM (#33973364) Journal
    Do you have a point, or are you just spouting buzzwords? GCD is a set of C APIs that lets you schedule work to be run concurrently in thread pools whose size is managed by the kernel. It is completely irrelevant to writing a JVM, which will use its own N:M threading model with the kernel threads being implemented using POSIX threads.
  • by Anonymous Coward on Thursday October 21, 2010 @10:45AM (#33973442)

    Funny story: in order to watch Apple's live stream of the "Back to the Mac" event yesterday, I had use my 1st gen iPod touch. This despite the fact that i have a macbook sitting on the same network. Why? because it required Snow Leopard to stream. Their 2 year old general purpose operating system can't "handle" the stream but their 4 year old mp3 player can? Yeah Apple cares so much about its "real" OS

  • Why wouldn't a peripheral require a driver?

    The driver is already present on the machine and available to native code, yet the Java virtual machine is not aware of it.

  • by VGPowerlord (621254) on Thursday October 21, 2010 @11:17AM (#33973934)

    In many ways, Apple is helping to move old tech out. Java, some will say, is still quite relevant. Apparently Apple does not agree. The push for getting everyone into HTML 5 using Javascript and all of those technologies necessitates getting rid of the old ways.

    You do know that 'Java' is to 'JavaScript' as 'car' is to 'carpet'. Beyond a few shared letters for early buzzword compliance, and things like the Rhino interpreter, there is no real relationship between the two.

    (Quoted a larger section of the GP post to make a point)

    Where did the GP confuse Java and JavaScript? The GP is making the statement that Apple considers Java (desktop apps) "old tech" and that they are pushing HTML5/JavaScript.

    All those sexy HTML5/JavaScript apps have to be written in programming languages and hosted on servers. And plenty of people are building on top of the JVM. Large chunks of both Twitter and Foursquare are written in Scala, a JVM language. Why? Oh, something about how it is good for long-running processes due to something ridiculous like a million engineer-hours going into JVM development.

    Apple makes a server OS, but afaik, the percentage of that market is even more minuscule than their share of the desktop market is. Web Servers are dominated by Linux and Windows (with the percentages of each varying wildly depending on whose stats you're reading), which combined control at least 90% of the market regardless of which survey you believe... and in Netcraft's 2009 survey, the only one where OSX is enumated, it is counted as part of the 3.45% of "Other non-UNIX" OSes.

    What Apple thinks and does is irrelevant to the server market.

  • by VGPowerlord (621254) on Thursday October 21, 2010 @11:22AM (#33974008)

    I'd rather they use that than Adobe's proprietary streaming format or Real's proprietary streaming format.

    I don't know about Real, but Adobe (Flash) uses common video codecs, such as H.264.

  • by Fnkmaster (89084) on Thursday October 21, 2010 @11:48AM (#33974382)

    Slashdot briefly seemed to have forced everybody to the "Dynamic Discussion" mode this morning. I went to my account settings, turned it off, and it still showed up as on. Then a half hour later, I went back to Slashdot and everything seems to be working with the classic interface again.

    Anyway, it seems to have been a glitch in the matrix and all is back to normal now. An interface that only shows score-5 comments and makes you click 100 times to see more comments is just horrible. I hope that's not what "dynamic discussion" mode is. Ugh.

  • by TheRaven64 (641858) on Thursday October 21, 2010 @12:09PM (#33974698) Journal

    The problem with this assumption is that Apple does not seem to have realized that a load of developers especially in the java land use OSX for java server side development

    Irrelevant. Those people can still use the Oracle JDK / JRE on their Macs. Most will probably prefer to, because they will no longer have the delay between Sun releasing a new version of Java and Apple porting their changes.

  • by TheRaven64 (641858) on Thursday October 21, 2010 @12:12PM (#33974764) Journal

    Did you actually read the second link? He's saying it doesn't make sense to implement anything in Java with GCD, although it might potentially make sense for some 1.7 extensions to be designed to use it.

    GCD implements an N:M threading model for C. The JVM implements an N:M threading model for Java, but with different semantics (more preemption points - GCD only has them between blocks, which gives a different throughput-to-latency trade). Implementing one in terms of the other does not make sense. It is marginally possible that the JVM could use some of the pthread_workqueue_* system calls to manage the Java thread to OS thread mapping, but probably not worth the effort.

  • by Anonymous Coward on Thursday October 21, 2010 @01:12PM (#33975704)

    Actually, it's already supported. I watched the Apple presentation yesterday with:

    curl $(for all in $(seq -w 1 9999); do echo http://qthttp.apple.com.edgesuite.net/1010qwoeiuryfg/0640/064$all.ts; done) -o - | mplayer -

    The problem is not that they use the very simple HTTP Live Streaming, that's great. The problem is that their Javascript code refuse to recognize any non-Safari browser for video. Even when they use the HTML5 with H264: Google Chrome supports that (not Chromium), but Apple JS code refuse to give you a tag. Instead, they ask you to install Quicktime (good luck on Linux).

    That's the problem.

  • by sveinungkv (793083) on Thursday October 21, 2010 @02:08PM (#33976854)

    I personally look forward to helping bring Cocoa to OpenJDK and hope I'm not alone.

    The BSD-port [java.net] of OpenJDK already run on OS X. I don't know if they support using Cocoa yet but their mailing list would probably be a nice place to start looking for others that are interested in working on Cocoa support in OpenJDK.

  • by Anonymous Coward on Thursday October 21, 2010 @03:28PM (#33978176)

    Got a download link for "can still use the Oracle JDK / JRE on their Macs?"

I've got a bad feeling about this.

Working...