|
Your Guide to Java
Where JAVA Makes Sense In the business world, Java makes some sense for deployment in extranets. Java's cross-platform promise means that theoretically you can create applications to use with your customers and suppliers and not have to worry about not having control over the environments they're running. The fact that Java applets are downloaded on the fly eliminates the explicit software installation process and extends their reach. But hurdles are high here, both because HTML can offer an even better cross-platform story than Java (though it's not interactive in the same way) and because cross-platform testing and debugging remain so difficult. Another compelling use for Java may be in the middle tier of transaction-processing systems--not the servers or the clients but the "business logic" in the middle that actually describes the processes of filling an order or tracking a request. Java's platform neutrality means, theoretically, that you can write code once and have it run on any Java-enabled system. Although you may not need to run the applets simultaneously on different platforms, having the flexibility to move from, say, a Windows NT to a Unix server without rewriting code could be beneficial. It also would be unwise to ignore Java's prowess as simply a good back-end development environment. JavaBeans offer a promising mechanism for building general-purpose business components that you can reuse with minimal modifications. And Java's simplicity (relative to C++) may improve programmers' productivity. In any case, whatever Java's pros and cons, there's no disputing that many programmers simply enjoy using it. Another place Java may make sense is in highly vertical, single-purpose applications that are essentially custom-developed front ends to transaction-processing systems, often as replacements for traditional "dumb" terminal applications. This is the one area where NCs stand a real chance of succeeding in a big way. IBM, in fact, has made some sales into precisely this sort of market. In these environments, a general-purpose PC may be unnecessary or even counterproductive. And it's worth noting here that the idea of NCs for the home is a nonstarter: Low PC prices negate any cost advantage, and network connections simply aren't fast enough to rely on remote storage. What about embedded devices? Java has some high hurdles to clear here, as embedded devices are often limited in purpose and constrained in power and size. That tends to argue for dedicated hardware, especially given that platform-independence in this area is less crucial. But TCI has signed a deal to use Java in some of its television set-top boxes, and Nokia has signed a similar deal to use Java in cellular phones, so we may yet see progress in this area. What It All Means At this point, it's clear that Java technology holds promise--but also that Java has been overhyped and needs a reality check. Sun could help assure Java's success by focusing less on its potential to dethrone Microsoft and more on its use to solve real-world business problems. Furthermore, Sun needs to make the Java Compatibility Kit public and allow third-party verification of compatibility claims. Such a public test would help catalyze more compliant VMs. And Sun needs to reassure developers investing in Java that future releases of the JDK will maintain backward compatibility with existing code. Ignoring backward compatibility has been a deal killer in the past. (According to Sun documentation, there's no guarantee that a JDK 2.0, for example, would support JDK 1.x programs.) If you're in position to decide what to do about Java now, our advice is definitely to begin experimenting with it on a limited basis, particularly on the server side. You should document idiosyncrasies and develop a "safe list" of techniques that work reliably on all the platforms you need to support. Adhere to rigid object-oriented programming practices and design your objects' interfaces carefully, with a clear focus on reusability. Then if (or when) Java turns out to be the right solution for larger projects, you will have a solid foundation to build on.
|