With all the controversy surrounding Java thanks to the purchase of Sun
by Oracle, the lawsuits flying back and forth over the Java Community
Process, the Apache Foundation, Android, and all the rest,
does it still make sense to learn Java?After all, the demise and abandonment of Java is being predicted practically every day.
I say
Yes,
now is the time to learn Java. No matter what your programming skill or
background, Java is a valuable language to learn, it will be used and
useful for a
long time to come.
Never a Dull MomentThe
Java language has been a-swirl in controversy since its public
announcement. It has not become "the" language in many of the areas it
originally claimed to be "the" language to use, but yet it
has
become popular in many other areas. In fact, Java is neck and neck with
the language C for being the most popular computer language:
TIOBE Software Community Index (of most popular programming languages.)
langpop.com Programming Language Popularity Rankings.
Devtopics.com Most Popular Programming Languages.
Why Popularity MattersWhy
does popularity matter? Because it entrenches a programming language,
not just for now, but for many years to come. In fact, every language
that has ever become deeply entrenched is still with us, so there's no
way of knowing just how long popularity will keep a programming language
alive.
When I was first learning to program, the big languages were assembly (the "
real"
programmer's language of the time), BASIC, FORTRAN, and COBOL. Every
single one of those is still a viable language today. Though if you'd
asked me then, I would never have thought COBOL would still be with us
today. I would never have believed how popular it is, either.
But
COBOL was re-invented in the late 80's. And there were a lot of
big-money installations running on it. ADA failed to displace it. It's
still here, and it's still a valuable part of a programmer's resume for
many jobs.
FORTRAN is a language I expected to re-invent itself.
It had already done so by the time I learned it (I first programmed in
the original FORTRAN, but FORTRAN IV was already in common use.) But
with the promulgation of Pascal, Modula-2, and C in the 80's I figured
FORTRAN would be pushed into the recesses of obscurity. I was wrong.
Modula-2
was mishandled by the company that owned the rights to it, so it never
took off as well as it might have. Pascal took off even though it was
never intended to be anything but a classroom language. C took off since
it didn't have Modula-2's licensing disadvantages and it had enough of
its advantages to become the "next generation language" of its day.
Modula-2
is still with us, but it's insignificant among languages today. Because
it never got popular. The others I mentioned got popular, and they're
still popular today. Yeah, even Pascal. You could learn Pascal today and
do a lot with it (though I don't recommend it unless you want the
academic challenge of broadening yourself as a programmer.) I still
write software in Pascal, though mostly for my own use, and only for
older computer systems.
The key to a programming language's
longevity is popularity. Once a language becomes sufficiently popular,
for all practical purposes it will never die.
Java is that popular.
The Many JavasJava has become deeply ingrained into the modern computer infrastructure. Not only does the
Java Virtual Machine
support a lot more languages than Java itself, but Java has spawned
other languages so close to itself that if you know Java you can pick up
the other languages without significant effort. C# is the most popular
of these spin off languages.
Plus, there are different versions
of Java. The Mobile Edition, used on cell phones, smart phones, and
PDAs, is a major programming language for these platforms. Each of these
platforms has its individual programming suite, and associated
language. Their second language, the Esperanto of the portable world, is
Java. Programmers that want their software to move easily between
platforms often choose to write their code in Java.
The use of
Java on servers is rife as well. Java Enterprise Edition became the most
popular use of the Java language when Java was still struggling to be
used as an applications programming language over a decade ago. Some say
that Java on the server saved the Java language. Certainly this is what
makes Java a good language to learn for professional reasons.
The Most Important ReasonThe most important reason to ignore all the hullabaloo about Java's impending demise and not worry about learning it is that:
- it is a good language that's fairly easy to learn,
- expressive enough to do a lot of different things effectively,
- easy to develop sophisticated modern programs in
- without too much work for an individual or small group of developers,
- gives access to all the important parts of the machine (graphics, sound, filesystem, peripherals)
- and what you learn travels well to other languages when you go on to learn them.
It's
not going to go away any time soon. There's too much momentum. There's
no need to worry. Ever since the launch of Java I've heard that it's
going to be gone or unusable tomorrow. History shows that just doesn't
happen to popular programming languages.
If you learn Java now, you may still be using it 20 years from now. Or 30.
When
I sat down to a card punch to write my first program 38 years ago as I
write this, the computer lab know-it-all came to look over my shoulder.
"FORTRAN!" he said. "Why are you wasting your time with
that language? It's a dead, old language. Did you know it's the
oldest
computer language? If you really want to be a programmer, you should
start right out in BAL*! That's what real programmers use, and you're
going to be behind if you waste your time on anything else."
FORTRAN
doesn't make the "top 10" in programming languages much any more, but
it gave me a good start. It's still among the most popular languages,
around #20, or just out of the top 10 if you only count general purpose
programming languages (that is, not counting scripting languages, query
languages, application-specific languages, and so on.)
And
learning FORTRAN never kept me from learning structured languages, AI
languages, Object Oriented languages, and so on. Even though my first
program included the "dreaded" GO TO statement.
There's never
been a better time to learn to program. And there's never been a better
time to learn Java (the language is in the best shape it's ever been!)
*Basic Assembly Language, a version of assembly language for IBM computers.