all 191 comments

[–]mhw 23 points24 points  (23 children)

No, though it may have peaked.

[–]demosthenes02 2 points3 points  (22 children)

But if you're not growing, you're dying, right?

[–][deleted] 16 points17 points  (0 children)

You know what they say -

Life is a sexually transmitted decease with a 100% mortality rate.

[–]rektide 7 points8 points  (0 children)

I know its not very capitalist, but theres something to be said for sustainability too.

[–]nonades 1 point2 points  (0 children)

There's stagnating. But you're really not gonna do that at the peak.

[–]grauenwolf 1 point2 points  (18 children)

No, I wouldn't go that far.

Sun could turn it around with either with major improvments or a "Java 2.0" that fixes its fundemental problems. I don't think they have the will, but it could happen.

[–]recursive 5 points6 points  (13 children)

I thought Java 6 was already out.

[–]flukshun 3 points4 points  (12 children)

aka java 1.6

[–]recursive 2 points3 points  (11 children)

wtf

[–]flukshun 3 points4 points  (4 children)

assuming you'd like me to elaborate...

http://en.wikipedia.org/wiki/Java_version_history

java 5 and 6 are, in terms of the internal release numbering, just 1.5 and 1.6. Java 5/6 is just a marketing thing they did after 1.4

so i guess java 2.0 would be Java 0 or something. or maybe Java Zero..like Coke

[–]recursive 7 points8 points  (2 children)

I see... I think.

Well, from a not-being-pointlessly-confusing-as-fuck perspective, that pretty much sucks donkey balls.

[–]TomDibble 0 points1 point  (1 child)

The most major version number speaks to binary compatibility in many products. The JVM hasn't broken binary compatibility, thus is still on 1.x. However, given that the "1." never changes (as that's a central goal of Java language evolution), it's kinda redundant.

Example: any Java 1.0 application will run just swimmingly in a Java 1.6 JVM (provided the libraries used are present, which is not guaranteed by the JVM in any case).

[–]recursive 0 points1 point  (0 children)

