8 ms·
Java SE 8 Proposed Final Draft Specification — Draft 1
- huherto 13y agoIf I understand correctly it will by ready for production by 2013-03-18 http://openjdk.java.net/projects/jdk8/milestones http://openjdk.java.net/projects/jdk8/milestones
- bhauer 13y agoLooking forward to it! We've been experimenting with early builds and the improvements are enjoyable. My colleague's reference for developer-facing changes in Java 8: http://www.techempower.com/blog/2013/03/26/everything-about-java-8/ http://www.techempower.com/blog/2013/03/26/everything-about-...
- chamakits 13y agoI stumbled on the link you just provided some time back and found it to be by far the most comprehensive overview of all the niceties that we will soon be having on Java 8. Kudos to whoever wrote it up!
- cherioo 13y agoReading through the post, one of the link[1] says something along the line of "Java has 'multiple inheritance' from day 1". How is this the case? [1] http://mail.openjdk.java.net/pipermail/lambda-dev/2013-March/008435.html http://mail.openjdk.java.net/pipermail/lambda-dev/2013-March...
- mhixson 13y agoHe qualified it with "(of types)", so I believe he was talking about inheriting from multiple interfaces. People already had to be able to deal with "this thing is both a Foo and a Bar", so perhaps it's not a huge leap to go from there to "this thing inherits implementation from Foo and Bar". And by implementation we mean methods, not state. That's how I read it at least.
- krzyk 13y agoUnfortunately the link you provided discusses lambdas but then after I'm hooked into them it says : "They were considered for Java 8 but were not included, for simplicity and due to time constraints." So what's the point of describing the on a page talking about additions to Java 8?
- benjiweber 13y agoThe author is referring to the additional lambda-related features below (Non-final variable capture, Exception transparency, Control Flow). Lambdas most certainly are included in 8.
- goggles99 13y agoHAHA, C# copied Java in many ways, now Java is following suit. Good for them.
- jpitz 13y agoWhat, it copied a single-class, multiple-interface statically typed OO language? Since the lead architect on C# designed one of those that predated Java, I think it is pretty clear what he was copying. http://en.wikipedia.org/wiki/Object_Pascal http://en.wikipedia.org/wiki/Object_Pascal
- eropple 13y agoI think this is a little bit handwavey regarding the historical background. My understanding is that NGWS, and then .NET 1.0, grew out of J++ and the Microsoft JVM extensions being a problem. Most of C#'s semantics, especially with regards to C# 1.0, very closely parallel Java's (right down to stuff like missing generics in the first release), as does large parts of the .NET class library. I don't think it's unfair to characterize it as C# taking a lot of notes from Java, nor do I think it's unfair to characterize Java doing the same thing here. This isn't to say Anders and company didn't significantly improve it, to be clear, but I tend to think they were looking much more at Java than at Object Pascal.
- jpitz 13y agoI don't think it's unfair to say C# took some cues from Java either, but Property syntax, for example, (sadly) has no counterpart in Java, only Object Pascal/Delphi. Historically, the impetus behind C#'s birth _absolutely_ was Java and the J++ debacle. tl;dr - I think we mostly agree.
- pavanred 13y agoLooking forward to this. I used to write C# code for quite some time before I started working with Java. And, I must say after using Linq extensively, it almost felt like a handicap to work without Lambda expressions in Java.
- 13y ago
- puppetmaster3 13y agoLol, Java. This is what v8 should have been: http://vibed.org http://vibed.org Edit: look at the code.
- laureny 13y agoA language should have been an asynchronous library? How does that even make sense?
- puppetmaster3 13y agoLook at the code, Java like, no? But a lot nicer.
- aeonsky 13y agoSo you want Oracle to include a "shared" and "auto" keywords and break millions of programs?
- grogenaut 13y agoYes, Yes I do. And as for backward compatibility, they already did. I love the myth that java never broke backwards compatibility. Bytecode maybe (), they definitely broke syntax compatiblity. : The various xml parsers and other library thrash really do break backwards bytecode compatiblity.
- laureny 13y ago> I love the myth that java never broke backwards compatibility. Bytecode maybe (), they definitely broke syntax compatiblity. Proof?
- mhixson 13y agoIf by "syntax compatibility" he means code that compiles in one version does not compile is another, that's definitely true. Name collisions with the new default methods in Java 8 are one source. If your Comparator-implementing class has a method "void reverseOrder()", that will no longer compile. Here's a couple of recent examples the Guava authors have fixed. Fortunately they were in internals and not their public API, so users won't care. https://code.google.com/p/guava-libraries/source/detail?r=7de3cbca3854ae0d9e9f7973a8f3cfe855a2407a https://code.google.com/p/guava-libraries/source/detail?r=7d... https://code.google.com/p/guava-libraries/source/detail?r=257148b2901c8b8ec1b06d9c10804300ac3d06d0 https://code.google.com/p/guava-libraries/source/detail?r=25...
- kvtrew76557 13y agoStill quite far behind what is provided by C# and Scala, among others. At least it's a step in the right direction. These are the first major language changes to Java in nearly a decade, say what you like about Oracle, but at least they have the funds to develop Java whereas Sun was running on empty.
- SwellJoe 13y agoAnd, yet, one of the languages you've mentioned (Scala), and many other languages that have moved faster than Java (most of the ones in common usage today, in fact) have far smaller budgets than even Sun was able to throw at Java. Does it really take such a large budget to improve Java? Why does it take so much larger a budget than, say, Go or Haskell or Python or Scala?
- RyanZAG 13y agoJava is very heavily set on backwards compatibility - no new feature is allowed to affect existing code and any new features must fit into the existing features. This is different to Python for example where they had backwards incompatible changes in v3. Another issue is the depth of the process on each change: there are a number of discussions on each feature with multiple proposals to determine the best way to implement any feature and how it will fit in, etc. The number of companies and people involved in the feature design and implementation in each change is generally an order of magnitude greater than those other languages. Comes down to heavy bureaucracy and design by committee creating a very long process - but the end result is generally extremely well thought through and tested, so I'm personally not complaining since I'm not footing the bill.
- frowaway001 13y ago> but the end result is generally extremely well thought through and tested Have you looked at the API of function types? If we needed a definition of incoherent, overcomplicated, painfully stupid non-sense, this would be it. I'd say the issue with Oracle's style of development is that it is primarily time-driven which just doesn't work for evolving languages. Features are not developed and shipped when they are ready. Instead, they decide that they want to ship X in the upcoming version Y and sacrifice the quality to reach the dead-line. Of course, stuff is ugly and inconsistent if it has been rushed all the time. That the persons involved in designing those features are completely under-qualified doesn't help either.
- jhawk28 13y agoIt wouldn't be a new version of Java if it didn't have a new Time API.
- mess 13y agoCan we expect any improvement in startup time so that it becomes a little bit more suitable for command line tools?
- melling 13y agoJava 9. Project Jigsaw. Here's a blog from 2008 that discusses it. https://blogs.oracle.com/mr/entry/jigsaw https://blogs.oracle.com/mr/entry/jigsaw
- mike_hearn 13y agoHmm I've found the latest versions to already start up very fast. What are you comparing against currently? I use command line tools written in Java all the time and don't really notice it.
- hrjet 13y agoBtw, if you want Lambdas now, you can try this project: https://github.com/orfjackal/retrolambda https://github.com/orfjackal/retrolambda "Retrolambda lets you run Java 8 code with lambda expressions on Java 7 or lower. It does this by transforming your Java 8 compiled bytecode so that it can run on a Java 7 runtime. After the transformation they are just a bunch of normal .class files, without adding any runtime dependencies."