Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Java Oracle

The Details of Oracle's JDK 7 and 8 'Plan B' 204

gkunene writes "Oracle has put Java 7 and 8 features up for Java Community approval, providing a clear indication of what the next two major versions of Java are likely to include. (Java 7 contents, Java 8 contents.) From the article: 'The JDK 7 and 8 JSRs represent Oracle's 'Plan B' approach for separating JDK 7 into two separate releases, splitting up features that were all originally intended for the Java 7 release. This approach is intended to help expedite new Java releases. Among the key components of the original Java 7 plan that are now set for inclusion in Java 8 are the Lambda and Jigsaw efforts. At JavaOne this year, Thomas Kurian, executive vice president, Oracle Product Development, explained that Lambda is all about bringing closures to the Java language. Kurian noted at the time that Lambda is intended to provide a more concise replacement for inner classes, as well as support automatically parallel operations on collections. Jigsaw is all about building modularity into the Java Virtual Machine.'"
This discussion has been archived. No new comments can be posted.

The Details of Oracle's JDK 7 and 8 'Plan B'

Comments Filter:
  • by jrumney ( 197329 ) on Monday November 22, 2010 @08:30PM (#34312926)
    Is there still a Java Community left to approve this? I thought Oracle had managed to alienate them all over the past 6 months.
    • My thoughts too.

      Is now a bad time to be considering learning Java at UNI?
      • Re: (Score:2, Interesting)

        by Anonymous Coward

        The language you'll learn at uni isn't generally to learn the language - the language is used to deliver programming concepts. The language is rather irrelevant - although you'll probably be inclined to find a job that uses the programming language you've learned. Search around and find a different language you like (possibly also OO if you're just starting out) and do your stuff in java for uni, and then try and do it again in the language of your choice.

        Java at uni is just the train. But considering your

      • Re: (Score:2, Insightful)

        No. Learn as many languages as you can. You're less likely to believe that one language fits all needs that way. Java isn't going to suddenly drop out of use, there is too much investment in it.

    • by bytesex ( 112972 )

      The Java community consists of Oracle (databases), IBM (mainframes) and Apache (tomcat), like it has done for a few years now. You can't alienate the Oracle and IBM people, because they're paid to be loyal (i.e. they're employees at banks and stuff). The only people it alienated, are the tomcat people but then again, they are the only ones that truly benefit from java's one and only killer-feature, and that is that is runs anywhere.

    • by gutnor ( 872759 ) on Monday November 22, 2010 @09:24PM (#34313258)
      The change was proposed by the community. Sun lack of direction/focus has put enough misery on the release of Java 7 so the choice was to either to split the release in 2 part or release Java Vista some day in the future.

      That has been years since the Java community is largely working outside of Sun, now Oracle, guidance. Innovation in the java world happens in third party open source frameworks that are born, mature and even reach legacy level before they make it into the Java JDK. Look at dependency injection, ORM, alternative languages on the JDK, ...

      Obviously with a new boss around, especially with one with more teeth than the apathetic Sun, there is some territorial pissing going on between the big players: Apache, JBoss, IBM, ... but the split of the JDK is not such instance.

      • "Java Vista" was my precise thought too. This split appears to be a desperate attempt not to have Java 7 fall down a hole.

        We're currently on Java 5, which was EOLed last November. I wanted to go to Java 7, and our stuff all works on it, but ... it was supposed to be out around now.

        So we're going with Java 6. Which may never be EOLed at this rate.

    • by node 3 ( 115640 )

      Is there still a Java Community left to approve this? I thought Oracle had managed to alienate them all over the past 6 months.

      All the fuss I've seen was more along the lines of various "Java Community" members crying "oh no, Oracle!" and making a fuss rather than Oracle actually doing something worthy of such a response.

      Now you get people on Slashdot asking strange questions like whether it's a bad time to learn Java, and someone else freaking out because of the Oracle logo on OpenOffice. It's all rather odd.

      • Are you living in a cave or something? There are pretty good reasons for everything you are hand waving away. Even a quick skim of the latest slashdot articles on the subjects would clue you in.

        • by node 3 ( 115640 )

          It's funny you claim I'm "hand waving" them away, as you are conveniently "hand waving" them into existence. If you had actual examples in mind, it's suspicious that you wouldn't mention at least one or two.

          The only thing that even remotely comes to mind is Oracle suing Google for their proprietary Dalvik VM. This seems pretty similar to when Sun sued MS for their proprietary Java VM, so it's not like Oracle is taking things in a turn for the worst with regards to their Sun acquisition.

          Really, as far as I c

          • Its worse than that. Its more like we just don't like Oracle. Seriously, even if you get a free pony with every java download, the headlines will slam Oracle because the pony's aren't pink, clearly because they are just obsessed with profit.

            Ironically most of my ex workmates that still work in a lot of enterprise places are happy that java is finally moving forward. There was indeed a consensus that Oracle can't be worse than Sun.

            I know quite a few companies that have a very strong dislike of Sun with
    • sssh, you're ruining it for them.

      see, this is just a move to show that Oracle are being friendly and nice to the community. The fact that said community no longer exists was supposed to be a secret.

  • by msobkow ( 48369 ) on Monday November 22, 2010 @08:39PM (#34312978) Homepage Journal

    Both releases seem a little lean on features compared to Sun's release schedule. On the other hand, they're starting to run out of reasonable features to add to the language without turning it into a kitchen sink.

    • without turning it into a kitchen sink

      Why stop when the memory drain is already working? =D

    • How about LINQ, a standard UI API which is good enough to use on real applications, unsigned types, easier to use HTML/XML parsing, easier interfacing with C/C++, less leaky and buggy API, etc?
    • by jhol13 ( 1087781 )

      Generics "killed" Java (well, was a huge mistake, though did not kill it).

      Since then practically every new language has been "higher level". Designers noticed that generics solves trivial problems[1] with huge cost (code clarity, maintenance and education). Now they seem to be putting everything up lamdba calculus, logic programming and parentheses in. That leaves BNF to be integrated so that programmers can invent heir own favourite extension to the language.

      [1] problems which are found in simplest unit te

    • Sun release schedule? There was no schedule, which is why java 6 has been around for years, while we wait for 7, that's never ready.
    • Re: (Score:3, Interesting)

      by DrXym ( 126579 )
      Java is a verbose language and many changes are not about implementing the kitchen sink but trying to make it terser and more expressive. For example most getters and setters are boiler plate, so why not some simple annotation / keyword which generates them at compile time and tags them for runtime inspection? What about partial classes so visual editors generate code into one file and devs can put hand written code in another file? What about closures for single method interfaces to remove reams of boilerp
    • I think they ran out of 'reasonable features' a while ago. Java has been a huge pile of crud [cat-v.org] for some time now, and with stuff like the badly botched addition of generics (even Joshua Bloch admits nobody really understands the mess created by generics in Java), this are only going to get worse.

  • by Anonymous Coward on Monday November 22, 2010 @09:21PM (#34313240)

    Oracle owns Java now?

    When did this happen?

  • Closures? (Score:2, Insightful)

    by Anonymous Coward

    I think the focus on closures is a fad. The concept has existed for decades, but suddenly if Java doesn't have them it's incomplete? Strangely, I don't think the lack of them has ever stopped a program of mine from working. So this seems like more of a pissing contest with C# than a feature anyone is really clamoring for.

    • Closures are just another tool in a language's toolset that is often useful. Not having it doesn't make it incomplete, it just makes it less useful in some scenarios than a language that does have them (like C#).
    • Re:Closures? (Score:5, Informative)

      by Anonymous Coward on Tuesday November 23, 2010 @01:21AM (#34314646)

      The lack of objects hasn't ever stopped any C program from working, but its lack is what inspired C++. Similarly, Java's lack of closures is what inspired C#.

      Way back in the '90s, MS wanted to enable developers to use Java to write Windows apps. The obvious way to write Windows apps is for objects (like windows and buttons) to have events (like "mouse move" and "key down") that other objects can listen for by giving the object a function to call when the event is raised. Java had no clean way to write event listeners for VB-style form designers, so MS modified their version of Java (J++) to have closures (so you can say "use this object's OnKeyDown method to handle the KeyDown event"). Since Sun decided to go with inner classes instead, they sued MS and made them stop shipping any Java at all.

      As a result, MS needed to write their own Java-like language for VB-style form designer apps, and came up with C#. Obviously it has closures (which it calls "delegates"), but in version 1.0 they only closed over an object's member variables. In 2.0 they were able to be anonymous and close over local variables in a method, and in 3.0 they gained the convenient lambda syntactic sugar. Some have called Java's inner classes "syntactic vinegar" because they're so cumbersome to use compared to C#'s (and most other languages') closures.

      C#'s extension methods and generics combined with type inferencing and lambdas make it very concise to write code to return a list sorted by its item's name like this: list.OrderBy(item => item.name)
      It's not unreasonable for Java programmers to ask for a similar boost in their productivity.

      dom

      • Re:Closures? (Score:5, Informative)

        by master_p ( 608214 ) on Tuesday November 23, 2010 @05:39AM (#34315826)

        Closures and delegates are different things: delegates are constructs that forward the invocation to another function, and closures are function objects that have some state of the program bound to them so as that it should not have to be passed explicitly to the function.

        Nitpicking, I know, but I think it's in important distinction.

      • Re: (Score:2, Insightful)

        by jernejk ( 984031 )

        Way back in the '90s, MS wanted to enable developers to use Java to write Windows apps.

        Really? I was around int the '90s and have no recollection of that.

        As a result, MS needed to write their own Java-like language for VB-style form designer apps, and came up with C#.

        Please, don't be naive. MS first tried to poison Java by proprietary API (the same tactics Google is using in Android). When they failed, they created a copy of Java, invented a "new" language which is for some reason unbelievable similar to Java + some nice features and started the "developers, developers, developers" mantra. They called .net "java killer" internally, BTW.

        Java was and still is a major risk for Microsoft.

    • Re:Closures? (Score:4, Interesting)

      by dido ( 9125 ) <dido.imperium@ph> on Tuesday November 23, 2010 @01:50AM (#34314818)

      Spoken like a true Blub programmer [paulgraham.com]. Trying to go from a programming language that has true lexical closures like Ruby to a language like Java which doesn't is extremely painful. You get used to being able to write code that uses higher-order functions (and hence closures) to get stuff done.

      • Re: (Score:3, Insightful)

        by TheRaven64 ( 641858 )
        Closures and objects are identical in terms of the things that they can express. See the COLA papers from VPRI for some good examples - you can trivially implement anything using closures that you can implement with objects, and vice versa. Objective-C has used higher-order functions for decades without closures. They do make some things a bit cleaner, syntactically (although Apple's syntax is horrible), but if you can't live without them then you have problems.
        • Re: (Score:3, Insightful)

          by Haeleth ( 414428 )

          Closures and objects are identical in terms of the things that they can express.

          Any minute now someone is going to bring up Turing completeness and point out that in theory you could write any program in Brainfuck. And someone else is going to point out that closures in languages like C# are objects, just hidden behind some syntactic sugar. No, wait, I just did both myself.

          The point is that for certain common patterns, such as event callbacks, a closure-like syntax is significantly more readable than a co

  • by oldhack ( 1037484 ) on Monday November 22, 2010 @10:18PM (#34313514)
    Fix the generics. Get rid of erasure and all its associated idiosyncracies and gotchas, and bring generics properly into JVM level.
    • This should have been done with java 1.0

      Fact is that most "mainstream" languages are often way behind (read decades) what we know in terms of R&D for programing and compiling.
    • by pmike_bauer ( 763028 ) on Tuesday November 23, 2010 @01:50PM (#34321194)

      Please, no.
      Reified generics at the JVM level has unintended consequences for other language implementations targeting the JVM.

      Ola Bini has an excellent take on why it's best to keep reified generics out of the JVM.
      http://olabini.com/blog/2010/07/questioning-the-reality-of-generics/ [olabini.com]

      • Re: (Score:3, Insightful)

        by Haeleth ( 414428 )

        He also observes that reified generics would probably make Java itself a better language, and would be useful for Scala too. Which between them account for practically everyone using the JVM in the real world. Is it really worth hurting the vast majority of people (and driving some of them to competing platforms), in order to benefit a handful of tiny niche products?

  • by melted ( 227442 ) on Monday November 22, 2010 @10:29PM (#34313592) Homepage

    Just take this [scala-lang.org] call it Java 9 or some such, and fire the remaining Java compiler people. Keep the VM people. There, solved it for you Oracle.

    • by melted ( 227442 )

      Don't see why this is being modded as flamebait. This is the truth. All those "geniuses", all that fabled "community process" got its ass handed to it by a few PhDs who _really_ knew what they were doing.

    • Re: (Score:3, Insightful)

      by Alkonaut ( 604183 )

      Sack the VM people too, at least those who decided that the implementation of generics should be through type erasure, in other words "type unsafety". Next, dismantle the whole community process (Whoever wants an open system please fork at this exit). If Oracle just puts its weight behind java, it could well be the needed injection it needs. Without the tools for parallelism, distributed computing and so on, java (both VM and language) will be a "mainframe" language.

      C# shows what can be done if you have

      • Re: (Score:3, Insightful)

        by TheSunborn ( 68004 )

        They reason they did implement generic with type erasure (Something they knew was not the best solution) was so you could compile your Java 1.5 code, and run it on a jdk1.4 stack which don't know anything about generics. (They did not want to update the bytecode format, and with that restriction, type erasure was the only solution). So it was more of a management choice.

        Why sun thought this was a better solution, then updating the bytecode is something I don't understand.

        • But in the same release they also put in stuff that just wont run in 1.4. So much that libraries often come in 1.4 and 1.5 versions. So they might as well have gone the whole way and put in the whole generics. What you dont want to break is 1.4 code running on 1.5. But to make provisions for the other way around is limiting, if not downright retarded.

  • Will subclassing enums make it into JDK 7? It's annoying to jump through hoops that aren't a good model of the work when making enums of commands that are in different groups of overall common functionality.

  • Java 1.4.2 was good enough for me to abandon 90% of my Perl activities. Java 5 generics were a very niece thing to have. But the annotations is where it started to get itchy for me. Bleedin' abracadabra I say. If ever I need it, I'll dig into it.

    I'd never had anything to desire since 5. So for me 6, 7 and 8 mainly should be backwards compatible.
    • Re: (Score:3, Informative)

      by sourcerror ( 1718066 )

      If you had to do J2EE developement prior to EJB3, you would appreciate annotations. Basically a lot of the stuff from XML files went to annotations.

      • If you had to do J2EE developement prior to EJB3, you would appreciate annotations. Basically a lot of the stuff from XML files went to annotations.

        Right now I'm considering JPA for a project of mine. I'm not confined to anything by some architecture dept. so I can make up my own mind.

        The main reason for JPA would be that I can "easily" hook up my application to "any" type of database. I will consider annotations but I will shun any vendor specific stuff in my class code and hence in the annotations. But I have yet to study the matter in detail.

        For me there's also another reason to use legacy Java version. Some large/huge clients of mine tend to

        • Annotations have been introduced in Java 1.5, especially for making the JPA more simple. Now the cardinality of relationships* are in the class body, previously they were in XML files, which were hard to maintain consistently. I have never seen vendor specific stuff in annotations, they usually appear in external xml config files (separately from the config files required by the standard).

          Developers really hated EJB 2.x, so I don't recommend going that far back (that would mean going back to 2005-2006).

          * an

  • We all seemed to learn this lesson over the years thanks to Microsoft. People waited in line for hours to get Windows 95. The enthusiasm was present though diminished with Windows NT 4 and other Win9X releases. The enthusiasm was completely absent from WindowsME and beyond. Windows XP was a surprise hit, but no one I knew waited in line for it.

    The point here is that Oracle seems bent on the notion of upgrading and releasing more changes to Java. This would be a mistake. As people write applications for

He who has but four and spends five has no need for a wallet.

Working...