Welcome!

Java Authors: App Man, Liz McMillan, Jeremy Geelan, Yakov Fain, Hari Gottipati

Related Topics: Java

Java: Article

Where's Java Going with 6.0?

Where's Java Going with 6.0?

With the release of the newly renamed Java 5.0 J2SE platform, it's time to speculate on just what might be coming in Java 6.0. Given the typical 18-24 month cycle for major J2SE releases, you need to think beyond the norm and not just about new specification releases that require updated versions in the platform.

Sun's Bug Database (http://bugs.sun.com/bugdatabase/) is a good source for ideas about the more normal Request for Enhancements (RFEs), what's missing from the current release or has been missing in past releases. Since Sun has a top 25 list, we won't repeat what's there. Also, obvious additions/updates such as for "new" technologies that Sun is promoting, e.g., the Sun Java Desktop System, will be left off.

Instead, let's consider how changes in the world and the Internet will lead to even more technologies being incorporated into the standard Java platform.

Hopefully, by the time Java 6.0 comes out, the patent on GIF writing will have timed out everywhere in the world and Sun can add this to the platform. Of course, why anyone would want to write GIFs any more can always be asked.

It's also about time Sun offered full support for PDF files. This is no small feat, as the printing API includes a PDF flavor, but no native printing support. This added library would need to offer support for parsing, generating, searching, previewing, printing, encrypting, and annotating. Form support would also be beneficial, though that could wait for 7.0.

Instant messaging and peer-to-peer networking are very popular these days. Expect to see APIs like Jabber (www.jabber.org) for XML streaming protocols and support of the up-and-coming Extensible Messaging and Presence Protocol (XMPP) from the Internet Engineering Task Force (IETF) available.

A new javax.blog package could serve as a hotbed for serving up personal diaries. With the help of the XMPP capabilities, support for having everyone's blogs automatically intertwined by just starting a standard blog server could be available. Group blogs would need to be supported, as well as a handful of Web services that, for example, enable Amazon associates to maximize revenue options.

Because of Josh Bloch's huge contribution to the Java platform and to maximize his new stock options over at Google, Sun should include the Google Web API service (www.google.com/apis/) in the standard SDK. With broadband everywhere by then, developers could easily add features like Google's spell-checker, translation options, or just put AdSense in every available Web application.

Viruses and spyware are rather popular these days. With Sun's renewed interest in the desktop, look for new API hooks into the anti-virus software on the client. Expect the option to automatically check for viruses on standard socket connections. To help virus writers, Sun could add a new virus writer/spyware toolkit to the platform. This would include features for polymorphic virus generation and keyboard capture. Also, look for an API that provides the ability to add users to and remove users from the operating system and to "su" over to another user to execute a command under the guise of that user.

With Sun and Microsoft settling their legal differences, and Microsoft no longer updating Internet Explorer's pseudo virtual machine for Java, Sun could include a pluggable Internet Explorer as a full-fledged browser in the JEditorPane/HTMLEditorKit, reversing the plugin debate.

For the low-carb developers out there, Sun should delete every deprecated field and method. This would lighten up the APIs considerably in some areas and remove many methods that just redirect calls to different methods. Of course, this would mean that methods like System.getenv(String) couldn't have been undeprecated in 5.0. But then, getEnv() might have been a better name had Sun not had to keep to the original name when the method got undeprecated.

For the high-carb developers there, Sun should finally add operator overloading. Just look at how Groovy does this at http://groovy.codehaus.org/operators.html. Define a method like plus() in your object and you can do a + b. Define a next() method and use auto increment operators (++). What's wrong with mapping method calls to operators? You should also be able to define new operators like ^^ for power (since ^ is bitwise-or), like 2^^3 for 8.

With all these things missing from Java for so long, you wonder how it has even made it to version 5.0, let alone to the second release, 1.1. We'll just have to wait and see what Sun decides to add.

More Stories By John Zukowski

