Slashdot Mirror


Oracle Releases Java 10, Promises Much Faster Release Schedule (adtmag.com)

An anonymous reader quotes Application Development Trends: Oracle announced the general availability of Java SE 10 (JDK 10) this week. This release, which comes barely six months after the release of Java SE 9, is the first in the new rapid release cadence Oracle announced late last year. The new release schedule, which the company is calling an "innovation cycle," calls for a feature release every six months, update releases every quarter, and a long-term support (LTS) release every three years. Java 10 is a feature release that obsoletes Java 9. The next LTS release will be Java 11, expected in September. The next LTS version after that will be Java 17, scheduled for release in September 2021...

The six-month feature release cadence is meant to reduce the latency between major releases, explained is Sharat Chander, director of Oracle's Java SE Product Management group, said in a blog post. "This release model takes inspiration from the release models used by other platforms and by various operating-system distributions addressing the modern application development landscape," Chander wrote. "The pace of innovation is happening at an ever-increasing rate and this new release model will allow developers to leverage new features in production as soon as possible. Modern application development expects simple open licensing and a predictable time-based cadence, and the new release model delivers on both."

This release finally adds var to the Java language (though its use is limited to local variables with initializers or declared in a for-loop). It's being added "to improve the developer experience by reducing the ceremony associated with writing Java code, while maintaining Java's commitment to static type safety, by allowing developers to elide the often-unnecessary manifest declaration of local variable type."

