Tag Archives: oracle

Android: good or bad for Java? Oracle claims harm but I am sceptical

Patent blogger Florian Mueller quotes a statement filed by Oracle in its legal dispute with Google over its use of the Java language in Android:

Android’s growth in the mobile device market has been exponential, steadily diminishing Java’s share. For instance, Amazon’s newly-released Kindle Fire tablet is based on Android, while prior versions of the Kindle were Java-based. Android has been gaining in other areas as well, with Android-based set-top boxes and even televisions appearing this year. These are markets where Java has traditionally been strong but is now losing ground to Android. The longer Android is allowed to continue fragmenting the Java ecosystem, the more serious the harm to Java becomes, and the more difficult it is to try to unwind. Oracle suffers harm in the form of lost licensing opportunities for its existing Java platform products, and the enterprise-wide harm from fragmentation of Java, which reduces the ‘write once, run anywhere’ capability that has historically provided Java such great value.

The Kindle is an interesting example. I had not realised that the pre-Fire Kindle runs Java, but Oracle shows it as a case study and indeed, here are the javadocs.

Android infuriates Oracle because it uses the Java language, but has its own virtual machine called Dalvik. Dalvik bytecode is different from Java bytecode.

I have no expertise on the legal position, but while I can see Oracle’s point it is also true that Android has greatly boosted interest in Java development. Although Google has fragmented Java, the fact that the language is the same benefits Oracle insofar as it increases the pool of Java developers who may also be inclined to create Java applications on the server or in other contexts.

The interesting question to ask is where Java would be without Android. On mobile, it would likely be close to death. Apple’s iOS platform is equally as resistant to Java as to Adobe Flash. RIM Blackberry used to be a Java platform, but is moving away:

While we will continue to support our BlackBerry Java developer community as they build for BlackBerry smartphones, after further investigation we decided against supporting BlackBerry Java on BlackBerry BBX. We concluded that the BlackBerry Java experience on the BlackBerry PlayBook platform would ultimately not satisfy us, our development community, or our customers as the platform continues to evolve.

Microsoft has no interest in Java on the Windows Phone OS or in the Windows 8 OS that will likely replace it on devices.

Oracle’s claim is in the context of a legal dispute, and as Mueller observes, the company is happy to show off growing interest in Java in its press releases – though without mentioning the A word.

Of course you can understand why Oracle might want to enjoy the benefit of Java’s Android boost as well as the reward of a legal victory over Google.

PS: interesting that Oracle’s Java press release seems to be served by Microsoft .NET:

image

Java Standard Edition 7 is done, but feels like an interim release

Oracle has released Java SE 7:

Oracle today announced the availability of Java Platform, Standard Edition 7 (Java SE 7), the first release of the Java platform under Oracle stewardship.

image

What’s in Java SE 7? Despite the full version number increment, I am tempted to call this an interim release. In December 2010 the JCP approved the specification of both Java SE 7 and Java SE 8, with two of the more interesting features, Project Lambda and the Module system (Project Jigsaw), held back for Java SE 8. Java SE 7 does include the InvokeDynamic keyword which improves the performance of dynamic languages such as Ruby and Python running on the JVM, as well as most of the minor language enhancements known as “Project Coin”. There is also a Fork/Join framework to better support concurrent programming.

The good news is that Java SE 8 is set to follow in late 2012, not so long considering Java SE 6 was released in 2006 . You can see the roadmap summarised here. This post is from October 2010, but as far as I am aware it has not changed much since. 2012 is also when we can expect Java Enterprise Edition 7.

It is also worth mentioning JavaFX 2.0, set for release later this year. A handy summary of JavaFX 2.0 is here. Whereas JavaFX 1.0 was rushed out and features a new scripting language that in the end few wanted, JavaFX 2.0 is more promising. Dimitry Jemerov, developer of IntelliJ IDEA at JetBrains, told me earlier this year:

JavaFX is going to turn, when the version 2.0 is released, from a dead end resource sucker project into a set of distinct technologies of great immediate usefulness to many Java developers.

Is there still hope for Java on the client? Java is barred from Apple iOS which is a problem, and is no longer supplied as standard on Mac OS X, but it will still make sense for many business applications. Of course Java is also wildly successful in the context of Google Android, but that uses the Dalvik VM rather than the Java VM so is rather a different thing.

