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.