Skip to main content

Poll: Developers Warn that Bugs and Perceptions Endanger Java's Future

Posted by editor on February 26, 2010 at 1:18 PM PST

Developers who posted comments to last week's poll are sending a clear warning to the hierarchy that is deciding how and where to allocate future resources and effort for developing and enhancing Java. The poll (ostensibly about Java 7 objectives) attracted considerable attention from the community: a total of 518 votes were cast; furthermore, six thoughtful comments were posted -- five of them presenting serious concerns about Java's current state and (implicitly) its future.

The exact question and results:

Which Java 7 objective is most important for Java's future?

  • 29% (148 votes) - Modularity
  • 4% (19 votes) - Multilingual support
  • 20% (102 votes) - Productivity improvements (Project Coin, etc.)
  • 21% (110 votes) - Performance improvements
  • 18% (91 votes) - All of the above
  • 3% (13 votes) - I don't know
  • 7% (35 votes) - Other

Looking at the spread of the results, it seems that the objectives Mark Reinhold outlined in his February 16 Tech Cast Live interview (this was the inspiration for this poll) are all considered key for Java's future. Even though only 4% voted for multilingual support as being the single most important objective, the 18% who voted for "All of the above" means that 22% of the votes consider improved multilingual support essential going forward.

Among the 13 people (7%) who selected "Other," probably several posted comments. The comments were quite interesting.

That fixing bugs needs to be a very high priority objective was a much repeated and elaborated statement in the comments. Soon after the poll went live, cajo posted "Bug fixes":

There are still annoying undocumented bugs in the Java plug in for applets, and WebStart has some glaringly obvious, and fundamental bugs as well. If network-integrated client side computing is important, this issue should be priority #1.

badapple concurred, posting "Bugs should be the number one concern!"

I agree that there are many gotchas, because of undocumented bugs. One thing that has bugged me for the last five years is the fact that there is still no ability for components in a JScrollPane to receive a HORIZONTAL scroll event. Sun added the ability to have JScrollPanes scroll horizontally WHEN there is no vertical scroll bar present. THIS IS JUST A DIRTY HACK! Today, as it stands, most computers sold are laptops and they have track pads that have a HORIZONTAL scroll zone and swing thinks this a PopupTrigger, WRONG! Now why would this not yet be fixed? I and many others have reported this bug/missing feature many years ago and it still stands to this day with a down right dirty hack. PLEASE, ORACLE, FIX THIS!

aehrenr also said "Fix bugs" was the most important objective:

The most important "feature" for me in any technology is that it has as few as possible bugs. There are still quite a few for example in Swing and Web-Start. So please set bug fixing as the most important point on your to do list for Java 7. If there is some capacity left add USB support, Webkit integration, Pdf display and OpenGL support to the standard APIs.

