JavaOne: Java SE to support Visual Basic

JavaOne: Java SE to support Visual Basic

Summary: Graham Hamilton, VP and Fellow in the Java platform team at Sun Microsystems, talked about the future of Java SE in today's Sun general Technical session. He talks about plans for performance, monitoring, scripting, desktop features, web services, and yes, even Visual Basic.

TOPICS: Open Source
Graham Hamilton, VP and Fellow in the Java platform team at Sun Microsystems, talked about the future of Java SE in today's Sun general Technical session. In the same session Bill Shannon talked about Java EE 5, but I'll save that for another article.

Graham: Here are the dates for the Java SE Roadmap:
  • JSE5 Tiger shipped fall 2004
  • JSE6 Mustang ships this October
  • JSE7 Dolphin targets the second half of 2008
  • Plus small bugfix updates every 8-16 weeks.
We've made some radical changes on how we've developed Mustang, by involving the community much earlier and more deeply. Every week we post our snapshot builds. This makes it much easier to contribute bug reports and fixes back. We get feedback much more quickly, for example people write about it on their blogs. This is working very well for us and for the community. Expect to see more of this for Dolphin.

JSE6 Mustang systemic properties
  1. Compatibility, stability, quality.
  2. Performance (client and server, gc, hardware accelleration, gray rect problem, SpecJBB)
  3. Monitoring and Management (JMX upgrades, JConsole upgrades, more JVM level diagnostics, attach on demand, all java apps are enabled for M&M by default).

JSE6 Mustang feature areas
  1. Scripting (JSR223, co-bundling Mozilla Rhino, others supported, see
  2. Desktop (look-n-feel including vista, antialiased fonts, benefit 10-12% on older machines, 60-70% range on newer machines, GroupLayout, Desktop integration)

Demo: Appointment manager "CalPal". Shows a splash screen, connection to Google web servers. In Windows and GTK we're accessing the native rendering engines to pick up on ... updated look and feel dynamically to Vista. Tray icon, launch native browser and other native applications to view default data types.

Windows Vista Status

Vista is a key target platform
Mustang will include core Vista support, including the IE7 plug-in. All available when Vista ships in november. Key updates will go into Mustang Beta2 in June.
1.4.2 and 5.0 will also support Vista in November but with older UI and more limited features.

Web Services: JAX-WS

All the Java vendors AND Microsoft are behind it. Mustang delivers full JAX-WS client and lightweight server (for callbacks). JEE5 adds richer server support.

Web Services: Java and .NET

We recommend Java developers program up at the JAX-WS level to isolate you from the protocol stack changes that might occur in the next view years. Treat JAX-WS like the socket level. Sun has been working with MS on project Tango to provide a higher quality interop with MS. JAX-WS 2.0 delivers WS-I basic interop, but project Tango adds a richer protocol support. Sun Java team is working closely with Microsoft. This will be delivered on top of Mustang and JEE5 in 2007.

There are many more Mustang features. Mark Reinhold will be talking about it in much more detail at another session this week.

Java SE futures

In Dolphin (JSE7) we're considering some Java language updates. We're cautious in changing the Java language but languages do evolve. Two things we're likely to do are direct support for XML, and super-packages. Possibly some others like method references, but not operator overloading. Some other ideas include desktop improvements (Java2D acceleration, Swing beans binding (JSR295), Swing application framework (JSR296)) Java Module System (JSR277), BeanShell (JSR274), and more.

Growing the Java platform through more languages

Java is great for large scale commercial development but diversity is good. Lightweight apps may not need static checking. Dynamic languages run on the JVM today, for example Ruby, Python, Groovy, and many more. A new bytecode (JSR292) will accelerate dynamic languages. It supports more dynamic method dispatch to make JVM support easier and faster. This will be the first JVM bytecode not used by the Java language.

Visual Basic for Java: Project Semplice

The goal is to enable VB developers to use Java platform. It's not for porting existing applications, it just lets you use your VB skills. Compile from VB source into Java classfiles, make VB source code calls into Java platform APIs, etc. It's a new language for the Java latform. It will support standard concepts. There will be more at a session later this week.

Demo: GUI application created in NetBeans, double-click on a button and see the event handler is written in Visual Basic.

Web tier futures: Project Phobos

This project adds JavaScript to java web-tier. Use JavaScript in a web page, or use it to write a servlet.

Demo: Application written in JavaScript on both the client and the server, using Emacs. layout.ejs is like a JSP page except with JavaScript. There will be a BOF tonight at 9:30pm.

Graham: Please help get the word out, see .

Topic: Open Source

Ed Burnette

About Ed Burnette

Ed Burnette is a software industry veteran with more than 25 years of experience as a programmer, author, and speaker. He has written numerous technical articles and books, most recently "Hello, Android: Introducing Google's Mobile Development Platform" from the Pragmatic Programmers.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.


1 comment
Log in or register to join the discussion
  • Java on client is dead

    Too many flavours, too many issues - in an uncontrolled environment (i.e. the client) it simply becomes unusable. We've recently removed all java client code from our applications because our customers find managing the varieties of JREs just too difficult.

    Ajax, while not very powerful, and IMHO a trully horrible interim fudge technology, has simply become the best way to keep client deployment manageable.

    The first, and most significant thing Sun can do to get people back to considering Java on the client is to opensource it. Then developers can actually see why things are behaving differently on different JVMs, and work around them properly rather than through guesswork - but it's still a lot more effort than a nice clean predictable runtime environment.

    Java on server is of course still good stuff.

    On the VB side of things, the compiling of VB code to target the JVM is an interesting idea. MS wants the considerable number of VB6 coders to convert to .Net and the vb6 coders feel hard done by: there is market share to be poached.
    However VB is popular because of its "simple to get to grips with" forms+controls based development paradigm. People who develop non GUI style business logic, or large scale, well designed systems, aren't generally fussed about what language they use to implement things anyway.
    If we're really saying that a VB6 GUI application using 3rd party activeX controls will run without any modification on a linux box on PPC architecture, then congratulations! If however you're just using the VB gui to create java byte code using JDK libraries - this is not really exciting, and is a quite limited market (Appforge I beleive used to do something similar).

    Oh, what I'd give for a single, standard, truly secure, powerful, manageable, 100% cross platform, client VM! It's really got to happen at some point, but there's just nothing presently available.