Welcome to the Java Developer's Journal. I look forward to communicating with you in this forum each month, sharing ideas and responding to your comments and suggestions. To get the ball rolling, I thought I'd offer a few observations about where we are and where we're going.
This is indeed an exciting time for Java developers. In addition to the revolutions Java is causing across the online multimedia and web design industries, new markets for Java technology seem to be emerging every day. Developers can take comfort in the secure knowledge that there is much more coding work to do than can possibly be done, thus ensuring Java developers high market value for the forseeable future. All the while, applets are becoming more and more commonplace on the web. Everyone, it seems, is getting in on the action.
Java's viability as a container mechanism for online news, entertainment, and information is even becoming apparent to the literati, never mind the digirati. A recent New York Times article covering the phenomenon gave simple advice for the social season: to spice up any cocktail party, just give Java a mention, and watch the conversation sparkle.
But the public's and the mainstream press's impressions can be misleading. Aside from the occasional breakthrough, most of the Java developer community seems engrossed in the serious work of clambering up the Java learning curve, getting client projects out the door, and struggling to discover all the bugs and cross platform incompatibilities (egad!) in Java1.0. This leaves most developers precious little time for thinking through some of the most challenging issues surrounding Java's future direction and larger impact. Therefore, in this moment of madcap, multithreaded euphoria, I'd like to suggest a few moments of longer term reflection, and offer a little free advice.
Be Prepared for Major Changes
The remainder of the calendar year promises a number of significant changes to the language and important extensions to the core class libraries. Perhaps the important are Apple's, IBM's and Microsoft's recent, independent announcements that they will embed Java in the core of their respective operating systems, and Sun and Microsoft's seperate announcements on the availability of a Just In Time (JIT), compiler for Java.
The presence of Java in the core of the OS will allow the dissolution of the browser as the primary interface between users and applets. This is something that Microsoft in particular has been fighting for in its battle with Netscape, for obvious reasons. But this also means a win for consumers, since it will begin to enable a truly open, extensible operating system, where the extensions are cross platform. The development of a Just In Time compiler (expected, by some, in the third quarter of 1996) will speed the performance of Java dramatically, allowing developers to take advantage of the quite compact, efficient nature of idealized' Java. But a Just In Time compiler will do more than just make Java efficient. By improving the speed of compiled Java bytecode, entire new possibilities are enabled in online multiplayer gaming, in developing computationally elegant CODEC's for online video, and in 3D realtime visualization, things which the current implementation is simply too slow to handle.
Take It Off the Web
While the media machine has elevated the Internet to the forefront of our cultural imagination, the forcasted growth potential of corporate and regional Intranets is actually much greater than that of the Internet. And Java will have a huge role to play in deploying what will be a dream-come-true for CIO's around the world: enterprise-wide applications solutions that are client independent.
In other words, if you think the XYZ Widget Corp. got excited about posting their financial data on their web site, wait until that same company realizes it can run one, robust, easy-to-manage customer service package (authored in Java) on any machine in its organization, regardless of whether it's a Mac, a PC, or a Unix workstation, with minimal overhead. They could then go out and buy the cheapest desktop computers that can run Java, regardless of its OS, saving many, many thousands of dollars. Today's corporate euphoria will look like ambivalence in retrospect.
The key lesson that Java developers should take from this scenario is: don't be applet-specific or web-centric in your development. Rather, try building stand-alone applications, even if today they only run under the Appletviewer. Because tomorrow, they will run across the high-speed LAN at the XYZ Widget Corp. (or, its competitor). The difference in the scale of development effort required for stand-alone applications (and especially suites of applications) written in Java when compared to that required for applets is significant. And the company that masters large scale application building in Java first will have a significant competitive advantage.
Perhaps you are thinking that sharing source code is antithetical to the strategically focused applications development mentioned in the previous paragraph. Not so. Because the demand is so high for Java, (and for web-based products in general) the amount of "real" competition in the marketplace is quite low, since there are more than enough potential clients to go around. When one combines Java's lack of maturity with this level of demand, it becomes clear that developers have everything to gain by cooperating in the early stages. The finished products will only improve, and we will all benefit from having a developers' community closely aligned with the core "net values" of information access, and strong collaboration.
Team with Design
This is perhaps the most pressing need in the Java community: there is an enormous proliferation of ugly, poorly designed, and useless applets, in part because many Java developers are not aware of the tremendous contributions that can and should be made by those in the Information Design, User Interface Design, Graphic Design, and Usability Testing communities. Any Java development process should be informed by these aesthetic and real-world factors for two simple reasons. First, the Internet is a public media space, poorly designed, frivolous and ugly content amounts to virtual littering. Second, there is often a drive in technology circles to implement features and concepts "because you can" without any forethought to real world practicality. Speaking with those outside the coding experience, but with specialties in user experience, typography and look-and-feel is essential to any development effort, and will thus, in the long term, differentiate those who adopt it as a standard part of their process.
As developers, we have an opportunity for unparalleled social and commercial impact. If we can find time to think through the process, communicate with each other, and partner in the right ways with allied fields, that impact can be more than just unparalleled: it can be transforming. The choice is ours.
About The Author
Andrew Zolli is Senior Internet Technologist at Siegel & Gale, a premier international strategic communications and interactive media company headquartered in New York City. His clients include Netscape. Andrew was an early member of the several Internet protocol committees. He has held research positions at Brown University and Harvard University. Andrew lectures frequently on multimedia design and new media. He writes frequently for both technical and non-technical audiences and is a member of Java Developer's Journal Editorial Advisory Board.