Update: As ever, upgrade critical machines with caution. In particular, Apache Lucene and Apache Solr do not work on Java 7 because of HotSpot optimization bugs.

OpenOffice moving to Apache; next step reunification with LibreOffice

Oracle has announced that it is contributing the OpenOffice.org code, the source for the free productivity suite that competes with Microsoft Office, to the Apache Software Foundation’s Incubator:

Incubation is the first step for a project to be considered among the diverse Open Source initiatives overseen by the ASF. A submitted project and its community will join the more than 50 projects in the Apache Incubator, and will benefit from the Foundation’s widely-emulated meritocratic process, stewardship, outreach, support, community events, and guiding principles that are affectionately known as "The Apache Way".

Everybody love the Apache Foundation so this is good news for the future of the project, though the Document Foundation, formed by renegade OpenOffice.org contributors fed up with Oracle’s stewardship, says the event is neutral from their perspective. The Document Foundation welcomes the ability to reuse code that will now but under the Apache License, but adds:

The Document Foundation would welcome the reuniting of the OpenOffice.org and LibreOffice projects into a single community of equals in the wake of the departure of Oracle. The step Oracle has taken today was no doubt taken in good faith, but does not appear to directly achieve this goal. The Apache community, which we respect enormously, has very different expectations and norms – licensing, membership and more – to the existing OpenOffice.org and LibreOffice projects. We regret the missed opportunity but are committed to working with all active community members to devise the best possible future for LibreOffice and OpenOffice.org.

It seems inevitable that the two projects will be reunited, and it seems that dialogue has already begun:

TDF is therefore willing to start talking with Apache Software Foundation, following the email from ASF President Jim Jagielski, who is anticipating frequent contacts between the Apache Software Foundation and The Document Foundation over the next few months.

A curious story, but one that seems likely to end in a good way. IBM, which is a big supporter of the ODF XML document formats used in OpenOffice, is welcoming the move:

Over the long-term, we plan to work with other Apache contributors to extend the vision of productivity beyond documents. We are learning much more about the semantic web through our additional work on LotusLive Symphony, and the vision in the research and lab teams has to extend productivity into new realms. Meanwhile, the Apache community can be expected to accelerate adoption of ODF as a primary set of document formats, and to drive ODF compatibility in other products and solutions in the future.

says Ed Brill. It is good to read about new approaches to productivity, because this has been a weakness in OpenOffice which is sometimes perceived a a kind of inferior-but-free equivalent to Microsoft Office. In the meantime, Microsoft has worked to make its own suite more distinctive, to defend a territory that accounts for a significant share of its profits. The ribbon user interface is part of that strategy, but more significant is its integration with SharePoint, and the emergence of Office Open XML as a unifying format for editing documents in desktop Office and within the browser using Office Web Apps.

Unifying the open source teams behind OpenOffice and getting it away from Oracle are both important steps towards making the project more compelling.

Oracle says OpenOffice non-strategic, ceases commercial versions. Time to reunite with Libre Office?

The OpenOffice story has taken a curious turn today with Oracle announcing that it intends to cease the commercial versions of this office suite and to move the project a non-commercial organisation.

What the press release does not say is that there is already a non-commercial organisation working on the OpenOffice code. The Document Foundation was formed  in September 2010 against Oracle’s wishes. This online OpenOffice meeting shows some of the tensions:

(21:59:42) louis_to: your role in the Document Foundation and LibreOffice makes your role as a representative in the OOo CC untenable and impossible
(22:00:01) Andreas_UX: I would support that. I think that the more we discuss the more we will harden the fronts
(22:00:17) louis_to: it causes confusion, it is a plain conflict of interest, as TDF split from OOo

In this dialog, louis_to is Louis Suárez-Potts who works at Oracle as OpenOffice.org community manager.

Oracle’s Edward Screven, Chief Corporate Architect, says in the new press release:

We believe the OpenOffice.org project would be best managed by an organization focused on serving that broad constituency on a non-commercial basis. We intend to begin working immediately with community members to further the continued success of Open Office.

Why is Oracle distancing itself from OpenOffice? The implication is that it is non-strategic and not broadly adopted among Oracle customers, because these two factors are given as reasons for continuing with Linux and MySQL:

