hese days if you look at the way a lot of shops work, they have really two kinds of people that go into developing web sites" James Gosling, vice president and Sun Fellow, Sun Microsystems, said at a recent press event where selected Sun engineers and executives provided a status report of Sun's efforts in client technologies, particularly in the consumer space. "There's no real good terminology for it, but there's a definite split between what we call 'developers' and 'designers.'"
"Another way to look at it," Gosling said, "is [there are] the people who went to university and took computer science courses and the people who took art courses. Depending on where you're looking, there tends to be a lot more designers than there are developers." And according to Gosling designers are doing a lot more script writing these days than one would anticipate, while developers generally never do art.
The industry has heard and seen a lot of developments this year that are aimed at the collaborative relationship between designers and developers who work on rich, robust, interactive, and dynamic applications, both browser based and desktop. Microsoft's announcement of Silverlight—the rebranding of Window Presentation Foundation/e—and Adobe's release of AIR (code named Apollo) last spring both included fully developed toolkits that focused on streamlining the collaborative working relationship between the designers designing dazzling UIs and the developers who do the coding.
The crux of the press event—sans a formal Q&A—was to provide an update on, among other topics, Sun's ongoing efforts to build a tool chain that will allow "both types of developers," as Gosling described, to work together on applications for a variety of devices in the consumer marketplace.
As Rich Green, executive vice president, software, at Sun said in his brief comments to open the event, the consumer market is an important target in Sun's client technology strategy, which Green and Sun CEO Jonathan Schwartz announced at JavaOne 2007.
"Since JavaOne we've been busy with a broad spectrum of technologies in the client world," Green said. "When we look out over the landscape of the client industry, there's really many orthogonal axes of definitional space of technology we have to look at: whether clients are thin or thick, mobile or laptop, scripting or programming, core to an operating system platform or layered technology, applications versus content. There are so many evolving models that the solutions across all those spaces are really rather complex."
Sun is looking to make some "big bets" in its technology portfolio, according to Green, and key to that effort will be how Sun evolves Java and its client platform after spending the past year looking at its product line available currently and what's evolving in both the consumer and enterprise marketplaces. "When we spoke at JavaOne, we made a key point that we are much more aggressively turning our attention to the consumer client," Green said.
The company is continuing its endeavors in the enterprise and its commitment to Java for the client world, Green said, because Sun is seeing enormous growth opportunities in the consumer space where there are a multitude of applied platform technologies, new developer models, new media models, and new extractions on the programming platform occurring on both the server and the client side.
Green noted also that the company was looking to separate in observer's eyes what Sun is doing in its mainstream distribution versus what its doing in research: "I think sometimes it's been a little ambiguous what's coming out of our research organization versus what's in our core product line. We do a lot of things at Sun. We want to both pursue our mainstream product and distribution objectives as well as try new things, and coming out of Sun Labs we have some really exciting technologies."
Under the Umbrella
Among the Sun engineers and executives who participated in the progress report, with each focusing on a specific product or technology, Gosling was the first to present on JavaFX, an "umbrella" term, as he called it, that defines a family of technologies comprising four primary components: JavaFX Mobile, a stack for mobile phones; Java SE 6 Update N, the next (and as yet unnamed) version of the standard platform; JavaFX Script, a scripting language; and a set of yet unnamed tools focused on the designer-developer collaboration to build rich Internet applications (RIAs).
Though he acknowledged that all these technologies are still fairly early on in their evolutions, Gosling said, "there are prototypes of bits and pieces that are available or about to be made available." He said that although JavaFX Script is a scripting language that can be used like other scripting languages, such as PHP and Python, unlike other scripting languages that generate HTML, JavaFX Script is also for developing rich user interfaces that unite Java 2-D APIs and Swing APIs.
Gosling also touched on the more mature JavaFX Mobile stack that is composed primarily of the assets acquired from SavaJe, and with it Sun is striving for uniformity by having commonality on all devices. It runs existing Java ME applications but can go a level up and do SE-style coding and can use JavaFX Script for more important interactions with devices (CLDC and CDC) in building more sophisticated applications, he said.
The JavaFX Script Interpreter that is now available as a prototype compiler will likely be someday bundled in a future JDK version. Gosling said that the JavaFX compiler has to work with whatever's on the device. When a developer creates an asset, he or she will be able to target it for JavaFX Mobile or a CLDC handset, for example, to be able to generate the desired experience for a variety of targets with different configuration solutions, which, Gosling said, contain "some things that are just inescapably different," such as screen size. "There's no way to make a big screen look like a little screen or a little screen look like a big screen in any sort of useful way."
The set of designer tools, which remain unnamed, will include a visual tool for designers—and not an IDE, as Gosling said—that will work with Flash and Photoshop and allow for creating applications for browsers, desktops, phones, and other devices.
What's in a Name?
Chet Hasse, architect in the Java client group at Sun, took the dais to report on the progress of Java SE Update N, also known as the consumer Java Runtime Environment (JRE). It will include a new installer, deployment toolkit, a new browser plug-in, and Nimbus, which is a new Swing look and feel. Hasse said this next version of the platform builds on the solid foundation of the 12-plus-year-old Java language and the high-performance, HotSpot VM compiler to improve the consumer experience with RIA capabilities through graphics and UI toolkits. There is an early release of the platform available now, and Hasse said the beta should be out in December 2007, with the production version available soon thereafter.
Improving the consumer experience involves achieving a faster startup for the browser and devices through a QuickStarter component, Hasse said. Another improvement Sun is working on is a faster install of the Java kernel to bring Java on par with other platforms for running lightweight applications. This new installation model allows for downloading just the bits that are necessary without having to do a full installation, but also provides for a composite installation later without having to reinstall over what's already been installed through a better version-detection component. For enterprises, especially, Hasse said, version detection can be a tedious process. In addition, Hasse said there will be faster graphics through OpenGL and 3-D DirectX, and important upgrades for audio, video, and animation.
"There is also better Windows Vista support through signed applets," Russell said, "and enterprise features include running a single application in a specific JRE version without changing the behaviors of other applets. Enterprises don't want to be concerned with performance issues for newer versions of the JRE that aren't installed."
The new plug-in, which Russell said is reportedly passing more tests than the old plug-in, supports Internet Explorer 6 and 7 and the Firefox 3.0 alphas. It is due to ship in the coming release of Java SE 6 Update.
Regardless of which major you pursued in college, computer science or art, the eventual maturation of the JavaFX technologies will likely add more complexity to your language and tooling choices for developing rich, interactive web applications.