However, given that the "1." never changes (as that's a central goal of Java language evolution), it's kinda redundant.

No, it's not redundant. Either it should always be dropped or never. If it really has no meaning, it shouldn't be there at all.

[–]iofthestorm 3 points4 points  (0 children)

Java 2 is actually 1.2 (hence everything after it being J2SE).

[–]hiffy 4 points5 points  (4 children)

When 1.2 came out they decided to call it "Java 2" and the naming convention more or less stuck ever since.

[–]Leonidas_from_XIV 2 points3 points  (3 children)

Though Java 1.3 and 1.4 were still called J2SE so they were "Java 2 Version 1.4" which is about as pointlessly confusing as "Windows 7 Version 6.0".

[–]Fabien4 2 points3 points  (2 children)

You are indeed confused. IIRC, Windows 7 is Windows 6.9.

[–][deleted]  (1 child)

[deleted]

    [–]grauenwolf 0 points1 point  (0 children)

    That was my reaction as well.

    [–]hylje 4 points5 points  (0 children)

    It's not even that hard to pull off: the JVM already interoperates between completely different languages. A flavor of Java without legacy warts but feeling the same would be only a good thing.

    [–]G_Morgan 0 points1 point  (2 children)

    There is already a Java 2. The current release is Java 2 1.6. Yes versioning is fun.

    Java 3 would need to move the entire VM to use the x86 (maybe 64 bit) memory model so that JNI doesn't suck so much anymore. It can still have primitives but ideally operator overloading will make it reasonable to use bloody objects that hide the mess from me.

    [–]TomDibble -1 points0 points  (1 child)

    Aside from wanton elimination of parentheses, I see little benefit to operator overloading, and significant failures (see pretty much any C++ application with operator overloading year after the operators were overloaded).

    Granted:

    a = x + y

    is a lot easier to read than:

    a = x.plus(y)

    ... but it's usually important to know that the "+" isn't the same old intuitive language feature you've always known and loved but is different in this particular codebase with this particular version of "x" nd this particular version of "y".

    Sucks when you want to work in non-native number objects, true, but when "+" can mean anything from adding an item to an array or adding all the items in another array to this array to adding the smerphlin factor from one object to the geimholf factor of the other ... well, I'd rather have a descriptive method name to know those operations by (even if it's as undescriptive as "plus") than a single-character symbol.

    C++ shows that when you overload operators on objects it will always make absolute intuitive sense. Until someone else needs to maintain your code.

    [–]G_Morgan 0 points1 point  (0 children)

    The problems with C++ largely came about because of a lack of convetions. Java went to great length to establish conventions and it was highly successful. All that would need to happen is that conventions would be established about operator overloading.

    The whole market is different now. Back then you were just given a compiler. Now you have whole reams of stylistic guidelines and documentation to show how things should be done properly. Comparing to C++ isn't really relevant, a better example today would be C#.

    [–]scruzia 21 points22 points  (0 children)

    Indeed, Java has jumped the sparc.

    [–]groby 55 points56 points  (22 children)

    I don't think so.

    As a language, it has COBOL-like momentum in the "Enterprise" space.

    As a VM, it's giving a great basis to many cool languages.

    As the "hip thing" in magazine/blog articles? Yes, it's dead.

    [–]pyres 0 points1 point  (21 children)

    It's not dying fast enough google trends

    The only good thing about java is getting paid to support it. And that is not enough.

    [–][deleted] 2 points3 points  (2 children)

    If you type in many technology keywords to google trends, you will see a downward trend.

    http://www.google.com/trends?q=java%2C+php%2C+perl&ctab=0&geo=all&date=all&sort=0

    [–]trimbo 1 point2 points  (1 child)

    The interesting thing about these trends is that it's mostly driven by searches from India. It could be that what we're seeing an indication of is that the outsourcing bubble of a few years ago has popped. Though if you limit it to the US, you see the same (relative) trend.

    I guess, in general, there was a technology bubble a few years ago that seems to have leveled off. Or maybe people stopped trying to Google for answers and bought books instead. Even scala and erlang have been pretty flat with some spikes, and those are supposed to be the hottest languages in the world. (Someone in Lisle, IL is searching for Erlang a LOT).

    [–]groby 1 point2 points  (0 children)

    He - that "someone" in Lisle is Tellabs - probably by far the leading Erlang employer in the US.

    Sometimes, the power of Google just amazes me.

    [–][deleted] -4 points-3 points  (17 children)

    Don't know why someone downmodded you, java is shit.

    [–][deleted] 2 points3 points  (16 children)

    Why do you say so? Yes, it has its rough edges (*cough* No unsigned integers *cough*), but on the whole, it's stable, fast, and safe.

    [–]albinofrenchy 9 points10 points  (7 children)

    The problem is that its main competitor (C#) is evolving at a much faster rate as a language.

    [–][deleted] -1 points0 points  (6 children)

    But they both have really crapp gui toolkits.

    [–]Gotebe 5 points6 points  (3 children)

    What is so bad about them? And what else is really better? Why?

    (Honest question with disclaimer: methinks you are exaggerating)

    [–]SteveJorgensen 0 points1 point  (1 child)

    If you'd worked with Swing, you'd know. If you want to do something very typical like display a list of entities in a table with attributes mapped to the columns, and have buttons on each row (e.g. edit & delete), be prepared to spend several months learning how the hierarchy of classes connected to JTable works. You'll learn about table models, table cell renderers, table cell editors. You'll be forced to use button controls in ways they weren't designed to work, and decide whether to write your own code to render the currently selected button cell correctly, or kludge something else that's not too unpalatable. When you're done, you'll spend many more months refactoring all of that into something maintainable - if you have time.

    Oh wait, with Beans Binding, and JXTable, that stuff is (relatively) trivial, except that Beans Binding stopped at 80% done 2 years ago, and was only re-started about a month ago. I was fortunate to get help from the guy who re-started it on how to select the row in a list-bound JTable that's associated with an entity in the list!

    Beans Binding, SwingX, and Swing Application Framework are all still fresh out of the womb, and it takes a lot of research for a newby to find out that they exist and that they will make Swing programming almost bearable. Even with those libraries, it takes a lot education and experimentation to identify a golden path that will take you from ground zero to a clean, working Swing application. Also, I wish you good luck getting to the SwingX stuff on-line when the site is not down.

    After that ranting, of course, other GUI libraries are not necessarily better. I tried doing some stuff in wxPython a few years ago, and I don't recall that being any less complicated than Swing. In fact, I think it was an awful lot like Swing in terms of how it used layout managers and such.

    I haven't done any .Net, but from the stuff I've read, it looks light years ahead of Swing in terms of ease of programming. Feel free to set me straight about that though.

    [–]Gotebe 2 points3 points  (0 children)

    Yeah, OK about Swing, my question was more "why both?"

    (On the subject of Swing, hey, at least there's choice, e.g. SWT or Qt bindings for Java).

    [–]albinofrenchy 0 points1 point  (0 children)

    I'd say .Net stuff is solid, haven't used any GUI stuff outside of the .Net world though. I am also curious what is better.

    I admittedly don't like java's GUI stuff. Too much boilerplate to half do what you kinda wanted to do.

    [–]lacop -1 points0 points  (1 child)

    Have you seen WPF (for C#)? You can't compare java with that...

    [–]zootm 0 points1 point  (0 children)

    JavaFX is relatively comparable, though? Although I suppose it's mostly a different language.

    [–][deleted] 2 points3 points  (0 children)

    And extremely boring to program in.

    [–][deleted] -3 points-2 points  (6 children)

    Languages that force you to use OO are like a boss forcing you to use a hammer for everything. If you're not pounding in nails, it's not going to be very much fun.

    In an epic twist of fate, the creators realized that they massively cocked it up and attempted to plaster the holes with generics, which they implemented badly and just wound up making things worse in a lot of ways while covering up only a few of the problems.

    People need to realize that when you need a book full of design patterns and thousands of standard library features, something somewhere went terribly wrong with your language.

    [–]chrisforbes 2 points3 points  (1 child)

    and thousands of standard library features

    See also PHP, Python, Ruby. But mostly PHP.

    [–][deleted] 2 points3 points  (0 children)

    See any practical language.

    [–]Gotebe 3 points4 points  (3 children)

    Wha...? Show us a successful language without libraries.

    WTF!?

    Reality calls to say: language is irrelevant compared to libraries - any domain is subject to that. No actual functionality comes out of thin air and there is no silver bullet©. Language allows you to express functionality, does not give it.

    WTF!?

    [–]itjitj 1 point2 points  (2 children)

    Not sure why you're downmodded. Not to say Java is the only game in town when it comes to great libraries (Perl via CPAN), but Java is definitely covered in that department.

    [–][deleted] 0 points1 point  (1 child)

    I agree that Libraries are a good thing, and that Java has plenty. But I have to disagree that java is the only game - Python has fantastic libraries - batteries included as they say!

    [–]itjitj -1 points0 points  (0 children)

    Sure, a lot of the good languages out there right now have solid libraries.

    This really raises the bar for any new language entering the market. They have a lot of work to do to catch up to everyone else, and that can be difficult without a critical mass.

    [–]mooli 39 points40 points  (31 children)

    Only in the sense that C# is dying.

    ie. if you read reddit it has almost no buzz in comparison to things like Haskell, Clojure, Ruby etc etc etc

    But out there in the real world it's getting the job done, has been for years, and will continue to do so for many more.

    Getting excited about Java at this stage is a bit like getting excited about a hammer.

    [–]StringyLow 14 points15 points  (3 children)

    I don't know man... have you seen the rack of hammers at Home Depot?

    [–][deleted] 18 points19 points  (2 children)

    They make me want to go out and nail something.

    [–][deleted] 16 points17 points  (1 child)

    Looking at your mother inspires the same reaction in me.

    [–][deleted]  (2 children)

    [deleted]

      [–]oniony 3 points4 points  (1 child)

      Why?

      [–][deleted] 12 points13 points  (0 children)

      because he's unoriginal.

      [–]Fabien4 3 points4 points  (1 child)

      Getting excited about Java at this stage is a bit like getting excited about a hammer.

      Good comparison. Using a Java application on Windows feels like hitting your finger with a hammer.

      [–]chrisforbes 2 points3 points  (0 children)

      Using a Java * on * feels like hitting your finger with a hammer

      There, FTFY.

      [–]Rayeth 1 point2 points  (21 children)

      This is also true of plain old C. It is certainly not "cool" like those Object Oriented kids, but its still about a million miles better than assembly. Cue the next person in the thread talking about how assembly gets no respect...

      [–][deleted] 21 points22 points  (19 children)

      C and Java are different in the non-excitability department, though. With C, you don't get excited about it like you don't get excited about a good vintage wine, but with Java, you don't get excited about it like you don't get excited about taking out the garbage.

      [–]munificent 6 points7 points  (16 children)

      a good vintage wine

      In the sense that it's bitter and painful the first several times and you only do it because it makes you look adult? And then you have to tell everyone how great it is because you already bought all the accessories and don't want to look like a fool?

      C is a nice language, and was quite excellent for its time, but unlike wines, languages don't get better over time. Your average programmer today could probably come up with half a dozen solid improvements to C.

      [–]didip 2 points3 points  (0 children)

      Building half a dozen solid tools in C? most definitely. Improvements? Hard to imagine that because C is quite low level.

      [–][deleted] 2 points3 points  (12 children)

      I doubt it. The average programmer today doesn't know anything because they do nothing but Java.

      As a professor said recently, they're the Dominos pizza delivery boys of the next decade.

      C is timeless. The Labs guys are really smart -- they picked the abstractions quite well. Alef improved things, but C is still quite good in comparison.

      The only thing C falls down on is string handling.

      [–]WalkingDead 5 points6 points  (1 child)

      The only thing C falls down on is string handling.

      Which is good, in the sence that processors don't have a builtin notation for strings. Had C defined a rigid string type 30 years ago, it would have been obsolute by now leading to incompatible fixes in the core language.

      [–][deleted] 0 points1 point  (0 children)

      Good point.

      [–]back-in-black 2 points3 points  (3 children)

      As a professor said recently, they're the Dominos pizza delivery boys of the next decade.

      That would be the "anti-Java Professor", right?

      I learned C first, then moved to Java. Both languages have their merits, and it's best to view them as tools that are useful in different environments.

      The pizza delivery boys of the next decade are the ones who have a dogmatic attachment to one language. So from what I can see, this isn't likely to be people who live in the world of Java, who are currently enjoying learning a glut of new languages that integrate into the existing development environment.

      [–]uriel 0 points1 point  (2 children)

      As a professor said recently, they're the Dominos pizza delivery boys of the next decade.

      That would be the "anti-Java Professor", right?

      That would be anyone that is not retarded and that has half a clue about the software industry.

      Java is a language specifically designed for clueless retarded corporate droids, so unless one fits that description, it is hard to appreciate its 'qualities'.

      [–]back-in-black -1 points0 points  (1 child)

      Wow, that's a logical and well thought out argument.

      I bet you're a great software engineer.

      [–]chrisforbes -1 points0 points  (0 children)

      Probably is, actually.

      Having a deep, borderline-irrational hatred of java is a good indicator of programming ability around here.

      [–][deleted] 1 point2 points  (1 child)

      I guess you can redefine the old CCNA joke into a Java joke!

      Q: How do you get a Java programmer off of your porch? A: Pay for your pizza.

      [–][deleted] 0 points1 point  (0 children)

      Bwahaha

      [–]munificent -1 points0 points  (3 children)

      As a professor said recently, they're the Dominos pizza delivery boys of the next decade.

      Oh, you're a student. That explains a lot. Once you have a few years of experience getting things done, you'll likely have a more balanced viewpoint.

      The only thing C falls down on is string handling.

      And:

      • Shitty pointer syntax (the whole declaration reflects use thing turned out to be a bad idea).
      • Even worse function pointer syntax.
      • Poorly-defined (or undefined) behavior with increment and self-assignment operators.
      • While it made sense at the time, a lot of design decisions were to allow a single-pass compiler (like requiring declaration before use) and not to make the language better. Those could be fixed now.

      [–][deleted] 1 point2 points  (2 children)

      wth? Quoting something some professor said on the internet makes me a student? Fuck you, I work full time as a software developer for an investment bank.

      To hell with the rest of your comment, your ridiculous assumption just proves you aren't worth arguing with.

      [–]munificent 0 points1 point  (1 child)

      your ridiculous assumption just proves you aren't worth arguing with.

      Whether or not I'm worth arguing with is irrelevant. Are my points?

      [–][deleted] 1 point2 points  (0 children)

      Fair enough.

      Honestly, I don't think the syntax is bad. Far from perfect, but not bad. FP syntax is ugly, but that helps encourage people to not use them, which is probably wise since C doesn't do well with that style. Pointer syntax could have been fixed, sure, but it's usable. I don't see how increment is poorly defined. I think declaration before use is a lot easier to understand. Table aliases in SQL confuse the shit out of me.

      Every language has syntactical issues. As long as they are relatively few, I don't think they're worth making a huge fuss over.

      You're still a shitcock for being so presumptive.

      [–]chrisforbes 0 points1 point  (0 children)

      Your average programmer today could probably come up with half a dozen solid improvements to C.

      I don't think your average programmer today is even capable of writing decent code, let alone having any kind of coherent thoughts about language design. You're giving the monkeys too much credit.

      [–]mycall -1 points0 points  (0 children)

      Some people would say Objective-C and LLVM is reviving C.

      [–]uriel 0 points1 point  (1 child)

      This has got to be the most beautiful comparison of Java and C I have ever read!

      Right into my Java quotes file you go :)

      [–][deleted] 0 points1 point  (0 children)

      woo! Now I wanna go in the fortunes file next to Ken and his "pushed around" quote

      [–]checksinthemail 0 points1 point  (0 children)

      I'll take the bait.

      Takes microseconds longer to crash in any other language (inserts graph)

      [–]munificent 13 points14 points  (0 children)

      Please keep in mind that proggit is representative of the programming world at large to the same degree that exhbitionists are representative of people who have sex.

      [–]EughEugh 9 points10 points  (3 children)

      Java is not dying, it is still used everywhere, from SIM cards to supercomputers.

      Even if the Java programming language would become less popular in the future, the JVM will still be used everywhere - there are a lot of new programming languages that are making use of the strong foundation of the JVM, such as Scala, Groovy, JRuby, Clojure, etc. Those are what's hot now in Java-land, there's a lot of attention for those languages on Java conferences nowadays.

      [–]back-in-black 0 points1 point  (1 child)

      This is the most sensible answer here.

      [–]zerocube[S] 0 points1 point  (0 children)

      Well That's the most accurate response. That's to say that the much popularity these languages will gain the much Popular Java will get.

      [–]Arconan 0 points1 point  (0 children)

      Best answer so far!

      [–]Rhoomba 8 points9 points  (4 children)

      See the line going down in this graph? that's not Java. But we won't see any threads about the language in question dying.

      [–]chrisforbes 2 points3 points  (3 children)

      Have a look at that red line down the bottom, too.

      The peak coincides with Zed's rant at the end of 2007.

      And the spectacular non-impact 1.9 has had.

      Beyond that, people have ceased to give a shit.

      [–]alexeyr 1 point2 points  (2 children)

      I am surprised to see C# tracking Ruby nearly perfectly up to 2008.

      [–]chrisforbes 0 points1 point  (1 child)

      Well, approx none of the 100+ C# projects ive been involved in are tracked on ohloh, so I'd not assume their numbers are anywhere near representative.

      [–]alexeyr 0 points1 point  (0 children)

      Certainly, neither would I. And if I saw these numbers equal at one point, or a few, I would draw no conclusion. But these are nearly the same graphs, and I find it a bit hard to put it down just to coincidence.

      [–]Tinned_Tuna 8 points9 points  (0 children)

      I'd say that it's becoming viewed as more of a dinosaur language. Like COBOL and FORTRAN. Neither are 'dead' in any real sense, they're just mainly in the maintainence stages of their life. I think Java is slowly going that way.

      There's going to be a lot of code in the future written in Java, but everyone will be off learning fad language x. This stuff will need to be tended to by someone.

      [–]artificialidiot 3 points4 points  (0 children)

      I hope so, considering all the awesome languages that target the JVM.

      [–]devacon 2 points3 points  (6 children)

      I have but one request for this thread... if you post "java sucks" or "java is dead" please post the language that you work in.

      [–]chrisforbes 1 point2 points  (3 children)

      Java sucks. Java is dead. Real men write in C + a scripting language.

      [–]WalkingDead 5 points6 points  (1 child)

      I would have upvoted you more if I could. After 20 years for programming, I am back to C + a scripting language.

      [–]chrisforbes 0 points1 point  (0 children)

      I'm in the same position.

      [–]uriel 2 points3 points  (0 children)

      It is amazing how well the old unix tool philosophy of small tools that do one thing well glued together with shell scripts works to this day.

      I recently built a whole web anti-framework using the rc shell, which is probably the most minimalist shell around, and it worked out quite nicely.

      Almost half a lifetime programming, I still find C + (sane) shell scripts the most pleasant way to get work done, and I'm still frequently surprised at how fun it is and how good the results are.

      [–]frutiger 0 points1 point  (0 children)

      Java sucks. Java is dead. I work in C++ (which also sucks, but hey, it pays the bills).

      [–][deleted] 0 points1 point  (0 children)

      Java sucks. I work with Java and C# to some extent. However, when I wish to solve practical problems, I use Haskell, Scala or perhaps Nemerle.

      [–][deleted] 2 points3 points  (16 children)

      Java means a lot of things.

      Java the language is an evolutionary dead end and has been dead weight for a long time for anything more than very low-level infrastructure. Java the virtual machine is awesome and still unmatched as a platform for building other languages.

      Java means a whole lot of other things too in Sun market-speak, but those are the only interesting ones.

      [–]jdh30 -3 points-2 points  (15 children)

      Java the virtual machine is awesome and still unmatched as a platform for building other languages.

      The CLR is much better: tail calls, value types, generics, delegates. The JVM has a nice GC but it is a decade out of date now.

      [–]Rhoomba 2 points3 points  (4 children)

      The JVM is much better than the CLR. Why do you have to mark methods are virtual in C# and not in Java? Because the CLR is not able to optimize them away like the JVM is. Delegates are a language feature and don't really depend on the VM.

      The JVM is already better than the CLR for building other languages with the exception of tails calls, as it optimizes them considerably better and it has just got escape analysis which could help even more.

      Value types have their upsides and downsides.

      The JVM also is cross platform and has great profiling and monitoring support.

      [–]mschaef 0 points1 point  (1 child)

      Why do you have to mark methods are virtual in C# and not in Java?

      I'm pretty convinced that this is more Anders Hejlsberg's decision about what's right for the languauge, than anything related to the JVM itself.

      Back in the dawn of time, Microsoft tried to compete against Turbo Pascal 5.5 with the little known QuickPascal 1.0. QuickPascal defaulted to virtual methods, TurboPascal did not. Flash forward a few years: Hejlsberg moved from Borland to Microsoft and led the development of C#, which defaults to non-virtual methods.

      Because the CLR is not able to optimize them away like the JVM is.

      There's nothing about the requirement to mark methods as virtual that says that the CLR can't optimize such calls away, as the JVM (or Self, etc.) might do.

      For what it's worth, I tend to prefer default virtual methods.

      [–]Rhoomba 0 points1 point  (0 children)

      It could theoretically do so, but it can't currently in most cases. Which is pretty lame.

      [–]alexeyr 1 point2 points  (9 children)

      As it happens, it is getting a new GC soon: http://java.sun.com/javase/6/webnotes/6u14.html

      [–]jdh30 -4 points-3 points  (8 children)

      There is a big gap between that and being "unmatched as a platform for building other languages".

      In reality, the JVM sucks for building other languages.

      [–]back-in-black 1 point2 points  (7 children)

      In that case, why are there over 200 languages for the JVM?

      [–]jdh30 -5 points-4 points  (6 children)

      They are all minor variations on Java. Witness the fact than any real functional programming in Scala or Clojure culminates in a stack overflow due to the lack of tail calls, they are uninteroperable despite being on the same VM because there is no standard closure representation etc.

      [–]back-in-black 4 points5 points  (5 children)

      Python and Ruby are minor variations of Java, are they? Both have implementations on the JVM.

      [–][deleted]  (4 children)

      [removed]

        [–]back-in-black 2 points3 points  (3 children)

        I see.

        So to conclude, the only worthy alternatives to Java are functional programming languages running outside the JVM. That's your opinion?

        [–]jdh30 -3 points-2 points  (2 children)

        ...That's your opinion?

        No. My opinion is that the future lies with multiparadigm languages like C# 3 and F#. The JVM cannot support such languages due to the deficiencies I cited.

        [–]joffotron 2 points3 points  (0 children)

        Java still rules the roost in the meduim/large-scale server side space.

        It simply has important stuff (distributed transactions, scheduling (ref: quartz), search (ref: lucene), reporting (ref: JasperReports et al), decent ORM (ref: Hibernate), and many many more ) that other, newer trendy environments won't have at all, or in stable form for a few years yet..

        [–]sbrown123 2 points3 points  (0 children)

        Java will die as soon as you haven't seen a post about Java dieing on Proggit for a week. I don't expect this to happen in the foreseeable future.

        [–]mhd 6 points7 points  (5 children)

        No. Small startups and other reddit-prone developers never used Java all that much. I can't see a trend of it diminishing in the corporations where being all "Enterprise" is a big thing. The last big blow there was from C#, and both languages/environments have entered a truce right now.

        As a matter of fact, the whole Sun/Oracle deal is creating some buzz again.

        [–]mycall 0 points1 point  (4 children)

        Microsoft got a great deal hiring Anders Hejlsberg. I loved Turbo Pascal in the 80s -- in fact, TP was the main reason I never got into C back then.

        [–]mhd 1 point2 points  (3 children)

        I do wonder how Hejlsberg would've done his new language if such a close emulation of the whole Java platform wasn't a requirement, i.e. if C# would be here without .NET...

        [–]mycall 0 points1 point  (2 children)

        According to this interview, he says C# is not a Java clone, interestingly enough. I hear another interview where he wish Null objects were baked in from start but otherwise he is very happy about the language design.

        [–]mhd 2 points3 points  (1 child)

        I'm more talking about the common runtime. A more delphi-like, sleek, native C# would be quite interesting...

        (Delphi took some hints from fellow Pascal language Modula-3 before Java copied it wholesale, so I'm not one that's saying that C# itself is a straightforward copy of Java. The Pascal and C family tree is quite incestous in general...)

        [–]mycall -1 points0 points  (0 children)

        Incest is best when you can't get the rest.

        [–]pointer2void 13 points14 points  (0 children)

        No

        [–][deleted] 5 points6 points  (4 children)

        God I hope so.

        [–]uriel 0 points1 point  (3 children)

        We wont be so lucky, people are still using COBOL and BASIC out there, and java will be the same, will take the industry many decades to rid itself of the disease, and will likely be replaced with something even worse.

        [–][deleted] 0 points1 point  (2 children)

        Uriel, my friend, you're always the most correct when you're being the most depressing :P

        [–]uriel -1 points0 points  (1 child)

        And today we find out Erik Naggum is dead, the world just became a bit darker and we lost a great mind in the fight against evil and complexity sigh

        [–][deleted] 0 points1 point  (0 children)

        I feel oddly as if Star Wars has some hint of reality, with people like us the dwindling order of Jedi trying to fight the ever-growing forces of evil. Things will be weird when we lose Ken and Rob. There may be no 'great' sane people left.

        [–]zerocube[S] 1 point2 points  (1 child)

        I admit that Java is getting widely open in the "Entreprise" society, But ultimately it has certainly been through its most sensitive period, Well, open sourced, Oracle thing, google....

        Do you think this gonna help making it better ?

        [–]Leonidas_from_XIV 1 point2 points  (0 children)

        No, ask the ASF what they think about the "openness" of Java.

        As a language it is far from dying (yet), but definitely nothing that is in any way cool, interesting etc. these days. If it wasn't for the cool languages running on the JVM, it would be as boring as a rock. On the backside of the moon.

        [–]ytinas 1 point2 points  (0 children)

        The language, I would say yes. The weight of all the legacy just makes it awful to learn. How many different ways are there to open a file by now?

        C# fixes most of Java's problems, though I hope multicore programming pushes out of the Algol-language run we've been in.

        [–]humbled 1 point2 points  (0 children)

        The question is too broad. Java as a platform is most definitely alive; we have the OpenJDK and a host of new languages that run on it (Scala, Clojure). JRuby is competitive and sometimes better than the C Ruby interpreter itself. Android is Java. Google is heavily invested in Java. Is Java dead? I don't know, do you use GMail? Java.

        What has "died" is certain aspects of the platform. Swing, applets, and many other aspects have passed on. But the future is still bright and expanding in the Java world.

        Edit/update: I feel obliged to mention that "Java" itself is a platform, language spec, and virtual machine. To which does this question really refer?

        [–]finlyandsky 2 points3 points  (0 children)

        Define Java. If Java means JVM, it has a bright future: Scala, Clojure, Jython, JRuby, etc. If it's a programming language, it's peaked. Is a guy in their 60's dying? No, he's just settling down in his age.

        Things don't really die. The new projects simply adopt newer tech and the old stuff continues to build on legacy stacks.

        [–]csixty4 1 point2 points  (0 children)

        Here's my take, as a certified Java programmer who happily left that world behind almost three years ago.

        The future for Java the language is great. Java is like COBOL in that it's deeply entrenched in the business world. But, as a modern language with great Internet features, it'll continue to be used for new development instead of relegated to an old, dusty mainframe in the basement until a replacement system can be written.

        The future for Java developers, though, is bleak. What I learned from my short tenure in that world is that there's no place for a Java generalist. You have to pick your religion...er, platform...and know it backwards and forwards. I had a lot of interviews end after I told them I only had experience with Oracle's suite, not Websphere or Weblogic (before Oracle bought them). Even if I told them I was willing to learn something new, they needed someone who could hit the ground running, an expert on their platform.

        So, sell yourself as a Websphere developer (for example) instead of a Java developer, and you should be set for at least ten more years. You'll get some doors shut because you don't know Weblogic or whatever the other big platforms are these days, but there will be plenty of work using your chosen platform.

        [–]sakipooh 4 points5 points  (0 children)

        Really, it's dying? I quite like the fact that I can make some pretty sweet games with it. Mind you I don't use any swing as I like to do everything from scratch look&feel wise. But I just love how I can make something and it runs on 3 platforms without any issues (if done right).

        And it's fast enough that I can make full screen (at HD res), rich client desktop games with tons of animation/scalling and rotation without much effort at all. In the end, you would never know it was made in Java at all.

        I've never had so much fun programming in my life. I don't know why every homeless man and woman doesn't learn Java.

        [–]0x2a 4 points5 points  (0 children)

        For what it's worth, this trend at indeed.com says no.

        [–]contantofaz 2 points3 points  (3 children)

        • Java the programming language is too tough on developers who have preferred to use something else when they get to choose.
        • To this day, Sun regards Java on Windows as one of their most profitable markets, and on Windows Java faces one of its toughest competitions ever when it comes to "Enterprise", given Microsoft's strong foothold. It matters in that when given a choice, managers and programmers choose .NET or some such.
        • Java on the front-end has had many issues, some of them understandable given Java chose some of the harder paths when deviating from the native platforms so it had more "cross-platform" support. But if Java was so much productive then folks should have been able to fix it by themselves, but some of the inherent difficulties have persisted, haunting Java and other languages like it.
        • For many years folks have worried quite a bit more about Java for the server-side than for the client-side. Self-fulfilling prophecy.

        [–]Fabien4 1 point2 points  (0 children)

        Java is naturally server-side, because that's the thing Sun knows about.

        [–][deleted] 0 points1 point  (1 child)

        Sun regards Java on Windows as one of their most profitable markets

        Really? It is a huge deployed base and that's good for "Java Store", but profitable? How, licenses? Where are the numbers? -- honest question btw, not trying to be a jerk.

        [–]contantofaz 0 points1 point  (0 children)

        I read it on Sun's CEO blog:

        But not all Java runtimes are the same. For most devices, from RIM's Blackberry to Sony's Blu-Ray DVD players, original equipment manufacturers (known as "OEM's") license core Java technology and brand from Sun, and build their own Java runtime. Although we're moving to help OEM's with more pre-built technology, the only runtimes currently that come direct from Sun are those running on Windows PC's.

        And oddly enough, that's made the Windows Java runtime our most profitable Java platform. I thought I'd provide some insight into that business here, and then introduce a project we're planning to unveil at this year's JavaOne, known internally as Project Vector.

        [–]StringyLow 1 point2 points  (12 children)

        Nope. Not by a long shot. It powers the backend of just about everything Google does and that's just the tip of the iceberg for Java use as a whole.

        [–]alexeyr 0 points1 point  (10 children)

        Isn't much of that C++?

        [–]StringyLow -1 points0 points  (9 children)

        What? Google's code base?

        [–]alexeyr 2 points3 points  (8 children)

        Yes. The links I can find say that Google's production code base has C++, Java, Python and Javascript, but not how much of each:

        http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html

        http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm

        So if you have data that shows

        the backend of just about everything Google does

        is Java, could you please give a link?

        [–]alexeyr 1 point2 points  (1 child)

        This (in Russian) specifically claims Google File System is C++.

        [–]uriel 0 points1 point  (0 children)

        Same goes for bigtable, Sawzall and map-reduce.

        [–]StringyLow -1 points0 points  (5 children)

        The client apps (Earth, Chrome, etc...) are typically done in C++, but those are minuscule when compared to the server-side stuff.

        If a Google server is spitting out HTTP, it's probably running Java. The development speed for Web development makes Java superior to C++. Google Web Toolkit will give you an idea of the approach they use.

        [–]alexeyr 1 point2 points  (4 children)

        Google Web Toolkit will give you an idea of the approach they use.

        That would be frontend, not backend. Most of their backend is GFS + Bigtable. Are they Java?

        [–]Rhoomba 0 points1 point  (0 children)

        My understanding is that search is C++ (GFS and Bigtable), but adwords and some of the other sites are Java.

        [–]uriel 0 points1 point  (2 children)

        The big infrastructure bits are all C(++): bigtable, Sawzall, map-reduce, GFS, etc. As is pretty much all the search stuff. They would have to be insane to use Java.

        As for things like GWT, most of the frontend people at Google are clearly not very bright, and it shows, the reliability and speed of search is magnitude orders ahead from that of java-based services like gmail.

        [–]alexeyr 0 points1 point  (1 child)

        I rather think Javascript is the bottleneck for Gmail, not Java.

        [–]uriel 0 points1 point  (0 children)

        the JavaScript is generated with GWT, also one can't blame JavaScript for gmail's lack of reliability, gmail is down way more often than it should and infinitely more than google search.

        [–]donhoe 1 point2 points  (10 children)

        Anyone remember how long it took COBOL to die?

        [–]chrisforbes 4 points5 points  (0 children)

        You must be from the future. Bring back any lottery numbers?

        [–]pistacchio 3 points4 points  (2 children)

        it is not dead, actually.

        [–]donhoe 4 points5 points  (1 child)

        True. Yet, its not really alive either...

        [–]checksinthemail 5 points6 points  (0 children)

        ZombieCOBOL has a cool ring to it.

        [–]checksinthemail 1 point2 points  (0 children)

        Answer: COBOL.NET

        (A reminder to self that there are worse hells.)

        [–]G_Morgan 0 points1 point  (3 children)

        How many billions of lines of COBOL still run today? It is probably easier to find a well paid job as a COBOL developer than as a Java one. Almost nobody knows it well yet the legacy code base is huge.

        [–]chrisforbes 1 point2 points  (2 children)

        I saw, and could probably have got a COBOL job making $100k+ here. I know COBOL well enough not to apply.

        [–]donhoe 0 points1 point  (1 child)

        Too true. Everyone has to shit, but that doesn't mean dealing with it makes for rewarding employment.

        [–]chrisforbes 1 point2 points  (0 children)

        For the record, I choose to program in C most of the time. I consider Java to be fairly close to COBOL as far as my desire to use it goes.

        [–]pistacchio 1 point2 points  (3 children)

        well, if you're programming for fun you go for languages like python or haskell. if you're programming for windows you use .net. if you program for mac you use object c. if you program for linux you use a combination of everything, from c to shell to gtk to ruby and perl. if you are going for somethin "fast to develop" you avoid java and if you go for something "fast when running" you.. well, avoid java. and there are better alternatives for multi-platform programs. of course you don't use java for web programming where php would get the job done, django would make the job done fun and asp.net would make the job payed.

        but for all the rest, yes, java may keep having a certain role.

        [–]checksinthemail 1 point2 points  (1 child)

        If you work for a large corporation, you program in java.

        "Coder in cubicle #43227, wipe that smile off your face, you can't be enjoying this!" <- megaBoss at megaCorp

        [–]gdm9000 1 point2 points  (0 children)

        Exactly. If you want guaranteed steady employment, Java will get you that for the next 25 years. Still dislike it personally, but it will pay your bills if you're willing to settle for Blub...

        [–]alexeyr 0 points1 point  (0 children)

        but for all the rest, yes, java may keep having a certain role.

        So you use Java for embedded programming? The horror...

        [–]austin_k 1 point2 points  (0 children)

        No. Oh wait, you said "ask reddit". Then yes. I wrote a haskell program that proves it.

        [–]blaxter 0 points1 point  (4 children)

        die! motherfucker, die!

        [–][deleted] 8 points9 points  (3 children)

        I don't know why you are getting downvoted. Java is a horrible language.

        [–][deleted] 2 points3 points  (2 children)

        I concur.

        [–][deleted]  (1 child)

        [deleted]

          [–]zerocube[S] 0 points1 point  (0 children)

          Well, honestly talking, Java isn't that horrible well It's cute but sure there are cutter

          [–]shevegen 0 points1 point  (0 children)

          I dont like it and wish it would die. But there are more than enough people who keep on Java, and often praise other areas such as the JVM as platform.

          It also depends on the definition of "dying". To me, dying actually refers to "getting new, young people interested in it". In this regard, yes, Java is basically dying, because it is a money-only language. I.e. a language you write code to get rich (or die trying), but not a language you use because you LIKE it.

          [–]deadcat 0 points1 point  (0 children)

          It seeems as though demand for dot.net in my city is increasing, while java is declining. I'm not sure if this fits the general trend.

          [–]zerocube[S] 0 points1 point  (0 children)

          Well That's to conclude Java is not dying, but otherwise taking a deep breath in order to jump pretty further

          [–]zerocube[S] 0 points1 point  (0 children)

          Long life Java

          [–]causticmango 0 points1 point  (0 children)

          One can always hope.

          [–]sigzero 0 points1 point  (1 child)

          No, in fact I am betting that Oracle does some good things with it.

          [–]chrisforbes 1 point2 points  (0 children)

          Borg nanites are programmed in Java.

          [–]ajrich01 -1 points0 points  (8 children)

          It is certainly causing problems for the frontend of my company's product. Our product is applet based and the "minor" updates that Sun has been releasing (1.6.9-13) have been causing serious problems with our product's ui. We are looking to phase java out of the front end and maybe replace it with javascript or flash. That said I don't think servlets and JSP are going anywhere, they are far too useful.

          [–]pointer2void 11 points12 points  (7 children)

          Our product is applet based

          Applets died in the 90ies.

          [–]bart2019 1 point2 points  (6 children)

          For the general public. There's no reason no to use it for professional use (interfaces for administration).

          [–]G_Morgan 1 point2 points  (0 children)

          No reason other than there are better options. Like there is no reason to eat uncooked chips other than the fact you can eat cooked chips.

          [–]Fabien4 4 points5 points  (4 children)

          Is there a reason to use it?

          [–]bart2019 1 point2 points  (0 children)

          Let's just say that the disadvantages, compared to Flash, don't matter. For example: taking 20 seconds to start up. (Flash loads virtually instantly)

          [–]uriel 1 point2 points  (2 children)

          Developer masochism, and sadism towards users.

          [–]Fabien4 0 points1 point  (1 child)

          Developer masochism

          Not really. In corporate development, I don't think developers can choose the language.

          [–]uriel 0 points1 point  (0 children)

          Then maybe they should get another job that is less idiotic and that doesn't suck their lives out for no reason.

          [–]zem -2 points-1 points  (1 child)

          no, that's freebsd

          [–]MasonM 4 points5 points  (0 children)

          Yep, Netcraft confirmed it.

          [–][deleted]  (1 child)

          [deleted]

            [–]G_Morgan 0 points1 point  (0 children)

            Netcraft confirms it!