We will continue to make large investments in open source technologies that are strategic to our customers including Linux and MySQL. Oracle is focused on Linux and MySQL because both of these products have won broad based adoption among commercial and government customers.

The question now: will Oracle try to set up an independent foundation to compete with the Document Foundation? Or will there be a reconciliation, which would seem the only sensible way forward?

Background: OpenOffice was originally a commercial suite called Star Office. It was bought by Sun and made free and open source in an attempt to loosen Microsoft’s hold on business computing. While OpenOffice has been popular, in the business world OpenOffice has had little impact on the success of Windows and Office. That said, it is possible that Microsoft’s development of the Office Ribbon and the huge effort behind Office 2007 was partly driven by a desire to differentiate and improve its product in response to the OpenOffice competition.

Guardian.co.uk enthuses about MongoDB, plans to ditch Oracle

The Guardian’s Mat Wall has spoken here at Qcon London about why it is migrating its web site away from Oracle and towards MongoDB.

He also said there are moves towards cloud hosting, I think on Amazon’s hosted infrastructure, and that its own data centre can be used as a backup in case of cloud failure – an idea which makes some sense to me.

So what’s wrong with Oracle? The problem is the tight relationship between updates to the code that runs the site, and the Oracle database schema. Significant code updates tend to require schema updates too, which means pausing content updates while this takes place. Journalists on a major news site hate these pauses.

MongoDB by contrast is not a relational database. Rather, it stores documents in JSON (JavaScript Object Notation) format. This means that documents with new attributes can be added to the database at runtime.

Although this was the main motivation for change, the Guardian discovered other benefits. Developer productivity is significantly better with MongoDB and they are enjoying its API.

Currently both MongoDB and Oracle are in use. The Guardian has written its own API layer to wrap database access and handle the complexity of having two radically different data stores.

I enjoyed this talk, partly thanks to Wall’s clear presentation, and partly because I was glad to hear solid pragmatic reasons for moving to a NoSQL data store.

No more Ruby support in NetBeans – the feature was little used, says Oracle

Oracle has announced the discontinuation of Ruby support in the NetBeans IDE. The reason? First, to free resources for JDK 7 support; but second (and more significant) – hardly anyone was using it.

There is hardly a shortage of Ruby IDEs. Ones that come to mind are the Eclipse-based Aptana, JetBrains RubyMine, the Visual Studio based Ruby in Steel, and Embarcardero’s 3rd Rail. Further, some Ruby developers prefer to work without an IDE.

I also suspect that Ruby has not quite hit the mainstream in the way it seemed that it might a few years back. Its influence has been huge, but in practice many developers still fall back to PHP, Java and C#.

No Java or Adobe AIR apps in Apple’s Mac App Store

Apple’s App Store Review Guidelines appear to forbid Java or Adobe AIR applications from being published in the store:

Apps that use deprecated or optionally installed technologies (e.g., Java, [PowerPC code requiring] Rosetta) will be rejected.

Since Adobe AIR is not shipped by default with OS X, any applications requiring that runtime will not qualify. Java is forbidden because Apple has deprecated its own build of Java; and while it seems supportive of Oracle’s official OpenJDK project for Mac OS X, apparently that support does not extend to allowing Java apps into the store.

Of course it is not only Java and Adobe AIR that are affected, but any apps that need a runtime.

There are many other provisions, most of which seem sensible in order to protect the user’s experience with the App Store. Some of them have potential for causing controversy:

Apps that duplicate apps already in the App Store may be rejected, particularly if there are many of them. Apps that are not very useful or do not provide any lasting entertainment value may be rejected.

What defines duplication in this context? How will Apple test whether an app has “lasting entertainment value” – I presume this refers to games.

The situation on Mac OS X is different than on the iPhone or iPad, since users can easily install apps via other routes. That said, if the App Store catches on then not being included may become a significant disadvantage. Further, it will not surprise me if Apple starts hinting that non-approved apps carry more risk to the user, so that some users might decide to avoid anything without this official stamp of approval.

I wonder if Adobe will do a Flash packager for the Mac similar to that which it offers for iOS, to get round these restrictions?

What you are saying about the Java crisis

A week or so ago I posted about the Java crisis and what it means for developers. The post attracted attention both here and later on The Guardian web site where it appeared as a technology blog. It was also picked up by Reddit prompting a discussion with over 500 posts.

