<< Previous | Home

Apple joins OpenJDK effort

Three weeks ago Apple shocked the Java community by releasing a Java update on which the main "feature" was that they were deprecating Java on OS X. What this means is that Apple will no longer continue to develop its own Java Virtual Machine for its operating system. This caused many people to react against Apple, and think that Java development on Macs was dead, and even said that they would stop using a Mac. Interestingly enough, I didn't see actual cases of people dropping their MacBooks to the floor, stomping on them and then buying another laptop. And now they won't have to.

Today Oracle and Apple announced that most of the Apple JVM customizations for OS X will be contributed to the OpenJDK project, which is Oracle's main effort for evolving Java. From the press release:

The Java developer community can rest assured that the leading edge Java environment will continue to be available on Mac OS X in the future

They also mention that Java 6 will be available from Apple for the time being, including a release for their upcoming 10.6 release Lion. Java 7 and future Java releases will be available from Oracle. In short, Java will continue to be available on Macs in the near and the far future.

It is interesting that when the "Java is deprecated" news came, many people said that Apple was doing the same thing to Java that they were doing to Flash. But contrary to Flash, where Apple's CEO Steve Jobs publicly denounced it with an open letter, with Java they're still showing commitment in having a compatible JVM for OS X. So, Apple is not the evil company that wants to root out everything that doesn't come from inside their company.

Tags : ,
Categories : Java, Apple

Good news, Apple deprecated Java

Apple released an update to their Java environment on Wednesday, and among the changes the big one is that they have declared Java "deprecated". This has generated lots of buzz from the Java community, many of them saying that Apple is trying to kill Java on the Mac platform, or that OS X 10.7 "Lion" will not come with Java pre-installed, a change after almost 10 years of Apple providing Java runtime environments on every Apple computer sold. But besides the sparse description of the change in their release notes, Apple has said nothing to confirm or deny these allegations. As a Java developer working exclusively on a Mac for almost 3 years now, the news first came as a bit of a shock, but after careful consideration I think this is actually good news, or at least not the really bad news that people are talking about. Here's why.

In the beginning of the OS X era, Apple really cared about having a Java runtime on their operating system. At a time where more than 90% of the desktop computers were Windows machines and most of the desktop application development was done for this OS, having a solid JVM meant that Apple products could run Java-based desktop apps from day one, and it meant that companies would be able to have applications run on either platform as long as they did Java apps. So they licensed the JVM from Sun so that they could write, modify and make sure they had their own virtual machine from day one.

But now, with Apple focusing its effort on consumer devices like the iPhone/iPad, they don't really care about this anymore. Just last Tuesday, Jobs said that Mac revenue only accounts for 33% of their overall profit, and I think this number will decrease further as they keep bringing new devices to market. With less effort going into OS X, they will start trimming on the edges in order to be more competitive with less resources, and Java on the Apple is the first to go, but it probably won't be the last. This really is not surprising at all since Java on the Mac has been falling behind the official releases for quite some time. Java 6 was released almost 2 years behind, for starters, and that should have been a big clue of what happened on Wednesday.

But why is this good news, you ask? First, because as of Wednesday, we finally have an updated JDK that's on par with the official release, including all bug and security fixes, and this will continue to be the case at least until the end of life of Snow Leopard, according to Apple. Second, they haven't actually said that they will remove Java from Lion, they only said they will not release Apple-controlled versions. This means that we will have to rely on Oracle to produce an OS X version along with all the different versions which they're already producing (Windows, Linux, Solaris, etc). With Oracle and IBM already collaborating on improving Java, I don't think this is a big issue, but it's definitely up to Oracle to do this (or maybe not, since the development of Java is based on OpenJDK, an open source effort that means anyone could come and port everything to OS X). What I would really like is for Apple to contribute back their development efforts into OpenJDK.

There's really no reason to panic. Writing Java code on the mac should not be affected by Apple's announcement. If any, having the same JVM release version as other platforms will actually improve it. Writing for the mac also shouldn't be affected, unless you want your apps to be released through their upcoming App Store, since their leaked guidelines mention that it will not support having apps that are written using "deprecated or optionally-installed technologies", but you can still release the apps yourself.

The only gray area right now, as I see it, is the Apple Java Extensions API. This is the API that allows Java applications work closely with OS X, and includes things like event handling, Menu generation and underlying functionality and that make applications like IntelliJ IDEA look more like a native Mac application. As before, I sincerely hope that Apple contributes this back to OpenJDK. Worst case scenario, the Java community would have to reproduce these libraries from scratch. But besides that, Java on the Mac is just business as usual, and that's good news.

Categories : Java, Apple

JavaOne wrap-up

(I had intended to release this earlier, but after 4 full days of conferencing and partying, I just didn't have the energy and the concentration to finish it. But here it goes.)

JavaOne is over. Five days of keynotes, sessions, exhibitions and thousands of people moving between them. This was my first official JavaOne, although I had a discover pass two years ago when I just happened to be in San Francisco when the conference happened, but I only saw the general keynotes that time. Now, thanks to the blogger pass I got from Oracle, I had full-access to all the sessions and keynotes from Oracle OpenWorld, Oracle Develop and JavaOne. Which means that it was just too much for me or anyone to attend everything. I tried to attend the main keynotes and a couple of sessions that interested me. In the end, I got back what I expected, which was to find new things, meet new people and have fun.

So, what was the main theme for JavaOne this year? There was concern from some of the people I talked to regarding whether Oracle will continue its support for Java, and most important, for the Java community, which I think is what has made Java so popular. It seems that Oracle at least is taking Java to its next versions, 7 and 8, with a somewhat clear path. It also seems that they're starting to listen to some feedback from the community, but on the other hand they were very ambiguous on the whole "making Java free" issue. In fact, some sessions that were given by Oracle employees had PR people there just to make sure nothing was said about the matter. So much for improving the confidence of attendees regarding Java. It also seems that they will keep trying to push JavaFX (sans the scripting language) to people, and although the demos were cool, didn't we see the same years ago? Lots of mixed feelings about this. There also seems to be some push back into the mobile arena, in which they were very careful not to mention Android, by the way. But in all, it seems that Oracle will continue to support and promote Java in the foreseeable future.

As a closing note, I really think that Oracle really needs to separate JavaOne into its own conference, and put it back where it belongs, at the Moscone. A big part of these conferences is the ability to network with your peers, but here it was close to impossible since you had to basically run from one building to another for the sessions, and then run or take a bus if you wanted to see Oracle's keynotes at the Moscone (I never made it on time to the keynotes). Oracle tried to give the message that they're committed to Java, but by joining the conference to their main event it almost makes it seem like JavaOne has become an afterthought to them, a second-class citizen from their big corporate event. Sure, you get to give bigger events like the Appreciation Party, but I'd gladly trade that for having Java stand on its own. If they are really committed, they should "put their money where their mouth is" and make sure JavaOne is a standalone event.
Tags : ,
Categories : JavaOne