Apple Deprecates Their JVM
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')."
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
(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)
Expert in software patents or patent law? Contribute to the ESP wiki!
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...
E pluribus unum
This seems like a similar move to the obsoleting of Flash. Cross platform app development was useful when Apple was struggling to compete. Now Apple doesn't see any particular need for cross platform apps, because the breadth of app types is already covered by native Cocoa apps. They won't exclude Java in the way that they excluded Flash on the iPhone. But there's no need for them to spend development time on bundling it with the OS.
This means that the Apple-produced runtime will not be maintained at the same level, and may be removed from future versions of Mac OS X.
Obvious reason: people aren't using the Apple-produced runtime in Mac Applications?
Applications developed in Objective-C / Cocoa are more specific to the OS X platform, providing Apple a competitive advantage when developers build their apps using Cocoa, instead of something portable like Java.
Not in Apple's best interest for Mac apps to be developed using Java.
Not only can they be run on other platforms, but Java-based apps may not conform to Apple UI design guidelines
No, they simply depreciated the 'Apple' version of Java, meaning it will probably be discontinued in Lion. I suspect that due to the changes in ownership over Java that they will now handle things like everyone else and get their java from Oracle. They aren't 'dropping' Java or anything of the sort. You'll simply go to Oracle to install it rather than getting it out of the box.
I would imagine Oracle asked for this, or Apple simply decided it wasn't worth the hassle of maintaining their own java machine.
They don't need to create an Installer, they need to create an entire port to a new operating system. The low-level threading and memory management, the GUI.. who wants their Java apps to be running under X11 on Mac?
- jon
Ganymede, a GPL'ed metadirectory for UNIX
Really? I mean doesn't that seem a little extreme, shouldn't it still work pretty close to the previous versions of OS X? Seriously just asking,
Not all life is cyber. Extra Income
I don't see much use of Java on the desktop these days (aside from a few specific applications), but I certainly see it used a lot in server environments. I suppose Apple will also apply this to OS X server? So if you want an Apple server you can't run the applications you've been running up to this point? They're going to shrink their already small server share.
Also, Slashdot, I set this account to use the "classic" interface, why are you making me click buttons to see comments now?! I just want to see the page, not have to keep clicking "show more". This comment entry box is terrible too, the "Reply" button is too close to the box itself.
The right to protest the State is more sacred than the State.
And after removing Flash and Java and publishing the "We want the web to be open" public letter Apple still requires Quicktime to watch videos on their own website. Hypocrites.
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...
thing is apple did the first port, not SUN. I don't think that apple will graciously give there JRE code-base to oracle.
Jehovah be praised, Oracle was not selected
By which you mean the JVM? It has nothing to do with "internet standards" ffs.
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.
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.
If we should get rid of technology simply because it is old, let's get rid of C. No, wait, let's not. Because it is a useful and practical technology, and we should base our technical decisions on technical merit not on buzzword compliance and what appeals to Web 2.0 shiny-seekers.
catch (HumourFailureException e) { e.user.send("You, sir, are a humourless idiot."); }
From the Mac App Store guidelines:
2.24
Apps that use deprecated or optionally installed technologies (e.g., Java, Rosetta) will be rejected
This space for rent.
From the Mac App Store guidelines:
2.24
Apps that use deprecated or optionally installed technologies (e.g., Java, Rosetta) will be rejected
Looks like you're right.
This space for rent.
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.
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.
Or they looked at the Android lawsuit and said "Hmm, I don't *think* we're breaking any laws, but why take chances?" Oracle is playing a different game with Java than Sun did and personally I'd want to stay out of it as much as possible. There's lots of reasons they may have done this and with ~8 months notice Oracle has plenty of time to build their own JVM.
I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
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.
Go green: turn off your refrigerator.
I would have to disagree that HTML 5 is a suitable all-around replacement for Java.
Apple isn't going to 'stop supporting Java'.
Actually, if the JVM goes back to being a 3rd party system on OS X, which it seems like it will, this is exactly what they've done.
I don't think they will because I believe that Apple would rather developers use Objective-C over Java for OSX development for the very same reasons they would rather developers use Objective-C over Flash for iOS development.
Avantslash - View Slashdot cleanly on your mobile phone.
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.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
This is not a sign of lockdown ... java support on Macs having been drying up since Apple deprecated the Java-Cocoa bridge years ago. Nevermind it took them two years to release Java 6 which required users to have 64bit intel boxes. So, if you were doing any sort of Java desktop work (yes, this does exist), you were stuck on Java 5. If you were doing any server side work, you'd need to install SoyLatte to use the updated class libraries, nevermind dealing with performance issues from moving from JVM to JVM.
This is a GOOD THING as now Mac's will have a better supported and up-to-date JVM and updates should come quick and fast compared to Apple's sluggish almost apathetic attitude towards releases.
The $64,000 question is whether Oracle will now start offering a Java download for OS X - if so, then the Mac will have the same status as other platforms, where you get your Java VM from Oracle. Since Apple's Java releases have tended to lag quite a way behind Sun in the past that might not be a bad thing (although the downside is that the horrible Java auto-updater might make an appearance).
OTOH, if Jobs is really determined to turn the Mac into an oversized iPad that can only run native software then, yes, there will have to be a bit of an exodous. However - there's no reason to decide right now (its not like Java is going to vanish from Mac tomorrow - and you weren't expecting the next version of Java to appear on Mac anytime soon, anyway).
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
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.
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.
I am TheRaven on Soylent News
this insightfull?
So now Oracle will develop the JVM for Apple.
It is plausible enough that oracle won't, or will take so much time / bungle some stuff so bad that java on mac essentially becomes a no-no long enough to drive everyone to objective-C. Given the fact that java these days is mostly about server-side stuff and (the language anyway) android, i dont see any reason why oracle would hurry with an OS X JVM (they mostly care about their own server stack anyway, and OS X isnt anywhere near significant in server-world)
FYI Google doesn't care for Java, so stop sucking Google's dick.
Google runs TONS of their shit on java, heaps of their server-side apps are completely running in java. If any mega-corp cares about java (aside from oracle themselves), it would be google
People, what a bunch of bastards
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.
I am TheRaven on Soylent News
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
Maybe he is here for all the non-technical political articles.
Go green: turn off your refrigerator.
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.
Magic? No, computers run on magical smoke. I know because I have seen the magical smoke come out of computers before, and after that they do not work.
"But this one goes to 11!"
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.
I am TheRaven on Soylent News
Larry and Steve are good friends. I would bet a lot of money that this is a "strategic" decision, not something in favor of customers directly.
My blog. Good stuff (when I remember to update it). Read it.
I'm sure they would, but is it very likely that people are going to start doing OSX only development? Apple doesn't really have that much marketshare, and as this very incident once again shows, it's dangerous to trust them.
If Mac loses Java, then Mac loses Java programs, not gain native ones. And frankly, Mac can ill afford to lose software.
Forget magic. Any technology distinguishable from divine power is insufficiently advanced.
Couldn't Sun just write their JVM in Java, so that it could run on any platform without porting?
http://cltracker.net -- powerful craigslist multi-city search
You're right that the people that Apple is now pissing off won't be queueing up to port their applications to Objective-C. But it's clear that Apple doesn't want to invest that kind of money in that kind of user experience and then have to support it. They're already well on their way to slough off Carbon completely.
They want to settle on just one framework that they provide and support. (And yes, I said framework, not languages. There are supported bridges to Objective-C for Ruby and Python, and unsupported bridges in many other languages.)
I would conserve my bewilderment until Apple starts making it impossible to do, say, Qt apps.
My hunch tells me that there are more Cocoa applications than Java GUI applications, and even if that isn't strictly the case, that the number of people that are writing Java GUI applications each day are shrinking, and the number of people that are writing Cocoa applications each day are growing. (Yes, excluding iOS.)
Mac as a platform doesn't have a ton of software compared to Windows, but that doesn't mean that this makes even a sizable dent in the installed applications that people use. Name one pervasive Mac Java application besides Eclipse and Vuze.
(That doesn't mean that it's a valid reason to kill a Java runtime. But that sentence was discussing the impact, not the action.)