So what are you saying? User LepoldVonRanke takes a pragmatic view:

I’d much rather have Java given a purpose and streamlined from a central authoritative body with a vision, than a community-run egg-laying, wool-growing, milk-giving super cow pig-sheep, that runs into ten directions at the same time, and therefore does not go anywhere. The Java ship needs a captain. Sun never got a good shot at it. There was always someone trying to wrestle control over Java away. With the Oracle bully as Uberfather, maybe Java has a place to go.

which echoes my suggestion that Java might technically be better of under more dictatorial control, unpalatable though that may be. User 9ren is sceptical:

Theoretically, the article is quite right that Java could advance faster under Oracle. It would be more proprietary, and of course more focussed on the kinds of business applications that bring in revenue for Oracle. It would be in Oracle’s interest; and the profit motive might even be a better spur than Sun had.

But – in practice – can they actual execute the engineering challenges?

Although Oracle has acquired many great software engineers (eg. from Sun, BEA Systems, many others), do they retain them? Does their organizational structure support them? And is Oracle known for attracting top engineering talent in general?

In its formation, Oracle had great software engineers (theirs was the very first commercial relational database, a feat many thought impossible). But that was 40 years ago, and now it’s a (very successful) sales-driven company.

There’s an important point from djhworld:

Java is hugely popular in the enterprise world, companies have invested millions and millions of pounds in the Java ecosystem and I don’t see that changing. Many companies still run Java 1.4.2 as their platform because it’s stable enough for them and would cost too much to upgrade.

The real business world goes at its own pace, whereas tech commentators tend to focus on the latest news and try to guess the future. It is a dangerous disconnect. Take no notice of us. Carry on coding.

On Reddit, some users focused on my assertion that the C# language was more advanced than Java. Is it? jeffcox111 comments:

I write in C# and Java professionally and I have to say I prefer C# hands down. Generics are very old news now in .Net. Take a look at type inference, lambdas, anonymous types, and most of all take a look at LINQ. These are all concepts that have been around for 3 years now in .Net and I hate living without them in Java. With .Net 5 on the horizon we are looking forward to better asynchronous calling/waiting and a bunch of other coolness. Java was good, but .Net is better these days.

and I liked this remark on LINQ:

I remember my first experience with LINQ after using C# for my final-year project (a visual web search engine). I asked a C# developer for some help on building a certain data structure and the guy sent me a pseudocode-looking stuff. I thanked him for the help and said that I’d look to find a way to code it and he said "WTF, I just gave you the code".

From there on I’ve never looked back.

Another discussion point is write once – run anywhere. Has it ever been real? Does it matter?

The company I work for has a large Java "shrinkwrap" app. It runs ok on Windows. It runs like shit on Mac, and it doesn’t run at all on Linux.

write once, run anywhere has always been a utopian pipe dream. And the consequence of this is that we now have yet another layer of crap that separates applications from the hardware.

says tonymt, though annannsi counters:

I’ve worked on a bunch of Java projects running on multiple unix based systems, windows and mac. GUI issues can be a pain to get correct, but its been fine in general. Non-GUI apps are basically there (its rare but I’ve hit bugs in the JVM specific to a particular platform)

Follow the links if you fancy more – I’ll leave the last word to A_Monkey:

I have a Java crisis every time I open eclipse.

The Java crisis and what it means for developers

What is happening with the Java language and runtime? Since Java passed into the hands of Oracle, following its acquisition of Sun, there has been a succession of bad news. To recap:

  • The JavaOne conference in September 2010 was held in the shadow of Oracle OpenWorld making it a less significant event than in previous years.
  • Oracle is suing Google, claiming that Java as used in the Android SDK breaches its copyright.
  • IBM has abandoned the Apache open source Harmony project and is committing to the Oracle-supported Open JDK. Although IBM’s Sutor claims that this move will “help unify open source Java efforts”, it seems to have been done without consultation with Apache and is as much divisive as unifying.
  • Apple is deprecating Java and ceasing to develop a Mac-specific JVM. This should be seen in context. Apple is averse to runtimes of any kind – note its war against Adobe Flash – and seems to look forward to a day when all or most applications delivered to Apple devices come via the Apple-curated and taxed app store. In mitigation, Apple is cooperating with the OpenJDK and OpenJDK for Mac OS X has been announced.
  • Apache has written a strongly-worded blog post claiming that Oracle is “violating their contractual obligation as set forth under the rules of the JCP”, where JCP is the Java Community Process, a multi-vendor group responsible for the Java specification but in which Oracle/Sun has special powers of veto. Apache’s complaint is that Oracle stymies the progress of Harmony by refusing to supply the test kit for Java (TCK) under a free software license. Without the test kit, Harmony’s Java conformance cannot be officially verified.
  • The JCP has been unhappy with Oracle’s handling of Java for some time. Many members disagree with the Google litigation and feel that Oracle has not communicated well with the JCP. JCP member Doug Lea stood down, claiming that “the JCP is no longer a credible specification and standards body”. Another member, Stephen Colebourne, has a series of blog posts in which he discusses the great war of Java and what he calls the “unravelling of the JCP”, and recently  expressed his view that Oracle was trying to manipulate the recent JCP elections.

