: '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: * LimeWire - front end for the file-sharing gnutella network * EncyclopaediaBritannica's 2003 suite of CD and DVD products * A number of successful JavaIde''''''s: IntellijIdea, EclipseIde, TogetherJava, etc.'' * RedStorm's PC game ShadowWatch * The PerforceVersionControl client (P4V) * Minecraft ------ 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 , but it, or it's successor, will probably be a little bit more ''like'' than it is now. Cf. MainstreamInfluenceOfFunctionalLanguages. --FalkBruegmann ------ I've just now (summer 2002) decided to declare that JavaIsDead because: 1. JavaAppletsSuck 2. Most ISP's won't allow servlets because of security concerns 3. 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: * 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!). ''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'' : 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. ''Ruby, definitely if it had more support, but I challenge you to write a web app in it now.'' -- 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.'' -- AnonymousDonor 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.'' -- AlexeyVerkhovsky ---- 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. ''Except for speciality, mainly in-house applications, Java applets never did get much use. Due to issues with mobile devices, Flash is on its way out too. Both are being replaced by HTML5 and Javascript. Of course, Java is still (as of 2013) very strong in the enterprise application and server-side spaces.'' <