

 Java is Dead; Long Live Python - Anon84
http://cafe.elharo.com/programming/java-is-dead-long-live-python/

======
cturner
I read an article on slashdot about eight years ago (antitrust trial era after
the first major ruling against) that Microsoft was dead. This reminds me of
that. I'd like to believe but this guy make a poor case.

Java is everywhere, and the VM is high performance. Its library range is the
best, except for C in some settings. The operating system wars are long over
and the language ones are becoming irrelevant - it's about VMs now and JVM is
a strong contender. One of the links off here:
<http://www.malhar.net/sriram/kilim/> show it nuking erlang under high loads
for similar concurency patterns.

I wish it were dead. I've moved myself out of the core development team at
work in order to avoid dealing with the frustrating lethargy of developing
with it. What development I now do is tooling which I do entirely in python,
using django, web2py and base libraries when I need web stuff. Python allows
me to prorgam with all the power of the unix platform even though my C is weak
and unpracticed.

But Java still has outright strengths. When support issues come up for the
main product our java source code is very readable, the team thrives in spite
of being distributed, the product is stable, those customers who need library
compatibility with us can get it with Java. Some of the python libraries are
in the lead across the board, but others are weak. Nothing in the python world
comes close to cayanne for combining simplicity and power for object
relational modeling (most of the offerings are less powerful and more
difficult to install, sqlalchemy is extremely inaccessible).

I'm expecting the classy rollout of Python 3 to kill off the other mainstream
scripting languages. But it still has large flaws. Twisted is magnificent, but
if you need to do threading python stinks even more than standard java. Also,
the 'self' problem and syntactic separations that prevent you from creating
functions inline point to a weaknses in the settlement. I think iolanguage is
the next step in the right direction. There are some areas I don't think even
that could challenge Java though - java wins when you have teams working on a
project.

~~~
mechanical_fish
You misunderstand the technical meaning of the jargon term _dead_. In a
discussion like this one _dead_ means _in stasis_.

It certainly does not mean "dead" as in "not being used". Such a term -- let's
call it "the True Death" -- would be nigh-useless in a discussion of computer
languages, because very few successful languages reach that state. The code
doesn't rot. COBOL lives. FORTRAN most definitely lives. Lisp is older than
everything and it is _very_ much alive. Pascal might be an exception: You
really never hear of anyone writing new Pascal code. Perhaps it is approaching
the True Death. Or perhaps some of the more obscure assembly languages of
decades past are Truly Dead. But I wouldn't be surprised if they weren't.
There are people writing Atari 2600 assembly language right now. Maybe even
more than there were in 1982.

The discussion is complicated by the evolution of languages and the desire to
rehabilitate old trademarks. Applesoft BASIC is far closer to the True Death
than "Basic" is, because Microsoft stole the name and applied it to a rather
different creature. "Lisp" cannot die, but you could point to one of the
thousand dead dialects of Lisp and call that dialect a "Truly Dead language".
Eventually you get trapped in a pointless semantic debate, like the one you
flirt with here: If the JVM is alive but Java is dead, is Java alive?

At any rate, now that we've established what we mean: Yeah, Java is arguably
"dead". It has reached an equilibrium where anything you might do to change
the design creates more problems than it solves: It breaks back compatibility,
or it creates an impenetrably complex monster that only a relatively small
number of people can understand. It's also very easy to argue that Microsoft
Windows "died" around the release of Windows XP: Since then, the company has
devoted uncounted thousands of programmer-hours to create an OS that much of
the market has concluded is no improvement over XP. That's what static
equilibrium looks like.