Both goron and rdelaplante noted perceptual problems Java currently faces, as not being up to date compared with other technologies (badapple's and aehrener's comments are also somewhat in this category, with respect to Java's support of standard modern hardware). rdelaplante talked about "USB and Serial" issues:

My employer went with .NET for a rewrite of our main product since it supports USB and serial on Windows, and Java does not. They said .NET is better integrated with the OS than Java. I wonder what other things .NET can do that Java can't, at least without an addon.

goron titled his comment "Perceptions":

I think Java ( at least on the Desktop ) needs to overcome the overwhelming perceptions in big corporations that it's becoming irrelevant in the face of .NET / C#, Adobe Flex and even encroaching web-based platforms. Part of that is marketing, something that Sun has always been very bad at, but clean/simple/reliable deployment (webstart especially) needs to be sorted out. None of the bullet points above address that - well, they do, but you can't tell, and that's part of the problem.

nopjn also thought the Java 7 objectives categories were not ideal, asking "Closures anyone?" I'd say that closures are part of both the "Productivity improvements" and the "Performance improvements" categories. Closures are surely a big part of the upcoming Java 7, but the objectives categories Mark Reinhold came up with are at a higher level of generality, while closures are one of the specific enhancements that will help accomplish the objectives. Another way of saying it: closures are a means through which Java's performance and productivity will be improved in Java 7.

Interesting poll -- both in terms of results and comments. Worrisome, too. How can you expect to remain (become?) a mainstream desktop language if you don't have solid (or even basic?) support of standard (not even new, at this point) hardware components, like USB ports and laptop track pads???

New Poll: duration for backwards-compatibility?

This week's new poll asks How far back should Java retain backwards-compatibility? The poll idea was submitted by Gili, a member of the community (user name cowwoc). It's a very good question, in my opinion! The poll will be open for the next week.

In Java Today, Terrence Barr provides his MWC 2010 Observations:

I’m sure you’ll find lots of post-mortem/debriefing analysis on last week’s Mobile World Congress so I won’t go into details. Just some high-level observations: MWC is too large and crowded for its own good – in more ways than one. First, the Fira Conference Center infrastructure is overloaded – long lines everywhere, lousy, overpriced food, overflowing coat checks, awful toilets, hot and stuffy halls, blaring music and high noise levels, etc – you name it. Not a nice experience...

Karol Harezlak announces Microemulator Netbeans Mobility Support has been approved and published on

Yesterday I received an email from Mobile & Embedded Community Governance Board that my project Microemulator Netbeans Mobility Support has been approved and published on I'm moving all information about it from to New official home page of this project is: You can still download binary version of plugin from and search for "microemulator support".

Christian Thalinger announces his First invokedynamic call on SPARC:

Today I successfully executed an invokedynamic call on SPARC for the first time. Excellent! ... MethodHandle calls already work since a couple of days and I can run the JDK MethodHandlesTest without any errors...

In the Weblogs, Jeorg Plewe writes about Eclipse, COM ... nothing new...:

When reading I got the impression that certain solutions always come back, are quite universal and independant of domain, language or environment. The question here is about getting certain aspects of an object that are not statically declared in a yet typesafe manner. The Eclipse world came up with IAdaptable, as it seems...

Kohsuke Kawaguchi asks What do you try to leave in your commit messages?:

James Lorenzen had an excellent blog post about the importance of a descriptive commit comment. I can't agree more. Unfortunately, I think getting better at leaving better commit messages take trial and error — the way I've learned it is by getting frustrated by the lack of commit messages. So in the spirit of encouraging everyone (including myself) to do a better job, I thought I'd list up what I try to leave in the comments. * Bug ID. In fact, bug/commit association is so useful...

Felipe Gaucho writes about a Jersey feat. jQuery + JSONP:

One of the most controversial but yet powerful techniques for integrating distributed systems is the JSONP format, a javascript function that bypasses the same origin policy of the browser. Jersey provides built-in support for JSONP and this blog demonstrates how to benefit from this feature. When JSONP is a good option? ...

In the Forums, amirn is engaged with Tuning issues with OCAP-RI 1.1.3RelA: Hi, I installed OCAP-RI-1.1.3RelA (from the official release installer) on my Windows 7 laptop. I changed the mpeenv.ini to launch the qa app launcher and use TuneTest for basic tuning tests. This works great if I use the hard coded channel map in my If I use channel discovery, I systematically get...

In the Java Web Services and XML forum, rmenon13 asks How do i add a soap header to an outbound request: Hello I am trying to add a soap header containing an app id an authorization token to an outbound request and am completely stumped. I have been using setOutboundHeaders, and it seems that unless i explicitly specify my headers using...

In the Java SE Snapshots forum, ixanos finds that WatchService doesnt work for mapped network drives: I am using WatchService to monitor specific directories on my computer. further on, I have mapped some network paths which I also need to monitor as they contain several log files. Everytime a new file is created I wish to be informed. I noticed that I...

Our current Spotlight is the Mobile Desktop Grid (MDG) project: Mobile Desktop Grid (MDG) is a one-stop solution for obtaining worldwide grid resources for computational use. With the MDG solution, world wide physicists, biologists, chemists, laboratory assistants, and computer scientists are able to complete exhaustive computational jobs in a shorter period. The MDG solution aids researchers addressing global issues. Even users who do not have a lot of knowledge about grid and clustered computing can utilize cluster resources with the MDG solution. For more information about the MDG project, download the Mobile Desktop Grid User and Developer Guide.

Our current Poll asks How far back should Java retain backwards-compatibility? Voting will be open for the next week.

Our latest Feature Article is Has JDBC Kept up with Enterprise Requirements? by Jesse Davis; in the article, Jesse invites us to look beyond Type 4 architecture to address the latest requirements of the enterprise Java ecosystem. We're also featuring Adhir Mehta's Java Tech article, Web Service Simulatino Using Servlets; and Maven Repository Managers for the Enterprise, by John Smart.

Current and upcoming Java Events:

Registered users can submit event listings for the Events Page using our events submission form. All submissions go through an editorial review before being posted to the site.

Archives and Subscriptions: This blog is delivered weekdays as the Java Today RSS feed. Also, once this page is no longer featured as the front page of it will be archived along with other past issues in the Archive.

-- Kevin Farnham

O'Reilly Media
Twitter: @kevin_farnham