- 'Java is sweeping across the world so that if you go to your boss and say,
- "I'll think I'll write it in Java,"
- then your boss will be very impressed and she won't tell you,
- "Don't be silly; we don't program like that here."'
- -- TimBernersLee, keynote at JavaOne, 1996
Is Java dead?
Certainly, in the YogiBerra sense: "Nobody goes there anymore -- it's too crowded."
No, more in the Keynes sense: In the long run, all languages are dead.
Well, not yet, but DotNetWillKillJava (don't hold your breath :)
Java already has too much market penetration on the in-house server side for it to die any time soon.
You could have said the same thing about CeeLanguage
five years ago. Yes, and C's not dead either. (By the way, I'll assume "five years ago" is closer to "ten years ago" now (when Java emerged circa 1996?). Besides, I'll contend that Java's current market share in that niche is stronger than C's was.
-- Since it took a while for Java to go from being "that applets language" to a server-side mainstay, the five-years figure seems defensible.
How about "it lost its Mojo", and is just another language along with .NET, PHP, etc.
In the following discussion, resist the temptation to look at Java as just a language; remember that it's part of a system: language, VM, and class libraries. Think how inane it would be to discuss the popularity of elisp without taking into account the rest of its system: Emacs.
You can't kill Java. Think of the RAM manufacturers! They'll lose their shirts!
For me, Java will be dead when Microsoft finally pull it from InternetExplorer
. Anything after Java 1.1 should be classed as a child of Java. I don't think the Java Virtual Machine Specification deserves to share the Java name with the featurebloated continuously evolving shouldbeabletodoeverything native code reliant infestation that is the current and I suspect all future JDKs.
Java in the browser
is dead. Applets never worked well. What do you expect when you combine the collective incompetance of Netscape and Sun? ;) HaHaOnlySerious.
What big-name applications that have been written in Java?
''I don't know how you want to define "big-name", but here's a few you may recognize:
Who cares about apps
written in Java? J2EE runs scores of enterprise level web applications. Servlets redefined the way web apps work. Goodbye crappy CGI with your 'one-process-per-call' overhead. Hello easy multithreaded server-side apps.
Java on the client side can be difficult. We know this. Unless implemented carefully, it can be too slow. Often there are things to use on the client side that fit our needs better. Java does not target "packaged" mass-distributed applications, but custom software for Fortune-500-like companies. (Whether it is actually best at that is another story.)
But look around you: The whole industry is going thin-client. Browsers are becoming the ubiquitous 'client', and web services and web apps are the new 'software'. J2EE has lead the way. It won't always be at the forefront, but it has been a major factor in the speed with which the web has become a viable platform for applications.
Every so often this page shows up in RecentChanges and I rush to it in the hope that this time it turns out to be true. In the face of such persistent discouragement, can anyone offer advice on how to cope? --DanBarlow
Java may not be dying, but it's changing. And in the end, it will not be replaced by <insert superior non-mainstream language here>, but it, or it's successor, will probably be a little bit more like
<said superior language> than it is now. Cf. MainstreamInfluenceOfFunctionalLanguages
I've just now (summer 2002) decided to declare that JavaIsDead
- Most ISP's won't allow servlets because of security concerns
- Java development environments are hosed and broken. (ever tried IDEA? It's one of the best development tools out there, even compared with tools for other languages)
I argue that VisualAgeJava
was the last chance for the promise of Java to be realized. Now that VisualAgeJava
is dead, I argue that:
And IBM's EclipseIde doesn't effectively replace VisualAgeJava, because...? As a long time VA user, Eclipse is wonderful.
As for "solved better with C++", might I suggest "wishful thinking". One sometimes optimistically assumes that grass becomes greener with time. C++ isn't like fine wine, it's the same that it's always been -- which is why people switched to Java and/or C# in the first place. --StuCharlton
- Problems that can be solved using Java development tools can be solved better using C++, or even DotNet.
- Problems that required Smalltalk-style approaches can be solved better with tools like Perl, Python, Ruby, and even Smalltalk itself (Squeak!).
Ruby, definitely if it had more support, but I challenge you to write a web app in it now.
- C++ is way too complicated for what it yields, perpetuating the existence of bugs that are just awful to debug. Perl is a wonderful utility language, but not suited for medium to large projects. Python, maybe, Ruby, definitely if it had more support, but I challenge you to write a web app in it now. Smalltalk, dunno.
-- Well, things seem to have moved on since then. :) See RubyOnRails
- Well then I challenge you to not write a web app in it ...
- And for my money, VAJ is a terrible development environment. Want to use your own editor? you're screwed. Want to use a cool utility you found to format your code, or produce deployment descriptors from source files? you're screwed Want to update all your shared code with everyone else and then bring your unreleased classes back in without being forced to re-compile everything 14 times? you're screwed. I could have written some kind of novel in the amount of time VAJ has taken from my life screwing things up, crashing, rebuilding workspaces, and just generally pissing me off that IBM refuses to allow any use of 3rd party tools in their precious JDE (jail development environment). - richard kilgore
IDEs are for sissies. HaHaOnlySerious
When Vi and Notepad start offering automated refactoring and easy navigation from reference to implementation, and validate syntax as you type, and so on
, I might agree. --BrianRobinson
- vim + ctags ftw! I currently use IntelliJ IDEA at work. HORRIBLE!!!!! Eclipse is way better, but let's face it, the working set of Java is immense. IDEA, in particular, grows about 100MB per day if you leave it running. Left running for 3 days, and Java goes so ape-#### that it requires a workstation reboot to recover from. For my project, closing and reloading IDEA is a very costly operation -- with the number of files I have in my project, it takes about 30 minutes to an hour for IDEA to open. vim and ctags, however, takes all of a small handful of megabytes, which is easily swapped out if needed. It launches and stops instantly. And, ctags effortlessly allows me to locate all uses of a symbol. And it's fast. Pure bliss. Alas, I can't use vim+ctags at work, because it's not what everyone else uses, and because CLI-debugging of Java applications makes even gdb look like a diamond in comparison. FriendsDontLetFriendsUseJavaWrittenEditors?.
- As far as automatic refactoring goes, that is a nice feature to have, but is hardly a necessity. If you use a sane naming convention (where instances are named for nouns, procedures named imperatively, and functions named for the results they return), you will find that global search and replace really does cover the majority of cases of renaming an identifier. This works because you're not confusing parts of speech. Yet one more reason to use SelfDocumentingCode. -- SamuelFalvo?
I'm sure I could implement refactoring in Vim in my CopiousFreeTime
. In the meantime, this tip is limited but interesting: http://www.vim.org/tips/tip.php?tip_id=589
What the demise of VisualAgeJava
took away was incremental compilation and debug. The "ide-ness" of VisualAgeJava
didn't matter so much to me. Please identify any
other tool that lets me set a breakpoint inside a running servlet, catch the execution, and without stopping the session or the server
compile and install a change to the method(s) in question. Without that capability, I'm back to logs and restarts. (Note that incremental compile is still there in Eclipse, as is the repository, though based on CVS now
I'd bet that your true problem is a crappy application server. Assuming you start the application server in a VM with a couple JPDA options seet, using any $100 JPDA-compliant debugger, you can set a breakpoint in a running servlet without stopping the server. If you find your bug, edit the offending code. Run Ant and a few seconds later you have a fresh application ready to deploy. Here's where your real problems show up. If you have a good J2EE server, maybe ten seconds after you drop in the ear file, your changes will be running.
No, you've missed the point. VisualAge (and any JPDA debugger) allows you to modify the code but keep the currently running stack frame. That means that you don't lose your place in debugging. All of the program variables still have their values (except for temporaries within the current method) so you don't have to go through the pain of re-running your test (which often takes WAYYY longer than the application server startup).
Incidentally, restarts should not be a problem either. If your server takes more than a few seconds to bounce, you have a crappy server.
JDK 1.4-based JPDA debuggers allow ModifyAndContinue
. .NET doesn't yet, to the screams of many a VB programmer. And most commercial J2EE servers allow for one-touch application re-deployment (WebLogic
7, for example) -- StuCharlton
Has any of you ever tried JBuilder? -- AnonymousDonor
Yes. It's not bad, but unless you want a visual editor to create Swing dialogs, Eclipse and IDEA are better. I have seen several J2EE coders converting from JBuilder to Eclipse in the last couple of years, myself included.
I don't think that Java is dead, I think that JavaIsTheNewCobol
That's worse than being dead.
I am again part of a team building a trading system with Java. This is my 3rd one. I have done a lot with Java over the years and it serves me beautifully. There are good tools for it as well; IntellijIdea
is the most competent and useful piece of software I have ever used. I am not hooked on Java, by the way. I use it because there is a marketplace for it and it enables me to quickly and easily implement the object oriented designs that emerge from the code while I am working. I do whatever it takes to get the job done when I program and for the last 8 years that has been implementing stuff in Java. It works, I enjoy programming in it and I am happy. -- RodneyRyan?
Java is dead for public applets
The recent security problems with Java applets (early 2013) have people uninstalling it or switching it off on their browsers. When it becomes chore stay ahead of hackers, people start asking, "why do I need applets? What would happen if I got rid of Java?" Advice to uninstall and deactivate it appeared on many sites. It no longer carries its weight on the general Internet. Intranet? Maybe, but the public stagnation could spill over there also. Flash also has occasional security storms. However, many websites actually use it.
<<And the open-source cross-platform IDE space
Oracle being a lawyer-centric dick-wad doesn't help the language either.
Java is still the premiere non-Microsoft "compiled" language
, Php, Ruby, and other LAMP-ish languages, but if you want the "protection" of a static language, Java is pretty much the only non-MS game in town.
The closest would perhaps be ObjectiveCee
, but that's mostly used for Apple products. Either ObjectiveCee
or an open-source versions of C-sharp would be my best guess for a coming significant challenger. Java is quite alive, but it's just not considered "cool". - Jan.2014
See also: LanguageLifeSigns