But this doesn't mean that we won't have Java and Windows to complain about
for years and years, if not decades and decades. In software the dead do not
truly die. They just stalk the earth as vampires. (I originally wanted to say
"zombies", but that's wrong. Zombies are slow and stupid. Undead languages, on
the other hand, are often amazingly competent and smart despite being
technically dead. They've got a lot of experience.)

~~~
davidw
The two variables are:

* Current usage - how much of it is deployed.

* Growth - how much it's being used for new projects, worked on, written about, etc...

For instance, Cobol is still fairly widely deployed in some environments, but
growth is probably negative, as it's being replaced by Java. Java is very
widely used, and is still probably growing, although probably not as much as
things like Ruby, which have grown a lot; which is easy when you start from a
small base.

~~~
newt0311
Actually, from a friend who actually specializes in COBOL: the number of lines
of COBOL in production use are actually increasing due to regular
maintainance.

~~~
thomasmallen

      <pedantism>
    

12% of that sentence was the word "actually." In all but the shortest
sentences, it's strange to see an adverb as the most common word.

Edit: Thought about this more, and some people almost certainly say "like"
more than any other word. (Un)surprisingly, your sentence loses little meaning
if the actuallies are replaced with likes, commas optional.

    
    
      </pedantism>

~~~
andrewdotnich
s/pedantism/pedantry/

~~~
thomasmallen
It's a word, just an obsolete one:
<http://dictionary.reference.com/browse/pedantism>

------
markessien
C++ seems to have survived it's own death, as has C, why, even VB6 has come
back for another drink after you're sure you saw it dead in the snow.

Languages don't die till everyone using them is dead. And you better burn the
books too, because some hobbyist will come along and resurrect the language if
you wait long enough.

So, however stiff it may look, ASM will continue to MOV, we'll continue to see
C around, and goto is not going anywhere.

------
sutro
Lame article. One of the strengths of Java is the very conservatism that the
author bashes. Generics may have broken backwards compatibility if you opt to
use that language feature, but the VM and compiler preserved forward
compatibility of all previously-written code, an extremely important and
considerate design goal. Just ask all the Python developers who now have to
port their 2.x code to run on the V3 engine. And what is the big benefit of
that porting effort? "A much saner string processing model based on Unicode."
Oh, you mean like the one Java has had since its 1.0 release? This article,
like most language-cheerleading flamebait, shows a deep misunderstanding about
what has kept Java so popular for so long. Keep breaking compatibility,
Pythonistas -- you'll be able to brag about the nimbleness of your language on
blogs, and you will see your language continue to be passed over by developers
who don't want to periodically rewrite their applications for marginal
benefit.

~~~
schtog
Except that there is no plan to "keep breaking the language", it is a one-time
now or never thing.

~~~
sutro
That's great. Just don't write blog posts trying to convince me that breakage
is something that makes Python better than Java when in fact the opposite is
true.

------
modoc
I'm glad Python 3.0 has come out, but that's no reason to revive the language
war. Every language has it's own strengths, weaknesses, toolkits, frameworks,
and developers. Let people use what they want.

~~~
sah
Some languages have more strengths (or more weaknesses) than others.

If you want to claim that every language is useful and good in its own special
way, you may have to accept that COBOL is primarily good at being compatible
with old systems based on COBOL, and Pascal is useful mainly for failing to
teach computer programming in the 1980s.

~~~
MrRage
How did Pascal fail to teach computer programming in the '80's? (While we're
at it, how does a programming language teach at all?) My impression is Pascal
got replaced by Java in intro to CS courses.

~~~
jefffoster
How does a programming language teach at all?

Well, it doesn't alone however the concepts that are available in a
programming language constrain your thought process. Java/Pascal is much more
constraining than something like Oz/Scheme.

~~~
MrRage
Teaching languages are stripped down on purpose, so I don't consider that a
valid criticism. Pascal was fine for teaching structured programming in its
day.

------
yters
The google timeline of "java dead" is kinda funny:

[http://www.google.com/views?q=java+dead+view%3Atimeline&...](http://www.google.com/views?q=java+dead+view%3Atimeline&hl=en)

Looks like it has been dead since 1997, and was most dead in 2003, but not by
a whole lot.

~~~
marcus
If you set the time line filter correctly you'll see it is getting deader by
the year.

[http://www.google.com/views?q=java+dead+view%3Atimeline&...](http://www.google.com/views?q=java+dead+view%3Atimeline&vwdr=January+1998+-+December+2008&btnmeta%3Dsearch%3Drestrict=Set+filter&num=5)

~~~
lacker
That's not really true - this is mostly a reflection of there being more and
more internet content every year. For example [foo bar] appears to be growing
just as much in popularity.

[http://www.google.com/views?q=foo+bar+view%3Atimeline&vw...](http://www.google.com/views?q=foo+bar+view%3Atimeline&vwdr=January+1998+-+December+2008&btnmeta%3Dsearch%3Drestrict=Set+filter&num=5)

------
lacker
Java is still the best programming language for some problems (and I say this
as primarily a C++ and Python developer). For some larger-scale projects,
performance requirements mean that scripting languages aren't going to cut it.
The decision is then between C++ and Java, assuming you are not developing on
Windows and you want a reasonably popular language. And between those two,
everything you say about how Java sucks is correct, but C++ is arguably worse.
In particular the combination of crashes without stack traces and the pain of
maintaining separate .c and .h files.

------
axod
Java is "unpopular" with people who follow the hyped languages.

That's in no way the same as it being dead. It's everywhere.

------
shimi
What's wrong about backward compatibility. When MS had to make lots of changes
to .NET 2.0 and broke pretty much every application that was implemented for
.NET 1.0 that was a major turn off, so many people found another excuse
dismissing MS. So if MS aren't backward compatibility that's bad, but if
Python that's good?

Dead languages are actually good, you can extend them while keeping the core
stable and extending them with other flavours (e.g. J2ME, Android, JSP) making
them easy be adopted to new uses.

BTW Delphi is the most backward compatibility language that I know,

------
ConradHex
I'm not a Java programmer, at least at the moment. But if what the author
writes is accurate about Java keeping all sorts of cruft because Sun doesn't
want to break backwards compatibility, then it's interesting to note that one
of Java's alleged strengths when it came out was that it kept all the good
parts of C and C++, without having to maintain backwards compatibility by
keeping the ugly parts.

------
mironathetin
We use jython in our project (thats python implemented in java). For us it has
the advantage that it easily coexists with java.

To put it bluntly: it is a mess. Indentation breaks, if you use different
editors. It is terrible not to have a compiler, because we discover so many
bugs during runtime. Not to speak of typelessness...

Loop performance of jython is a factor of 50 behind java. If the use of jython
taught me one thing it is this: Never use a scripting language for a serious
project!!! It is alright for interactive debugging (although its better to
write unit tests right from the start).

And - breaking backward compatibility is a serious step towards extinction.
Its alright for hackers, but not for projects that build on top of a large and
growing codebase.

~~~
brlewis
Wow. That makes me glad that for my own JVM work I stuck with Kawa Scheme:
<http://ourdoings.com/>

------
nihilocrat
I know what's going on behind the scenes, but I still find it funny that an
article praising Python just a tiny bit and then bashing Java is surrounded by
advertisements for Java books.

------
mdipierro
Java remains is the most popular programming language out there but the number
of Java programmers exceeds the number of jobs for available to those Java
programmers. That is not true for c++, Python, Ruby. I know because the career
center at the university I work for tells me so. The question is: do you what
to be a small fish swimming in a shrinking large pond or a big fish swimming
in a growing small pong?

------
st3fan
Oh no, it is dead _again_ !?

------
coliveira
I think the death of Java is long overdue. It will happen as soon as it loses
it corporate backing from Sun (which has its own problems nowadays). Who else
can maintain such an ugly beast as the JVM?

A nice point in the article is that many (most?) people that like Java started
programming at the time it was created. Younger people think it is too clumsy,
older people prefer C or C++. I personally started programming with Pascal and
C, and hate the way Java downplays the capacity of its users. C#, although
inheriting many of the problems in Java, is a much more interesting and
inclusive language.

------
ibsulon
The article misses the point of backward compatibility for java. Consider a
company that has desktop (Swing) applications that were written in the 1.2 or
1.3 era. That company can upgrade to 1.6, and use 1.6 applications alongside
those 1.3 applications. However, a java that wasn't backwards compatible would
either have to keep some way to identify legacy code and run the old JVM, or
they would have to force the new language into the backwards compatible JVM,
where cruft has also developed.

BTW, I haven't looked at python 3 yet. How have they adapted to two pythons on
the system?

------
alrex021
lol

# "python rocks" Says:

5y ago I switched from Java to C and Python, I’ve never regretted the
decision.”

# "Jason" Says:

Congrats… 5y from now you will still be jobless.

------
vegai
Orange is dead, long live apple!

------
vegai
Orange is dead, long live apple!

------
albertcardona
Please rephrase:

"Java is Dead; Long Live the JVM."

------
bilbo0s
Annakin: You mean using this 'Java' and 'C or C++' he could actually . . .
command . . . IBM Cell Processors. Bring multi core programming to life?

Chancellor Palpatine: 'Java' and 'C or C++', Annakin, are pathways to many
abilities SOME would consider to be . . . UNNATURAL.

Annakin: Is it possible to learn these skills?

Chancellor Palpatine: NOT from a Jedi.

or, if you choose . . .

Annakin: You . . . KNOW 'Java' and 'C'?

Emperor-Imminent Palpatine: If we wish to understand the FULL nature of the
coding universe, we must embrace a . . . a LARGER view of hacking Annakin. Not
just the DOGMATIC assertions of the Jedi.

Annakin: <Draws his lightsaber> YOU"RE the hacker everyone's been looking for.
You represent 'Java'!

Emperor-Imminent Palpatine: Are you going to kill me?

Annakin: I would certainly like to!

Emperor-Imminent Palpatine: Yeeesssss . . . I can FEEL your anger. It gives
you FOCUS!

~~~
raffi
I thought this was funny, I'm surprised it was downmoded so much. Granted it
isn't as relevant as other high thoughts expressed on news.yc--such as the
history of bagels. But... still funny.

~~~
bprater
Y!Hacking is serious business, friends.