134 comments

  1. 6 Months? by Anonymous Coward · · Score: 2, Insightful

    Is this Oracles attempt to finally destroy Java for good? How enterprise friendly...

    1. Re:6 Months? by Z00L00K · · Score: 3, Insightful

      The 'var' that exists in C# is one of the worst ideas ever and the fact that Java didn't have it was one of the benefits of Java.

      'var' is an item for lazy coders.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    2. Re: 6 Months? by Anonymous Coward · · Score: 0

      It was required to maintain compatibility with VB.NET when the .NET framework was released.

    3. Re:6 Months? by angel'o'sphere · · Score: 1

      'var' is an item for lazy coders.
      Please explain ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:6 Months? by Anonymous Coward · · Score: 1

      So you'd prefer to write code of the form

      FooBarObjectWithALongAssName foo = new FooBarObjectWithALongAssName();

      Rather than

      var foo = new FooBarObjectWithALongAssName();

    5. Re:6 Months? by ChatHuant · · Score: 0

      'var' is an item for lazy coders.

      'var' is necessary for anonymous types, which can be very useful in some scenarios. I do discourage lazy use of var for declaring instances of known types though.

    6. Re:6 Months? by ChatHuant · · Score: 2

      In my team, I allow using var in this case; however

      var foo = GetFooBarObjectWithALongAssName();

      is not allowed, because it makes maintaining the code more difficult.

    7. Re:6 Months? by Z00L00K · · Score: 2

      And why would you want anonymous types - it's making it just a lot harder to understand the solution and also harder to do code analysis.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    8. Re:6 Months? by ChatHuant · · Score: 0

      And why would you want anonymous types

      It's another tool in a programmer's toolbox; if used properly, it saves time and effort. It saves you from a proliferation of classes that will only be used once, in some method scope. Having to distinguish for example between class Employee; class EmployeeDataFromDatabase; class EmployeeFilteredBySalary; class EmployeeWithSalaryAndBonus etc will NOT help with maintainability.

      The compiler also defines GetHashCode/Equals for you implicitly, so you can use anonymous types in LINQ queries with less bother.

      it's making it just a lot harder to understand the solution

      Anonymous types are much better than for example Tuples for understanding code; compare

      if (employeeAsAnonymousType.bonus < 10000) {...}

      to

      if (employeeAsTuple.Item1 < 10000 ) {...}

    9. Re:6 Months? by PmanAce · · Score: 0

      Speak for yourself. It is not an item for lazy coders, if I can write less code, the better. Having to write twice in most cases the type to declare a variable, it's so antiquated! The compiler already knows the type, and so should you! You should already be writing clean code anyways, method names should be concise and clear.

      --
      Tired of my customary (Score:1)
    10. Re:6 Months? by PmanAce · · Score: 0

      Wrong, why would I need to declare a class for a one time use in the same context? I had to do something similar just this week, create an anonymous object comprising of 2 fields from a class that had 10+ more but didn't need them.

      --
      Tired of my customary (Score:1)
    11. Re:6 Months? by Anonymous Coward · · Score: 0

      And, ladies and gentlemen, this is why so much software is such shit: hiring decisions made by idiots.

    12. Re:6 Months? by Anonymous Coward · · Score: 0

      Don't have to use it. And it's just a shortcut to avoid having the type on both left and right-hand sides when declaring and instantiating in one statement. Hopefully you appreciate it's still static-typing and gets inferred by the compiler. I'd get out more if that really one of the worst ideas ever.

      Writing terrible code is a bad idea; typing less isn't necessarily a bad idea.

    13. Re:6 Months? by Anonymous Coward · · Score: 0

      Idiot. Do you not understand OOP?

      You don't need var. Just declare the variable with the highest superclass, e.g., Employee empl = ..., or if that doesn't work then do Object foo = ....

      You never need var.

    14. Re:6 Months? by Anonymous Coward · · Score: 1

      Easy: He's trolling. var is actually one of the best features in Java, just as auto is one of the best features of modern C++. Anyone who says otherwise is trolling.

    15. Re:6 Months? by ls671 · · Score: 1

      I agree, in Java, it is recommended to declare variables as Object since it is an OO language. And this works since java 1.0!

      Here is how I do it:

      Object locale = new java.util.Locale("US");
      Object count = new Integer("0");
      Object lowerCase = "USA".toLowerCase();

      This way, you will never encounter type problems!

      --
      Everything I write is lies, read between the lines.
    16. Re:6 Months? by phantomfive · · Score: 1

      How on earth do you find a C# dev that doesn't use var ever?
      Maybe you should have just ended the interview after they said they use C#. That's just as arbitrary but more likely to yield good results.

      --
      "First they came for the slanderers and i said nothing."
    17. Re: 6 Months? by Anonymous Coward · · Score: 0

      I donâ(TM)t write any of that more that once, I can copy/paste object names. Are you such a fucking moron you type everything out over and over?!

    18. Re:6 Months? by radarskiy · · Score: 1

      Idiot. Do you not understand OOP?

      You declare the variable as the superclass when you want polymorphism. In ChatHuant's example, only inheritance is desired.

    19. Re: 6 Months? by Anonymous Coward · · Score: 0

      Holy shit you are a moron.

    20. Re:6 Months? by mikaere · · Score: 0

      I call bollocks on this. I use var all the time in C# - it simply does not hinder understanding at all. If you adhere to principles of clean code then your methods should be small and entirely focused on one thing (aka Single Responsibility). And, of course, the variable names should clearly indicate their role or purpose. Repeating the in the variable declaration simply adds noise (making the code dirtier, not cleaner).

      Let me guess - you love using static method calls and can't see the point of unit testing ?

      --
      It's good luck to be superstitious
    21. Re:6 Months? by ndykman · · Score: 0

      For the same reason Scala and Go has them, when dealing with functional programming with classes it is really useful to select and filter only the wanted properties of objects (possibly with multiple different types, mind you) without having to declare every possible permutation of them as it's own class. It's still type checked and you don't lose type safety. There's more advanced uses as well.

      I know it is easy to think C# must be bad because of Microsoft, but it is a very well designed language and other languages have adopted certain aspects of it because they are useful and aid developer productivity.

    22. Re: 6 Months? by Anonymous Coward · · Score: 0

      You are a fucking moron. I work on all sorts of languages and the ones without inferred types are a pain. You gain nothing from typing out the full, awful, type twice on the same line. Zero.

    23. Re: 6 Months? by Anonymous Coward · · Score: 0

      So you arenâ(TM)t a developer I take it? I write for all sorts of languages, the absurd verbosity of Java makes it more difficult to write and maintain than languages with modern constructs like car.

    24. Re:6 Months? by angel'o'sphere · · Score: 1

      Well,
      I just tried it, but

          System.out.prinline(locale.toLowerCase());

      does not compile ... can you tell me why?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    25. Re:6 Months? by angel'o'sphere · · Score: 1

      You don't know what var is about ... makes you look like an idiot.

      No var:

              HashMap<String,Employee> employeeByName = new HashMap<String,Employee>();

      Why do I have to write the left hand side before employeeByName when the compiler and a human reader implicitly sees that the type should be "HashMap<String,Employee>" ?

      Hence we like to write:
       
              var employeeByName = new HashMap<String,Employee>();

      And all that has nothing to do with supertypes or inheritance ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    26. Re:6 Months? by Anonymous Coward · · Score: 0

      Makes interviewing new devs easy.
      Interviewer: how would you use var in code?
      If the answer is anything other than: I wouldnt.
      You end the interview right then

      Your boss should fire you.

    27. Re:6 Months? by ls671 · · Score: 1

      Sure! It is easy!

      Do:
        System.out.println(locale.toString().toLowerCase());

      aahhh... beginners that weren't there circa 1.0! :)

      --
      Everything I write is lies, read between the lines.
    28. Re:6 Months? by Anonymous Coward · · Score: 0

      It's bitztream the autism-hating, custom EpiPen-hating, Musk-hating, Qualcomm-hating, Firefox tabs-hating, Slashdot editors-hating Slashdot troll!

    29. Re:6 Months? by angel'o'sphere · · Score: 1

      Hehe, nice try :D

      Actually my original code would have compiled, because there is a println() method that accepts Object's and calls toString() on them ... the parent was just an idiot I liked to tease.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    30. Re: 6 Months? by Anonymous Coward · · Score: 1

      var is NOT a variant or dynamic. It is type inference.

    31. Re:6 Months? by ls671 · · Score: 1

      Nope, your code would never have compiled.

      System.out.println(locale.toLowerCase());

      wouldn't have compiled since .toLowerCase() is undefined for Object types.

      This would have compiled although and I understand that this was what you were trying to say:

      System.out.println(locale);

      --
      Everything I write is lies, read between the lines.
    32. Re:6 Months? by angel'o'sphere · · Score: 1

      Ah, right, that actually was my original point.
      However your "object.toString()" misslead me again ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    33. Re:6 Months? by Dog-Cow · · Score: 1

      If that makes your code more difficult to maintain, it was already a mass of shit.

    34. Re:6 Months? by Z00L00K · · Score: 1, Insightful

      var is about creating code that is harder to read and maintain. The type isn't clear until it's assigned and that is a ticking bomb.

      Maintainability of the code is essential in the long run. If you have to write some extra at the declaration is not a major issue.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
    35. Re:6 Months? by Anonymous Coward · · Score: 0

      Considering that C# has had var for over 10 years now, it's hard to imagine life before it, particularly with generics (which can make type names really long).

      But the reason it's necessary is that some types are impossible to utter, rendering it the only way to declare variables including that type. That is, C# does not have syntax to name anonymous types, so any type containing an anonymous type cannot be named.

      For example, take this statement:


      var join =
              from x in X
              from y in Y
              select new { x, y };

      That statement is impossible to write without var because new { x, y } creates objects of an anonymous type.

      dom

    36. Re:6 Months? by angel'o'sphere · · Score: 1

      Erm,
      the assignment is in the same line as the var is, obviously. How can you not know the type?
      No one is declaring variables with var at the top of a method and starts assigning values several lines later ...

      If you have to write some extra at the declaration is not a major issue.
      Actually that is what most developers hate: verbosity.
      So it is not an issue, but an annoyance.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    37. Re:6 Months? by ayesnymous · · Score: 1

      In Java 7 and later, you can just do: HashMap employeeByName = new HashMap();

    38. Re:6 Months? by ayesnymous · · Score: 1

      Disregard previous post, I had stuff in angle brackets that got deleted, not going to bother to fix that.

    39. Re:6 Months? by Sesostris+III · · Score: 1

      Excepting standard Java objects, I would probably declare against an interface and instantiate using a setter. Makes unit testing of the calling class easier as you can mock out the object.

      If I did declare and instantiate in the same statement, I would copy/paste the name anyway!

      --
      You never know what is enough unless you know what is more than enough. - Blake
    40. Re:6 Months? by angel'o'sphere · · Score: 1

      You could always do that :D
      But perhaps you mean the new diamond constructor?

      HashMap<String, Employee> map = new HashMap<>();

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    41. Re:6 Months? by Anonymous Coward · · Score: 0

      I don't know, dude. I mean, it's on the same fucking line.

    42. Re:6 Months? by K.+S.+Kyosuke · · Score: 1

      Do you not understand OOP?

      Many people don't. You, for example. Yes, Smalltalk doesn't need var. Of course, it doesn't need to "declare the variable with the highest superclass" either.

      --
      Ezekiel 23:20
    43. Re:6 Months? by Anonymous Coward · · Score: 0

      HashMap<String,Employee> employeeByName = new HashMap<String,Employee>();

      No. It's been like this for years now...

      Map<String,Employee> employeeByName = new HashMap<>();

      I can look at the declaration and know what it is.
      Why do language features solving problems that don't exist keep being added to languages like Java and C++?
      Adding more and more unneeded features don't make languages better, they just make them harder and harder to learn.

    44. Re: 6 Months? by spongman · · Score: 1

      Anything containing an anonymous type?

    45. Re: 6 Months? by spongman · · Score: 1

      You can't use car unless it's assigned a value in the declaration.

    46. Re: 6 Months? by Anonymous Coward · · Score: 0

      Learn to moron, moron. Moron moron moron.

    47. Re:6 Months? by Anonymous Coward · · Score: 0

      Mod this +1000 insightful. "var" is fucking shite for coders who have no fucking clue what they're doing.

      If you don't know what objects you're declaring you have no business writing code.

      Utter fucking crap.

    48. Re:6 Months? by Anonymous Coward · · Score: 0

      you are trolling. auto is a minor change to the language that some people turn into fad.
      i am not buying this lazy AAA (almost always auto) style.

    49. Re:6 Months? by Anonymous Coward · · Score: 0

      Not if write code like


                      var localVar = someMethodCall();

      Do that and you have no idea what localVar is.

    50. Re:6 Months? by Anonymous Coward · · Score: 1

      In C# there are anonymous types, meaning that they don't have a name you can enter, and var was created to allow you to declare variables of those types. When you declare a variable of type Object you have to cast it to its subtype to reference its members. Since you cannot enter the name of an anonymous subtype, you'd never be able to access its members without var!

      Now you may be wondering why anonymous types are necessary. The answer is that they're needed to avoid having to create and maintain a separate class for every combination of fields you have in a select list. Changing a select list doesn't require changing a class unless your method returns it. LINQ (Language-Integrated Query) would be almost intolerable without the feature.

      dom

    51. Re:6 Months? by yithar7153 · · Score: 1

      Hmm, it's kind of interesting because I used Scala for a personal project and I just wrote the types out even though Scala does have type inference. But Scala still feels less verbose than Java for some reason.

      private var rootGFile: com.google.api.services.drive.model.File = service.files().get("root").execute()

    52. Re:6 Months? by swilver · · Score: 1

      Yes, because all programmers are capped by typing speed.

    53. Re:6 Months? by swilver · · Score: 1
      In proper Java, you actually write:

      Map<String,Employee> employeeByName = new HashMap<>();

      Use the interface, and donot repeat the generic by using the diamond operator that has been around for the last 5 years.

    54. Re:6 Months? by angel'o'sphere · · Score: 1

      As you see, I used the diamond operator.

      And in a /. discussion it makes no sense to use an Interface on the left side and a concrete typenon the right side.

      It most of the time makes no sense in real code either.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    55. Re:6 Months? by jeremyp · · Score: 1

      Actually, I prefer


              Map<String, Employee> employeeByName = new HashMap<>();

      The variable is declared to the interface.

      --
      All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
    56. Re:6 Months? by Anonymous Coward · · Score: 0

      HashMap<String,Employee> employeeByName = new HashMap<String,Employee>();

      First of all, your reference should be of type Map, not HashMap. Second, since Java 7, you can already remove the generic type from the implementation:

      Map<String,Employee> employeeByName = new HashMap<>();

      I am not saying var has no use here, only that the language already provided a mechanism to get at least part of the way there in a clean, strongly-typed-to-the-programmer way.

  2. So the one good thing: corporate stability is gone by Anonymous Coward · · Score: 2

    There are other things I like about Java but a lot of them were stripped away by Oracle and the language "innovation". I like slow and stable. That's what Java was about. Not running after every fad. Thinking and taking things slowly.

    That's gone. Shame.

  3. So....Even MORE Broken Then? by Templer421 · · Score: 5, Insightful

    Problem with JAVA is syncing up all the damn versions between servers and clients.

    FASTER versions isn't helping.

    1. Re:So....Even MORE Broken Then? by e432776 · · Score: 1

      I clicked on the story just to post this. Why are more frequent releases per unit time a good thing? What shortcoming in Java does this address? Those more knowledgeable might be able to say something, but I thought the stability was a *good* thing...

    2. Re: So....Even MORE Broken Then? by Anonymous Coward · · Score: 0

      Presumably it'll drive more corporates to pay for Java For Business. Or it'll drive them to get their JDK from IBM or others.

    3. Re:So....Even MORE Broken Then? by Anonymous Coward · · Score: 0

      Problem with JAVA is syncing up all the damn versions between servers and clients.

      FASTER versions isn't helping.

      unzip -d /usr/local/newversion jdk-newversion.zip
      ln -s newversion java

      Java was created by greybearded Unix engineers, that is ALL you need to do to install a JDK on a server. The symlink is optional.

        if you can’t do the above consistently on your windows or Linux serves then you can’t do ANYTHING consistently on them.

      On desktops I mean you can use an installer if you WANT, if you need the control panel or browser plugin stuff, but why? Again, if you have tools to do a thing consistently on all your systems, than Java install is among the easiest to integrate with it.

    4. Re:So....Even MORE Broken Then? by Anonymous Coward · · Score: 0

      Syncing up application versions can be a problem but I do not see what that has to do with Java versions. Client-server API is usually over TCP which has very stable Java APIs. So I do not see how rolling out new Java language versions will be a problem.

  4. Instead of not updating the JRE every few years by Shemmie · · Score: 2

    I'll now not update it on a 6 monthly basis? :/

    1. Re:Instead of not updating the JRE every few years by Billly+Gates · · Score: 1

      Shrugs shoulders and will keep installing Java6 and java7 JRes for my users.

    2. Re:Instead of not updating the JRE every few years by ls671 · · Score: 1

      I guess you could move to java 8. I plan to stay on 8 for while.

      --
      Everything I write is lies, read between the lines.
  5. why not Kotlin? by Snotnose · · Score: 1

    If the var statement is a big feature for you then Kotlin is way ahead. Just sayin.

    And if you think I'm updating my Java environment every 6 months then you must think my farts smell like rose water.

    1. Re:why not Kotlin? by Anonymous Coward · · Score: 0

      Why not Kotlin? Because it's driven by one company, and only has support in one IDE. My IDE (netbeans) does not support Kotlin, so I do not use Kotlin. I'm a simple man

      Don't update your Java Env then, you rebel you; for the rest of us, we welcome these little upgrades to java.

    2. Re:why not Kotlin? by Anonymous Coward · · Score: 0

      Yes, the var feature is the worst thing they've copied from C# to date, it greatly decreases code maintainability as it's not immediately obvious what types you're dealing with.

      The only place our team uses it in C# is to shorten declarations and initialisations where the type is duplicated and long, i.e.

      var myDictionary = new Dictionary();

      as opposed to:

      Dictionary myDictionary = new Dictionary();

      It's awful when it's used for anything else and was only ever really implemented because the above type declarations were a monstrosity with the way Linq to objects was implemented.

      So quite why Java would choose to copy an awful feature from C# that was only ever implemented as a hack around another poor C# implementation I've no fucking idea - they're just copying for the sake of copying now, and it sounds like 6 monthly cycles are simply their desperate attempt to try and catch up with C# again after it overtook Java in functionality around 8 - 10 years ago because Java stagnated for a long while.

    3. Re: why not Kotlin? by Anonymous Coward · · Score: 0

      So it is bad that they are playing catch-up to C# now but also bad that have stagnated so badly 10+ years ago? Which is it? You make no sense you twit.

      Var is a great language feature and productivity enhancer. It reduces utterly useless noise in the code.

      I maintain Java and C# code. C# is far easier to maintain and requires less lines of code to do the same thing.

    4. Re: why not Kotlin? by Anonymous Coward · · Score: 0

      Christ, are there really people as dumb as you on the internet?

      Just because one thing in C# is awful, doesn't mean all things in C# are awful.

      Java can improve by catching up to the good stuff, whilst not bothering to implement the bad stuff. It's hardly fucking rocket science is it? How do you find a concept that simple so hard to understand?

      var is a productivity enhancer the first time you right code, but it has immense cost after that for anyone doing code reviews, or coming back to refactor or maintain the code. It's benefits are write-only.

      And yes, C# is easier to maintain by far, you're right, it's a better language for sure. That doesn't change the fact that var is an awful feature that the language would've been better without however.

      But given you can't understand that improving a language doesn't mean blindly copying everything another language has done, even the bad stuff, I'm not surprised you use var and think it's good - you're obviously not the sharpest tool in the box, so it's really designed for people who are pretty dumb and incompetent like you, at the expense of everyone else who has the misfortune to have to touch your code, which is precisely why it's awful.

  6. Did anyone ask for this? by 93+Escort+Wagon · · Score: 3, Informative

    I don’t think I’ve ever heard anyone ask for a faster release cycle for java.

    I have, however, heard (many times) people requesting that java die in a fire.

    --
    #DeleteChrome
    1. Re:Did anyone ask for this? by cheesyweasel · · Score: 0

      I don't think letting it die in a fire would be a good idea. The bloat would keep it burning for decades.

    2. Re:Did anyone ask for this? by nateman1352 · · Score: 3, Insightful

      Indeed, no one asked for this except Larry Ellison. Make no mistake, Oracle doesn't do a damn thing unless it serves as a way to screw their customers harder than they did before. You can be sure that these every 6 month releases introduce many more frequent opportunities to add small subtle "bugs" that just so happen to break popular enterprise software packages. This is nothing more than a shameless attempt to charge you through the teeth for the JRE. The LTS JRE that is actually able to run your software will come with one of the infamous mandatory support contracts and exorbitant license fees. Java and the JRE should be considered harmful by everyone ever since the Android lawsuit.

    3. Re: Did anyone ask for this? by Anonymous Coward · · Score: 0

      This is likely a play to employ more Oracle consultants to work on large Java projects. If the language becomes unstable with frequent releases, you need more consultants to âoekeep you up to dateâ. Ooh! There is a âoevarâ feature? Time to spec-out your next release where we upgrade everything to be var-compatible! Donâ(TM)t want to be left behind! USA! USA!

    4. Re:Did anyone ask for this? by sad_ · · Score: 1

      users probably didn't ask for this, but java developers sure did.
      that is why you have so many open source libraries available for java that complements it with things people find missing in the core language.
      a great example is joda time, which does time handling/manipulation and almost everybody used. while a decent native solution has only been available since java 8.

      --
      On a long enough timeline, the survival rate for everyone drops to zero.
  7. This will be a good thing by DeplorableCodeMonkey · · Score: 4, Insightful

    Explicit LTS versions vs non-LTS will enable the conservative to have a roadmap and the adventurous to keep going with new ideas and features where the two eventually converge.

    I'm personally quite sick of joining "enterprise" teams that use wildly past their shelf life versions of Java and then get indignant when I pointedly ask them WTF they're doing calling it "secure" when the product has been abandonware WRT security for over a year.

    Right now it feels like "Java 7 vs 8 vs 9" is a matter of opinion. Now at least we can say "you chose a non-LTS version and didn't keep up... WTF?" and stuff like that. Oracle is at least now saying "this is for this type of user and that is for that type of user" and if you try a third way the answer is "you're wrong" unless you accept full responsibility.

    1. Re:This will be a good thing by Billly+Gates · · Score: 1

      We still use Java6 at work lol. Change for the sake of change is expensive and our Oracle12g based tools and version SQL Developer work best onthat version. Upgrading puts us on a rent like EULA so we can't ever upgrade according to our finance guys. My previous employer just switched to java 7 and will stay there for years to come. All it;s customers have standardized only on Java jre7 for things like certs and code signing so we need an ancient version to make sure their tools work on our machines.

      Oracle is deluded enough to think Java is hip and cool still like it's 1999 like we care care about Linux distros. Who actually wants new hip Java releases and actually write opensource software with it today?

        No one cares anymore. Only people who use it our crusty old enterprise customers and maybe a freshmen level coursework in intro to object oriented programming. Students leave Java fast for python and javascript and c# and other hipper languages afterwards in this day and age. Just let it die in purgatory with COBOL already. Sun and Oracle killed it.

    2. Re:This will be a good thing by supremebob · · Score: 1

      I think that a LOT of organizations are still using Java 6 and Java 7 in their business. I know that last two organizations that I worked for have.

      An officially LT supported Java 11 release might be the excuse they were looking for to skip upgrading to Java 9 and Java 10 and go straight for that version.

    3. Re:This will be a good thing by angel'o'sphere · · Score: 1

      What would be an alternative to Java?

      C#/.NET? I don't think so.

      So, what else? We could put a nice tool chain on CLANG to support everything that Java can, e.g. Reflection/Introspection/Serialization ... but it seems no one is doing that at the moment.

      A sanitized C++ running on a VM with optional GC, that would be fine ... but I see no one going there.

      Or an open source Eiffel ... but then again it would be verbose like Java.

      On the other hand, image based environments like Smalltalk would be cool, no one is really pushing that either.

      So, it looks like we are stuck with Java the next 30 years.

      I for my part don't mind that.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:This will be a good thing by Anonymous Coward · · Score: 0

      Sun did not kill Java, they invented it ... Don't think Python is hip, just another language which has it's usage just like any other language, java is quite useful....

    5. Re:This will be a good thing by PmanAce · · Score: 1

      Explain why C#/.Net isn't a viable alternative? With the open source .net core on its way, things are very interesting.

      --
      Tired of my customary (Score:1)
    6. Re:This will be a good thing by Billly+Gates · · Score: 1

      What would be an alternative to Java?

      C#/.NET? I don't think so.

      So, what else? We could put a nice tool chain on CLANG to support everything that Java can, e.g. Reflection/Introspection/Serialization ... but it seems no one is doing that at the moment.

      A sanitized C++ running on a VM with optional GC, that would be fine ... but I see no one going there.

      Or an open source Eiffel ... but then again it would be verbose like Java.

      On the other hand, image based environments like Smalltalk would be cool, no one is really pushing that either.

      So, it looks like we are stuck with Java the next 30 years.

      I for my part don't mind that.

      Easy Erlang the new hip rockstar language

    7. Re:This will be a good thing by Anonymous Coward · · Score: 0

      What would be an alternative to Java?

      C#/.NET? I don't think so.

      Hopefully no one pays you to think.

    8. Re:This will be a good thing by Anonymous Coward · · Score: 0

      Explain why C#/.Net isn't a viable alternative? With the open source .net core on its way, things are very interesting.

      I can't speak for the GP, but for my own part I generally have little interest in technologies with MS Windows origins. I know there are some ports available, but historically these have been less feature rich, etc. Part of me doesn't trust anything to do with MS to care whether this is still the case.

      Then again, I've probably used 20+ languages during my career, so I have a strong "meh" reflex.

    9. Re:This will be a good thing by lamer01 · · Score: 1

      .net core is not on the way. It's been here for 2 years now.

    10. Re:This will be a good thing by angel'o'sphere · · Score: 1

      Because it lacks all the open source tools and libraries, Java has. It has no web server, like tomcat e.g.
      C# versus Java is simply an awful language, but you could use managed C++ of course, that wold be a plus. Most Java alternatives like Groovy, Scala, Kotlin etc. doc. don't run on .Net

      And the naming conventions of C# just suck :D a pain for my eyes ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    11. Re:This will be a good thing by angel'o'sphere · · Score: 1

      Erlang is nice for highly interactive multi threaded environments, e.g. in telecommunications.
      But pretty difficult to use for desktop applications or apps.

      Perhaps OCaml ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    12. Re:This will be a good thing by lgw · · Score: 1

      C#, the full language, is years ahead of Java and a far, far better language. So much less boilerplate with C#. Heck, Java is plain unusable without Lombok.

      OTOH, until the language has fully rich open source support on Linux, I'll pass. Does seem to be headed that way, however, so I'm hopeful.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    13. Re:This will be a good thing by angel'o'sphere · · Score: 1

      Actually you should have the recent JDK/JRE for modern libraries, like the streams, but program in Scala and Groovy ... the progress Java makes as a language is simply not radical enough.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    14. Re:This will be a good thing by angel'o'sphere · · Score: 1

      I guess that is a matter of taste, I find C# nearly unusable and you think the same about Java ... but that is why I mostly use Groovy and hope that my current project slowly shifts to Scala :D

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    15. Re:This will be a good thing by Anonymous Coward · · Score: 0

      Wow you must be writing circus code if you need help to write getters and setters and that sort of little clown getting out of a mini type of code.

    16. Re: This will be a good thing by Anonymous Coward · · Score: 0

      What's unusable about it? Are you really that much of a snowflake that some capital letters in the std library are too much for you?

    17. Re: This will be a good thing by spongman · · Score: 1

      None of the statements of fact about c#/.net in that post are correct.

    18. Re:This will be a good thing by Richard_at_work · · Score: 1

      I've looked at Tomcat in the past and could never understand why anyone would want such an unwieldy piece of shit - sure, .Net has nothing like it (thank fuck), and as a result I prefer to use OWIN self hosting or Kestrel httpd (the .Net Core httpd by MS) for my web apps, and stick them behind a standard reverse proxy like Nginx or HAProxy so the heavy lifting is done by an app dedicated to it.

      Lack of a "Tomcat" is not a negative., and you seem to be missing the massive nuget library which is mostly open source .Net tools, libraries and frameworks, so once again there doesn't seem to be an actual negative there, just a perceived one.

    19. Re:This will be a good thing by angel'o'sphere · · Score: 1

      Tomcat was just an example for the implementation of the Servlet API.
      APIs in Java are generally defined by experts of the field.

      In .Net I have no idea why everything is so horrible unusable. But: I did not use it since 10 years, so perhaps it got better ;D

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    20. Re: This will be a good thing by Anonymous Coward · · Score: 0

      Possibly violating laws depending upon your business and country. For example, PCI in the US will not allow you to use Oracleâ(TM)s Java 6 for TLS legally.

  8. All the cool kids by Anonymous Coward · · Score: 0, Offtopic

    All the cool kids are using javascript these days. Something nodes or some word like that. It's really crazy complicated with like this export thing and some thing called a module. I just cut and paste the the functions in the export require thingy instead of trying to follow it all. And I never use var in javascript. You don't have to. Make everything global! Duhhh!

  9. Don't we want a slower release schedule. by Anonymous Coward · · Score: 1

    The best would be 1 release, no schedule. A complete language fixed in its function forever with no bugs.

    Having a faster release cycle means either they are spinning the language or patching a lot of bugs. So yes patching the bugs faster is better but I would prefer they spend the time to not have bugs in the first place.

  10. The cancerous meme of fast release schedules. by Anonymous Coward · · Score: 3, Insightful

    They serve no good point, but virtually guarantee lower quality. Yet, like flat UIs with non-detectable interactive elements, they have to be done, "because everyone is doing them".

    The stupidity of humanity is without bounds.

    1. Re:The cancerous meme of fast release schedules. by careysub · · Score: 0

      Yeah, the subject line should read "Oracle Releases Java 10, Threatens Much Faster Release Schedule".

      --
      Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
    2. Re:The cancerous meme of fast release schedules. by Anonymous Coward · · Score: 0

      oracle guarantees low quality. fast release just guarantees you get that low quality faster.

  11. So....Even MORE released Then? by Anonymous Coward · · Score: 0

    Why is "release early, release often" good for Linux, but not Java?

    1. Re:So....Even MORE released Then? by careysub · · Score: 3, Insightful

      Why is "release early, release often" good for Linux, but not Java?

      The correct comparison is between Linux releases and JVM releases. If you want to have new improved JVMs for the same language specification, go nuts, its all good. Everything will continue to run on the virtual machine, just like applications continue to run on the actual machine with Linux releases. Changing the Java language is akin to changing the Linux API. That would create application compatibility problems at the very least, most likely break many.

      --
      Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
    2. Re:So....Even MORE released Then? by Billly+Gates · · Score: 0

      From a system administrator and desktop support angle this also creates a nightmare scenario of breaking client endpoint applications such as SAP or other IE specific websites.

      Java 6,7,8, and 9 runtimes are incompatible with each other. Companies want one ancient jre to rule them all. Now the developers have to keep their apps secure BUT use an unpatched JRE or else the customer will find someone else who will. LOL

      Gee this is why kids today don't want to learn Java.

    3. Re:So....Even MORE released Then? by angel'o'sphere · · Score: 1

      Upgrading to a new Java version hardly ever broke anything.

      Java uses an annotation to @depricate parts of APIs ... but keeps those parts around for several versions.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:So....Even MORE released Then? by angel'o'sphere · · Score: 2

      Java 6,7,8, and 9 runtimes are incompatible with each other.
      What is that supposed to mean?

      A application compiled for Java 6 runs just fine on a Java 8 VM, and I would bet on Java 9, too.

      To launch an Application with the "correct" JVM you have that magical thing called a PATH variable. You can have as many Java installations on your computer as you have disk space, nothing special here, nothing incompatible.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    5. Re:So....Even MORE released Then? by Dog-Cow · · Score: 1

      You must not have been around in the early days. Perhaps it's better now, but I remember Java 1.x releases. There wasn't even forward compatibility at that point. That is, applications compiled with Java 1.2 would not always run correctly, or at all, on 1.3 VMs.

    6. Re:So....Even MORE released Then? by Anonymous Coward · · Score: 0

      I honestly can't tell you why it was the case, but at a previous job we had some software package we supported that would work under java 6, but not function properly under java 7.

    7. Re:So....Even MORE released Then? by angel'o'sphere · · Score: 1

      I never had a problem like that.
      But usually when you are developing and mid term you upgrade the VM/JDK, you recompile anyway.

      Hm, I believe there was indeed a problem with Java 1.3, I remember Java 1.4 broke serialization on IBM VMs, or cross serialization between IBMs and SUNs VMs ... don't remember.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:So....Even MORE released Then? by Anonymous Coward · · Score: 0

      Most likely that they used stuff that was already deprecated in java 6 and those got removed in java 7.
      Software that only runs with deprecation errors is shit software

    9. Re: So....Even MORE released Then? by Anonymous Coward · · Score: 0

      Since, in other words, it's not backwardly compatible, and you need multiple Java runtime versions installed...

  12. Don't have long ass names in the first place! by Anonymous Coward · · Score: 0

    Have you never heard of namespaces, scopes and closures??

  13. OpenJDK by Anonymous Coward · · Score: 0

    Is Oracle trying to push people to OpenJDK more if that maintains a slow and steady release cycle?

  14. Minecraft is still on Java 8 by Anonymous Coward · · Score: 0

    The public has no reason to upgrade.

  15. Upgrade treadmill running faster than ever by Anonymous Coward · · Score: 0

    Jane! How do you stop this thing?!

  16. marvy by Anonymous Coward · · Score: 0

    So the plan is to make all existing code useless and unmaintainable in 5 years?

    Then push you into a commercial pay version of java 8 or java 50.

  17. Minecraft. by Anonymous Coward · · Score: 0

    I'll care when minecraft does. Nothing else I care about touches java.

  18. Hmm, 6-monthly releases and LTS every 3 years... by Anonymous Coward · · Score: 0

    Very innovative, I wonder what inspired them to do that?

  19. Still using JDK 6 by Anonymous Coward · · Score: 0

    One web application I am currently supporting is still using Java 6. It was developed by a system integrator in 2010. The server environment is maintained by the operations team. Nobody even dare to touch the jvm configuration and it may remain that way until the application planned to decommissioned somewhere around 2021. This is how enterprise environment works.

  20. Stop this change for change's sake rubbish! by Anonymous Coward · · Score: 0

    We do NOT need faster incrementing version numbers! We need stability over the long term.

    Yes, there are ignorant weeners who want shiny stuff all the time no matter how useful it might be. But those of us trying to get actual work done want stuff that works now, works tomorrow and works 10 years from now.

    Stop breaking stuff you idiots!

  21. How's life in the hypocrite lane?

  22. This is how you kill java by Anonymous Coward · · Score: 0

    Not the best example but if you recall IE, it had a 6 month release cycle until (dare I say it,) they realised that the quality was so low that they stopped releasing every 6 months with IE6.

    This smells like history repeating itself

  23. var: useless feature by drolli · · Score: 1

    Right way: ask your ide to guess the variable type, and insert variable with this type. It's good to know if the inferred type changed.....

  24. Re: Instead of not updating the JRE every few year by Anonymous Coward · · Score: 0

    Yummy! All those CVEs just waiting to be exploited.

  25. Just what we need by ebvwfbw · · Score: 1

    Queue all the complaining from being behind and not wanting to move to the new version... AGAIN!

    Just went though a bunch of BS from old lame versions that vendors LOVE to include in their distro of software so their broken code will work.