John Zukowski is working with SavaJe Technologies on a Java platform for mobile phones and is wrapping up his latest book, Definitive Guide to Swing for Java 5.

Comments (12) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Honza 10/18/04 09:31:26 AM EDT

Higher order functions! Or at least syntactic sugar for creating anonymous functions via inner classes (and making them more lightweight).

Candy Floss 10/17/04 06:36:36 PM EDT

Hey, some of you wouldn't recognize "tongue in cheek" if it jumped out and bit you (well, maybe it would only lick you)!

I propose a complete Windows Longhorn subsystem in J2SE 6.0 -- may as well cover all bases, and better do it in 2006! (Get the idea?)

Dip 10/16/04 04:15:06 PM EDT

Aspect oriented programming.

Think of combining javax.blog with AOP -- you could create cutpoints to automatically block annoying comments...

Jirka 10/15/04 04:38:36 PM EDT

I can live without operator overloading. But Closures would be really great - like there are in Groovy or Haskell, ML ... It would remove so many loops and make the code so much easier to read.

Then some little thinks
- ranges: for(int i : 1..10)
- switch for String
- default parameters
- some additional functions for Strings and makind split and format/printf functions more effective (e.g. allow precompiled formats)
- (a < x < c) stands for (a < x && x < c)

These are probably not necessary for Bussines applications, but for scientific computing, they would make life easier

Alessandro 10/15/04 08:44:59 AM EDT

The theme is very interesting, but I guess the author start kidding at some point. But a bit of sense of humor helps in these wild days ;)
I will ask for 3D hardware support in the JRE, as Java3D and/or JOGL. Today the 3D are extensions, i.e, should be donwloaded and installed separately. To conquer desktop market, easy access to 3D features helps a lot.

ACarbone 10/14/04 10:37:14 PM EDT

Wow you people need to lighten up alittle I think it is pretty obvious that there was a bit of sarcasm in this article... If you can't see that I think you need to read something besides a man page... Lighten up!

Bryan 10/14/04 08:38:25 PM EDT

Well, this is one author who's book I won't be buying. Nice one!

Spiffster 10/12/04 03:50:41 PM EDT

Hey, you left out jive as an output filter in java.io - I've often wanted to be able to translate content on the fly to say stuff like "OutOfMemoryException at ThisClass (line 71), BIZZATCH." This kind of feature in the default API would save me hours of work.

And SWT should be part of the API, but only on Windows.

And put Winamp in the Java API too - that way you could listen to MP3s with an industry-standard media player. Or, since you're embedding IE, you could just embed MS' Media Player 10 or so.

And include mono, too - that way you'd capture all the .net developers. This would make java ROCK! And it'd only be a 400M download, ideal for convincing those modem people to move up to cable.

Foo Bar 10/12/04 03:35:10 PM EDT

I think it's fairly clear that Sys-Con is running this article as a troll. Responding to it only encourages more crap like this. Someone should fire Joseph B. Ottinger if this is the kind of crap JDJ prints nowadays.

David Lewis 10/12/04 12:33:08 PM EDT

I have to disagree with two of the proposed ideas:
[1] Google API - What advantage would there be for Sun want to exclusively support a very profitable (albeit dominant) search engine company. I imagine that every other search engine would "cry foul".
[2] Operator overloading - Aaarg! This has to be one of the worst "features" of C++. Java is all about clarity ... operator overloading makes code more obscure.

Chris Duesing 10/12/04 10:27:07 AM EDT

Google api, IE plugin, aniti virus, blogging? These are your ideas for CORE language additions? Are you high? But yes, by all means lets delete those deprecated methods, they sure are bloating the language...

David 10/12/04 09:50:49 AM EDT

"Expect the option to automatically check for viruses on standard socket connections. To help virus writers, Sun could add a new virus writer/spyware toolkit to the platform. This would include features for polymorphic virus generation and keyboard capture."

WHAT? Are you out of your freaking mind? Or are you just trying to see if we're paying attention?