To set this bad news in context, Java was not really in a good way even before the acquisition. While Sun was more friendly towards open source and collaboration, the JCP has long been perceived as too slow to evolve Java, and unrepresentative of the wider Java community. Further, Java’s pre-eminence as a pervasive cross-platform runtime has been reduced. As a browser plug-in it has fallen behind Adobe Flash, the JavaFX initiative failed to win wide developer support, and on mobile it has also lost ground. Java’s advance as a language has been too slow to keep up with Microsoft’s C#.

There are a couple of ways to look at this.

One is to argue that bad news followed by more bad news means Java will become a kind of COBOL, widely used forever but not at the cutting edge of anything.

The other is to argue that since Java was already falling behind, radical change to the way it is managed may actually improve matters.

Mike Milinkovich at the Eclipse Foundation takes a pragmatic view in a recent post. He concedes that Oracle has no idea how to communicate with the Java community, and that the JCP is not vendor-neutral, but says that Java can nevertheless flourish:

I believe that many people are confusing the JCP’s vendor neutrality with its effectiveness as a specifications organization. The JCP has never and will never be a vendor-neutral organization (a la Apache and Eclipse), and anyone who thought it so was fooling themselves. But it has been effective, and I believe that it will be effective again.

It seems to me Java will be managed differently after it emerges from its crisis, and that on the scale between “open” and “proprietary” it will have moved towards proprietary but not in a way that destroys the basic Java proposition of a free development kit and runtime. It is also possible, even likely, that Java language and technology will advance more rapidly than before.

For developers wondering what will happen to Java at a technical level, the best guide currently is still the JDK Roadmap, published in September. Some of its key points:

  • The open source Open JDK is the basis for the Oracle JDK.
  • The Oracle JDK and Java Runtime Environment (JRE) will continue to be available as free downloads, with no changes to the existing licensing models.
  • New features proposed for JDK 7 include better support for dynamic languages and concurrent programming. JDK 8 will get Lambda expression.

While I cannot predict the outcome of Oracle vs Google or even Apache vs Oracle, my guess is that there will be a settlement and that Android’s momentum will not be disrupted.

That said, there is little evidence that Oracle has the vision that Sun once had, to make Java truly pervasive and a defence against lock-in to proprietary operating systems. Microsoft seems to have lost that vision for .NET and Silverlight as well – though the Mono folk have it. Adobe still has it for Flash, though like Oracle it seems if anything to be retreating from open source.

There is therefore some sense in which the problems facing Java (and Silverlight) are good for .NET, for Mono and for Adobe. Nevertheless, 2010 has been a bad year for write once – run anywhere.

Update: Oracle has posted a statement saying:

The recently released statement by the ASF Board with regard to their participation in the JCP calling for EC members to vote against SE7 is a call for continued delay and stagnation of the past several years. We would encourage Apache to reconsider their position and work together with Oracle and the community at large to collectively move Java forward.  Oracle provides TCK licenses under fair, reasonable, and non-discriminatory terms consistent with its obligations under the JSPA.   Oracle believes that with EC approval to initiate the SE7 and SE8 JSRs, the Java community can get on with the important work of driving forward Java SE and other standards in open, transparent, consensus-driven expert groups.   This is the priority.   Now is the time for positive action.  Now is the time to move Java forward.

to which Apache replies succinctly:

The ball is in your court. Honor the agreement.