Developers who posted comments to last week's java.net 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 java.net 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 Liveinterview (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.
rdelaplante noted perceptual problems Java currently faces, as not being up to date compared with other technologies (
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 java.net poll asks How far back should Java retain backwards-compatibility? The poll idea was submitted by Gili, a member of the java.net community (user name
cowwoc). It's a very good question, in my opinion! The poll will be open for the next week.