Concerning Your Career

Employment Tips for Open Systems Professionals

Betting the Farm on Java



How much time and effort should programmers and IS departments spend on learning Java?

By Jim Johnson

Never in the history of computing has a language been hyped as much as Java is now; in fact, some of us have grown tired of hearing about it, even while remaining enthusiastic about its potential. The PR campaign is yet another indication of the intense positioning taking place among major companies over the World Wide Web, each seeking to take a decisive, sustainable lead with some kind of product or technology. But what about software engineers and their managers? Does learning Java represent a good career investment? Is it the sort of thing in which IS departments should invest training and development resources?

What makes Java so special is its relative platform-independence. When Java code is compiled into "bytecode," it becomes executable by runtime interpreters available for a number of platforms. You can code it once, then run it on a Mac, PC or Unix box, and it's the same program for all users. When combined with Internet technology, this means that small Web-based "applets" can be embedded in Web pages, so users of any operating system can download whatever executables they need from the same site, to view and manipulate data or do other work. Release cycles become easier and occur faster, and any given OS is less restrictive.

Java represents the next stage in the natural evolution of computer languages; it descends fairly directly from C and C++, and programmers familiar with those languages should be able to pick it up with relative ease. Architecturally, Java is usually described as a refinement or variant of C++, easier and safer with a few obscure features taken out and others added to make coders' lives easier. Its distributable nature will take developers far beyond the world of traditional software. In five to 10 years, it's likely that hybrid, Java-powered stereos, televisions and other appliances will be downloading new features and program information to themselves automatically over the Internet.

Reality Check

Those without experience in C or C++ should take note of the object-oriented (OO) nature of Java, especially if you're coming from a legacy systems environment. It's often actually easier for nonprogrammers to pick up OO concepts than it is for, say, seasoned Cobol programmers, as the latter can actually be confused by their preconceptions of how programs should work. Visual Basic programmers are reporting steep learning curves, too, though most of them also express joy at the increased flexibility and features. If you've never dealt with OO technology, consider studying it before delving into Java.

Perhaps the most significant detail is the wide acceptance that Java has already received. Although much of this allegiance is driven by the strength of the technology itself, there has also been a deliberate and extensive PR campaign on the part of Java's developer, Sun Microsystems, to head off efforts by Microsoft to develop a competing language. Indeed, after some initial hesitation, Microsoft seems to have made a commitment to Java, going as far as to pledge Java integration into its operating system products; of course, Microsoft is also continuing to invest in the development of rival technology.

Pride goeth before the fall, and not all of the attention Java has received has been positive. Any technology that involves the importation of untrusted executables is going to have security problems. Sun made some broad claims about the invulnerability of Java early on, only to have significant holes turn up shortly after the release of version 1.0. To Sun's credit, it addressed the problems and issued patches quickly, but it was a rude awakening for a dream technology. In retrospect, this sort of thing should have been expected, and it's an area that demands close, ongoing attention. On the other hand, the entire process of discovering and plugging holes is what makes products more secure and can be seen as part of the necessary maturing process of this or any language.

Of particular interest to IS managers is Java's place in the burgeoning intranet movement. Because these systems are typically served and accessed only by internal personnel, security is much less of an issue. We can expect that Java will experience continued and increasing popularity as a solution in this venue, because further discoveries of security holes will have less impact than on public servers using Java.

Java U.

For those who value training, the Java training infrastructure is coming up to speed fast. Sun has taken Java on the road by featuring "Java Days" in a number of cities around the U.S., complete with tutorials and in-person pep talks by executives and Java creators. JavaOne, the first Java developer's conference, took place in May of this year, and independent trainers are already picking it up and selling out.

However, when considering paying for Java training, it's important to note that practically no one has been doing Java for more than a year. Except for the geniuses who invented this language, there are no gurus, and even the creators missed a couple of big security holes. I attended Java Day in Washington, DC, and found the tutorials no more helpful than the books I had already perused. Before investing, track down a few attendees of a training course to see if they found it valuable; posting to a local Usenet newsgroup could accomplish this easily.

Some of us learn best from training, so it may be a worthy investment. But many of us are accustomed to teaching ourselves from books and, in addition to technical references, there are already a number of tutorial-style books, and many more will be out in the next few months. These books are worth a look before investing hundreds or thousands of dollars in training. But be aware that there are so many Java books hitting the stores that it may take major browsing to find one that's really useful to you.

The Net itself has a rapidly increasing number of tutorial sites that will at least supplement these books and provide updates on breaking technical developments. Also, Sun is distributing the Java Development Kit (JDK) for free, so it doesn't cost anything to try it out--unless you're running Windows 3.x, that is. As of this writing, the JDK isn't available for all OSs, but various ports are on the way.

I administer a small mailing list dedicated to Java for a number of my colleagues; members keep each other informed of the latest Java news, local Java-related events and cool applets, and share coding problems in a colloquial atmosphere. IS departments may want to consider setting up such a list, especially to help their people through any OO culture shock they might be experiencing. Usenet's comp.lang.java can be a valuable resource, particularly for the more advanced topics, bug discoveries or some obscure nuance that you just can't get. Java user groups are springing up to provide mutual aid and camaraderie on a regional level.

Also, keep your eyes on the development of "Visual Java"-type products that promise to simplify all but the most unusual programming tasks. If you feel that these are likely to serve your needs, you may be better served waiting for them to mature, as opposed to investing time and money into learning more about the deeper levels of the language than you need to know.

At the moment, Java's potential remains just that: potential. There are companies hiring people, and useful applets have begun to appear, but the dollars driving development are still largely venturesome as opposed to seriously client-driven. Even so, Java is about as good as career bets get these days. Sun will continue to address security issues and other problems; there's just too much riding on Java and they've already come this far, so they will have to find ways to make it all work.

It may take a year or two for Java to prove itself commercially and come into widespread demand, and this game is far from over. But the big players seem to have created a situation that ensures Java's place as a dominant language for at least a decade.

Jim Johnson is a certified personnel consultant and the principal of Options Unlimited, specializing in the placement of Unix professionals in the Washington, DC, area. He can be reached at jim@uujobs.com.