Java braintrust tells all
Sun's Arthur van Hoff and Kim Polese spill the Java beans, and four applets demonstrate Java tips and tricks.
Two of Sun's Java pioneers speak out on Sun's Java and HotJava plans for the future. And, three Netscape Java applets illustrate the power of this remarkable language. (3,600 words)
We begin this month's column with an interview of two of Sun's Java team members: Kim Polese, Manager of Marketing for the Java Products Group, and Arthur Van Hoff, Senior System Engineer.
After the interview three very brief Netscape Java applications will be provided. These examples should demonstrate the ease of deployment, development, and maintenance of Java code, as well as show the use of threads and socket connections.
The interview was conducted via e-mail. I tried to come up with a Java applet that would better distribute an electronic interview but was not creative enough. Yes, I am aware of IRC, but I was thinking of something that displayed the interview on one page and gave users some control. Also, I need to be nice to those readers that do not have Java-enabled browsers -- but not for long. I always disliked writers who did not use the technology they wrote about.
Let's get on with the interview.
Rinaldo: Kim, It is rather ironic that you rescued Java from oblivion after the inability of various companies to deliver fiber cheaply to the home. Folklore has it that you saved Java by designing Web functionality into the product, yet today we hear of Java going back to its roots -- simple cheap units that can browse the Web given a reasonable connection. We all want to thank you for advancing Web technology.
What was Netscape's motivation in adding Java applet capability?
Kim: Netscape recognized that the ability to run applications at the client side is an essential capability to have in a web browser. Without the ability to execute applications locally, you're limited to static web pages filled with text and images. That is extremely limiting and ultimately quite boring. When you add Java, you get the capabilities you'd see in a CD-ROM application -- multimedia, animations, instant interactivity, PLUS the benefits of instant updates, communications and live data that being plugged into a network provides. That combination of Java and the Web is extremely powerful.
Rinaldo: Arthur, You have also become part of the Java folklore, We watched your early panel work become part of the AWT and usually find several mail messages from you everyday in the mailing lists. During JavaDay East, many of us watched you demonstrate Java-enabled Netscape for the first time. What are you currently doing at JavaSoft?
Arthur: I'm a senior staff engineer. I've been with the project two years now and with Sun for three years. I am the author of the current Java compiler and am now heading the HotJava project.
Rinaldo: What are your thoughts on the recent Gilder article in Internet World and the HotWired Article last month?
Kim: Both articles were interesting in that they pointed out the impact that Java will likely have on the future of network-based computing -- how the capabilities that Java provides will impact the kinds of devices that are built, the way software will be distributed, the way we'll shop, manage our finances, get our information, and communicate with each other. That future is not too far off, which is the most exciting aspect about it. After the hoopla over interactive TV, we've all become jaded to the latest hyped technology. Java is the real thing.
Rinaldo: Do you think Java can bring about the unification of the information "superhighway" by making Internet browsing available to the rest of America? Can Java help us stop the two-tier society that is developing? When the TV first came out, not everyone could afford it. Same with the radio. Is Java ready to get cheap?
Kim: Java is free, so that's about as cheap as you can get. And Java is enabling the benefits of object-oriented programming that we've all been hearing about for years -- cost savings through code re-use and applications that can be broken into chunks, updated and extended infinitely without requiring cataclysmic version updates and recompiles.
What this all means is that developers save money, which drives software prices. The ability to distribute applications online rather than through the expensive production and distribution of CD-ROMs is another huge cost savings. All of these factors will result in cheaper and cheaper software -- a big benefit for the average consumer.
Arthur: I hope that Java will become a ubiquitous implementation language for Internet applications and provide enabling technology for on-demand software delivery to your corporate desktop and home.
Rinaldo: I understand you will be going to Japan soon. The Japanese had an effort to bring computing standardization to every home, office, and factory. It was called TRON. I am not sure it worked. Why would Java succeed?
Kim: The most telling indication of whether a technology will become a standard is when the user community starts doing the evangelizing instead of the company behind the technology. That happened almost instantly with Java. As soon as we put it out on the Net, people started downloading it, using it, and then posting messages on newsgroups about it, speaking at conferences, and endorsing it as the definitive language for executable content on the Web. That kind of support in the developer community cannot be created -- it happens at a grassroots level based on the value of the technology itself, not on any marketing or PR campaign. It's interesting to note that we [Sun] have only put one press release out on Java -- the release that announced the existence of the technology back in May '95. The bulk of the publicity has been created by the user community, by people encountering Java, getting tremendously excited by it when they realize the impact it will make on their business, and then telling the rest of the world about it. In an open industry, that's the real way that standards emerge -- not through standards bodies or slick marketing.
Rinaldo: Did you think the article in the Economist was realistic in suggesting a new approach to distributing software to both the consumer and the corporate markets?
Kim: The article was prescient in analyzing and extrapolating the implications of the key value Java provides -- the ability to distribute modular applications across wide-area public networks.
The abilities that Java provides today are profound. The elimination of application porting, the ability for a business to target its entire customer base instead of being limited to a certain segment based on the operating system they're running, the ability for that company to extend and upgrade their application on the fly, the ability for a customer to receive a product without having to install any software. Each one of these benefits can represent major improvements in the way a company conducts its business. Add to that the fact that Java has the capability to fit into very small devices, and you're no longer limited by the hardware platform. So what Java really is doing is removing all the artificial constraints of the OS-application lock -- software installation, porting, hardware configuration -- and enabling the best solution to emerge. The capabilities that Java provides are dramatic improvements over what we're all used to, and it's up to the industry to make optimal use of those features.
Rinaldo: There is talk of the Java-empowered Internet appliance -- a terminal that replaces the PC on users desktops, downloading applications from the Net at will. Is Sun serious about such a seemingly preposterous device? Given that current network bandwidths can't support a plethora of these terminals, what sorts of developments must occur to make possible its existence?
Kim: I believe we will one day see Java running in PDA's, set-top boxes, cell phones, VCRs, even building control systems. Why? Because appliances will continue to get smarter and cheaper, and Java is a software environment that was designed to be capable of living in those appliances. The Internet appliances that people are talking about today are one example of the kind of devices that can and will ultimately run Java applications.
Rinaldo: Arthur, is there anything you want to say to get us "Javatizing"?
Arthur:I believe that Java is the next logical step in Internet technology. I'm not sure what form it will take in the long run, but Java will play a big role. It will revolutionize software delivery once all computers are on the Internet.
Rinaldo: Could you provide some estimates of when we can expect to have all Java capabilities in sync in the Netscape releases, particularly the Windows 95 release?
Arthur: The Netscape FCS release will be 100% compatible with the Java applet specification. That means that any applets developed with the JDK will run in Netscape. Netscape may impose some additional security constraints, though.
Rinaldo: During the inceptive design discussions with Netscape one would imagine there was quite a bit of care paid to ensuring that applets written for Netscape and future versions of HotJava, as well as other browsers, would run without modification. Is there any data available on how well the "write once, run anywhere" design principle of Java is holding up with Netscape?
Arthur: It has worked well. Application interoperability at the applet level is a paramount goal and is a requirement on licensees. All licensees will be required to pass conformance tests in order to get branding from Sun. We are doing this to ensure that applets will work on all branded products. We are busy writing a test suite for compatibility testing.
Rinaldo: Could you briefly elaborate on the technical difficulty involved in porting the Java runtime engine to Windows 3.1?
Arthur: Java is a garbage collected, multi-threaded language. This is apparently extremely difficult to implement on Windows 3.1 because of its segmented memory model and its lack of asynchronous I/O.
Rinaldo: What are LiveScript and Plug-ins? There is quite a bit of confusion regarding them and Java applets. Does Netscape think Java is too difficult for the typical HTML Programmer?
Arthur: Netscape has a very good description of them on their home page.
Rinaldo: When should I use LiveScript instead of Java?
Kim: LiveScript is good for forms validation, gluing together applets, and generating quick user interfaces. It is not a complete environment and it does not support the Java requirement of "write once run anywhere."
Rinaldo: Without an efficient compiler, how do I get Java to run at native speed in Netscape?
Arthur: Several partners are developing just-in-time code generators. We expect product to be available next summer. We see the product performance to be comparable to C/C++.
Rinaldo: Is Netscape going to distribute a development environment for Java?
Kim: Many companies are getting into the business of building development environments for Java -- among them, SunSoft, Borland, MacroMedia, and Metroworks. I don't know if Netscape will build an environment -- I'd direct this question to them.
Rinaldo: If not, will the just-in-time compiler be available for Netscape users?
Arthur: I hope so. That is really up to Netscape though.
Rinaldo: Lotus Notes has this very nice feature of being able to mail dialog boxes. Can you seamlessly mail a Java applet between two Netscape browsers and execute it easily?
Arthur: Yes. Try the "mail document" feature in the latest navigator.
Rinaldo: Sun has always been a network-oriented company and many users are concerned about the lack of reliable network functionality in Javatized Netscape. Is there a reason why Netscape was unable to easily integrate the networking classes into the API?
Arthur: The restrictions are mostly due to security constraints. Currently you can only do client-server applets. We are working with our partners to use encryption to enable peer-to-peer applets.
Rinaldo: Is there any plan to support verification of applets using MD5/RSA with Netscape?
Arthur: I can't answer this for Netscape, but we are planning this functionality as a logical next step.
Rinaldo: Is it possible to have an encrypted socket-to-socket communication from one Netscape client to another using keys from other Netscape authorization sessions?
Arthur: Today, this is not delivered as a core capability in the distribution. You could code something up in this area and many companies are looking at using DCE for login authentication/authorization and considering X509 for key management.
Rinaldo: There has been some disbelief that your group will actually produce a browser. I'm not sure why since you seem to have delivered what you've claimed you would. When is the next version of HotJava due to be released? Will it run Java beta applets? James Gosling mentioned some exciting new features in the HotJava beta at an internal training session at Sun. How will it be different from the Netscape browser?
Arthur: The HotJava beta, will be released early next year. It will soon be ready for demos. It will run beta applets. These can be the same applets running with Netscape. We cannot overstress that Sun is committed to maintaining a consistent API that can be tested for conformance. Every license will be required to pass a conformance test -- including Sun. The HotJava beta will not support all Netscape features, but it will have an exciting new user model.
Rinaldo: What is the Java Cup and can you provide some insight into it? Would a product that integrates word processing, presentation graphics, and spreadsheet functionality have a good chance of winning? Will the apps be required to be 100% Java? Some of the recent apps chosen as winners in the programming contest appear to have been chosen for their graphical component. Can non graphical apps win?
Kim: There is a wide range of categories of applications that will be judged, including productivity tools, Web agents, educational apps, developer tools, and entertainment and games. Java is being used today to build everything from financial portfolio calculators to internal MIS applications to interactive 3-D games -- and the Java Cup will reflect this diversity of industries and applications.
Rinaldo: What is the future of Java, HotJava, and Netscape?
Arthur: The Internet will become a communication network for consumers. We think that Java will play a strategic role in enabling next generation Internet technology in this new world.
Rinaldo: Are there any release dates you can share with us?
Arthur: The JDK 1.0 (Java Developer Kit) will FCS before the end of the year. The HotJava beta will be out early next year.
Rinaldo: I recently gave a course to some Columbia students and their distinguished teacher asked me what Sun was doing to add quality to the Netscape/Java product. Are there any formal plans for validation suites? Is Netscape committed to maintaining 100% compliance with the Java language specification? I realize the number of class libraries is very large, but are you also expecting compliance with certain core class libraries? As a developer, it would be invaluable to know which class libraries to use. Java is very rich and the temptation is to use all of them.
Arthur: The specification of the applet API is well documented. Any of the Java packages can be used in either Netscape, JDK, or HotJava.
Rinaldo: Many users are concerned that having any formal body standardize a browser or Java will stifle creativity. How do you handle such a difficult problem?
Arthur: We intend to keep control over Java for the foreseeable future. We believe the Java language is complete and that most innovation will be done in the Java class libraries. Standards bodies offer a lot of value and we will involve a public standards body once the implementation of the class libraries has been finalized.
Rinaldo: Are other browser companies interested in licensing Java?
Arthur: Yes, several have signed already.
Rinaldo: Putting myself in a developer's shoes, how would I determine what type of browser I am running if I use browser-specific extensions? This problem gets much worse if you use LiveScript or Plug-ins. It seems that Java is a much better solution.
Arthur: Java is portable to non Netscape browsers.
Rinaldo: We have been trying to program peer-to-peer applications with Netscape and have been unable to tell the security classes that the socket create and open calls should be allowed. Will peer-to-peer connections be available in the future?
Arthur: Maybe in later versions. We have to solve some of the security problems first. This may be possible using encryption techniques. For now you are restricted to client-server applets.
Rinaldo: Do you have any closing remarks for us?
Arthur: I hope that Java will become a ubiquitous implementation language for Internet applications. It would enable a new model for on-demand software delivery to your desktop and it would revolutionize the Internet.
Kim: To me, the most exciting aspect of Java is the real-life application of it -- the way it will impact how we shop, learn, run our finances, etc. The explosion of excitement around Java is happening because Java provides such a dramatic step forward in what we can do online. Java will make the network useful and ultimately indispensable for the average person, because we'll be able to do things we could never do before -- like know exactly what the value of our stock portfolio is at this second, or see someone's edits on a diagram in realtime, or play checkers with someone across the world. And the coolest thing about this is that it's not science fiction or someone's blue-sky vision -- it's all possible today, because of Java. The following companies are licensing the Java technology -- Oracle, SpyGlass, Borland, MacroMedia, Metroworks, and Toshiba. Stay tuned for more announcements.
Netscape Beta 2.0 Applets
The following applets demonstrate some of the power and ubiquity that will be possible using Java and Netscape. Please note the applets below may have problems with Netscape versions (They clearly state this is a beta version). I am in the process of tracking down what the issues are. Each of the applets has been tested with the appletviewer in the JDK and functions properly with it. This does not mean that the applets do not have errors, however. You can run the applets by running the URL that contains the tags to load the Java applets:
Get a stock quote
Order DNA sequences
Draw a graph over and over again
You can get the latest version of the JDK from Sun. The distribution contains an appletviewer. If you have security exceptions make it less restrictive in the Properties dialog under the Applet pull down menu.
The first application is a very simple example of a forms-based interface that prompts a user for a stock symbol and proceeds to get the value from a server. This itself is no big deal but the possibility of providing users with desktop analytics is very useful. You may argue that you can just do it on the server. In some cases this is true. There are many cases, however, where the server would have to be too large and then what you've done is created a 1960's model of computing that does not utilize peer-to-peer computing.
The server uses a very simple interface that provides a value for a given symbol. Unfortunately, stock quotes are not easy to come by. Sounds like a good business opportunity for someone. The Get-a-Quote applet needs to have a server component installed. This component can be downloaded and installed at a site that allows communication on port 7000.
We have also ported the derivative calculator which we discussed last month.
Compute-bound DNA sequencing
Before I came to Sun, I developed an application that supports the automated ordering of DNA sequences. The problem can actually be reduced to an ordering problem. I developed two implementations one for Windows 3.1 and another for Motif. There were many maintenance and distribution issues with the implementation of the program. The Netscape/Java/ODS combination provides me with solutions to the following problems:
Without any doubt the Java version is easier to develop, easier to maintain, and should provide wider dissemination to the University of Georgia. There are also some very interesting future applications where a Netscape/Java front end will provide access to massively parallel systems in a very convenient manner. The only drawback from my perspective is the lack of a compiler that produces native code.
Performance monitoring/capacity planning
This little graphing applet can be used to display realtime performance data and can be used for historical analysis. The market is very young at this time and general-purpose widgets do not exist.
Next month's article
This article will discuss how one can extend Java API classes, develop a layout manager and will include an example of a graphical application that demonstrates digital calipers. This application was written by Henry Wong of Sun Microsystems.
About the author
Rinaldo S. DiGiorgio works for Sun Microsystems as a Systems Engineer in the New York City office and provides frequent demonstrations of Java Technology. DiGiorgio is currently working on the integration of many technologies into HotJava/Java. Some of these technologies are database connectivity, portfolio management, low-cost video, and analytical applications in the financial and emerging genetics market. DiGiorgio has been using Unix-based operating systems since 1979, when he was deploying Unix solutions in paper mills. He sees HotjJava/Java as the technology to minimize two great cost factors in the computer industry: distribution and code development.
If you have technical problems with this magazine, contact firstname.lastname@example.org