17 ms·
JDK 8 Release Notes
- netcraft 13y ago> The expiration date for JRE 8 is 05/15/2014 How long till most people will target 8? I think we will wait for at least a few patches first.
- lmm 13y agoMy employer was using it already, via the prerelease builds (until we found new relic didn't work with it).
- kyrra 13y agoFor clarity, expiration date[0] is just means the JRE will not be considered "up-to-date" anymore. At that point, the JRE will check for updates and ask the user to upgrade. [0] http://docs.oracle.com/javase/8/docs/technotes/guides/jweb/client-security.html#jexpire http://docs.oracle.com/javase/8/docs/technotes/guides/jweb/c...
- maaaats 13y agoWe only do backend stuff here, which means we have perfect control over versions. So we're already ready for running 8, and will do so soon.
- mtct 13y ago3-5 years as usual
- benjiweber 13y agoWe've using 8 in production for some time, as we slowly migrate things to it. We didn't want to start new projects without using Java 8 language features as it's such a dramatic change. It has been feature frozen for a long time and even the pre-release builds have had a lot more testing and stabilisation than other software that people don't think twice about using. There is of course a risk adopting new technology early, it depends what kind of things you are building/running.
- bane 13y agoYou know, I've been messing around with Java little lately. Nothing too fancy. It's actually not a bad language -- with a modern IDE it's actually pretty quick and breezy to work with. If the standard library was cleaned up and the warts were all removed and filled in, even if it broke compatibility (call it Java X or the Latte language or something) I'd be okay with that. There's too much old 90's cruft hanging around making usage of different pieces non-standard and lots of over-objectizing everything so you end up having to assemble lots of things out of little pieces, boilerplate-like, that should just be a single import and instantiation. The modern JVM is surprisingly quick and robust technology and I've been pretty happy with it in my limited tests. I ported some old Perl algorithms to it and got some really good speed out of it once I benchmarked some of the collections a little. Some things should just be outright fixed, like a proper regex literal so I don\\'t have to \\e\\s\\ca\\\p\\\\e everything so much\\\\\//\/\\. It's "got good bones" and a refurb of the entire thing to bring it focus could breath a lot of long-term life into it. edit I guess what I'm trying to say is it would be great if the language was informed a bit more with what's going on in the dynamic languages space like Go has been. I like how Python is about as clear as Java code is, but it's always seemed a little more quick and breezy to work with. This is something I think Go got right and it'd be great if Java sort of caught onto this.
- netcraft 13y ago>If the standard library was cleaned up and the warts were all removed and filled in, even if it broke compatibility (call it Java X or the Latte language or something) I'd be okay with that this is what groovy and kotlin attempt to do. groovy is backwards compatible with java as well, in most cases java code is valid groovy code.
- bane 13y agoI've always been reticent to learn these offshoot dialects of languages unless I really needed to. I'd much prefer it if they were treated as syntax experiments, and good ideas from them filtered back into the main language.
- 13y ago
- suyash 13y agoYay!! Java 8 is released!! My favorite parts: - invokedynamic : http://stackoverflow.com/questions/6638735/whats-invokedynamic-and-how-do-i-use-it http://stackoverflow.com/questions/6638735/whats-invokedynam... - Project Nashorn : http://openjdk.java.net/projects/nashorn/ http://openjdk.java.net/projects/nashorn/ - lambda expressions : http://openjdk.java.net/projects/lambda/ http://openjdk.java.net/projects/lambda/
- aardvark179 13y agoInvokeDynamic came in with Java 7. I've got a large code base here that uses it extremely heavily and it's great, though you do need to do some careful tuning to really make it perform, and then retune when they change the implementation. :-)
- acchow 13y agoAs noted in your link, invoke dynamic isn't intended to be used for Java developers - it's intended for non-Java languages running on the JVM.
- suyash 13y agoyes, that's the magic of it! You can run code dynamically from other languages.
- hansjorg 13y agoNashorn is said to be high-performance, and I've looked around for benchmarks several times since it was announced, but I still can't find anything but this: https://github.com/tadas-subonis/java-nashorn-performance-sandbox https://github.com/tadas-subonis/java-nashorn-performance-sa... What gives? Wouldn't a real comparison to Rhino and V8 (at least) be interesting? Edit: strike that. Found someone who ran Octane and SunSpider and compared it to V8 and Spidermonkey: http://wnameless.wordpress.com/2013/12/10/javascript-engine-benchmarks-nashorn-vs-v8-vs-spidermonkey/ http://wnameless.wordpress.com/2013/12/10/javascript-engine-...
- eropple 13y ago
- WoodenChair 13y agoThe install of JDK 8 on OS X is surprisingly straight forward. I just double clicked, selected yes a few times in a standard OS X install dialog, and I was up and running... now running applets with all of this security is another matter.
- suyash 13y agoDownload the JDK/JRE from Oracle: http://www.oracle.com/technetwork/java/javase/downloads/index.html http://www.oracle.com/technetwork/java/javase/downloads/inde...
- melling 13y agoAnyone know what Google is going to do about Java 8 compatibility on Android? Not being able to adopt lambdas on mobile is a bummer.
- masklinn 13y agoAFAIK they still don't support all of Java 7 so...
- jug6ernaut 13y agoThey support "parts" of java7, but not everything.
- chwahoo 13y agoMaybe worth a look for you: https://github.com/orfjackal/retrolambda https://github.com/orfjackal/retrolambda
- mihn 13y agoApparently Android is not using Java, but something that looks like Java. I bet Google vs. Oracle trial can be attributed to that. :)
- octopus 13y agoActually they use Java the language, except that the code doesn't run on JVM but on a different VM (Dalvik at this time). Dalvik supports Java 6 and parts from Java 7.
- general_failure 13y agoDalvik is dead. Art is the new king
- octopus 13y agoMaybe in the future, I doubt anyone, except Android developers, even knows about Art. Art is still experimental and not enabled by default.
- maaaats 13y agoIntelliJ just pinged me with an update, and checking the release notes it says "ships final support for java 8". Sweet!
- suyash 13y agoA better light weight alternate is Netbeans 8 that also just got released and has full Java 8 support in addition to many many other features: https://netbeans.org/community/releases/80/ https://netbeans.org/community/releases/80/
- maaaats 13y agoI'm not sure why you felt the need to add "a better light weight", why not just say "Netbeans also got Java 8 support"? This isn't the place to start a flamewar.
- peterashford 13y agoOn account of it being better and more light weight? :o)
- gamegoblin 13y agoBetter is subjective, and the cause of many flame wars.
- peterashford 13y agoNote the presence of a smiley. It indicates an attempt at humour.
- benjamincburns 13y agoHitler. There, I lose. Everybody can go home now. :-)
- afsina 13y agoJava 8 made our in-house ASR engine %5-10 faster. Free performance is always welcome.
- vladimirralev 13y agoWhat kind of operations do you do? Fixed/floating point? Allocate memory or pool?
- afsina 13y agoA lot of floating point operations are done in GMM likelihood calculations. Dynamic decoding with Viterbi beam search and language model queries are other operations. We pool some memory but we do not try hard for this. Allocation is cheap in Java. Cache aware design saved a lot of performance for us.
- brunnsbe 13y agoHopefully JDK 8 will have a better release than JDK 7: http://searchhub.org//2011/07/28/dont-use-java-7-for-anything/ http://searchhub.org//2011/07/28/dont-use-java-7-for-anythin...
- suyash 13y agoHere is Chief Java Platform Architect: Mark Mark Reinhold’s Blog about JDK 8 and the key main features: http://mreinhold.org/blog/jdk8-ga http://mreinhold.org/blog/jdk8-ga
- tete 13y agoI'd really start considering Java if it wasn't for Oracle.
- keypusher 13y agoUse OpenJDK.
- ivanr 13y agoFor me, the best part of this release is the fact that the TLS stack has been significantly improved, and is now quite good. The lack of some critical features in Java 7 (e.g., inability to enforce cipher suite order) made TLS effectively unusable. The list of improvements is quite long, actually: - Server Cipher Suite Preference - Strong Server Ephemeral Diffie-Hellman Parameters - Authenticated (GCM) Suites - Hardware Acceleration on Intel and AMD processors - Server-Side SNI Support - Ability to disable client-initiated renegotiation - TLS 1.2 enabled by default in client mode - Clients support Ephemeral DH over 1024 bits More details here: http://blog.ivanristic.com/2014/03/ssl-tls-improvements-in-java-8.html http://blog.ivanristic.com/2014/03/ssl-tls-improvements-in-j... And there are more security improvements documented here: http://openjdk.java.net/projects/jdk8/features#core/sec http://openjdk.java.net/projects/jdk8/features#core/sec
- kyrra 13y agoThe DH size support is required for some US gov certifications I believe. Maybe FIPS 140-2 or -3.
- lvh 13y agoI'm very happy with the JVM in general, but I really, really, really wish they fixed the start up time. People compile Clojure down to Javascript for command line tools precisely because of this. lein <anything> takes annoyingly long, so I don't do it. I realize this is not a real concern for them for e.g. servers, but I wish they had some developer- or desktop-specific configuration that would start about as fast as a Python VM. I don't even care if it runs code (a reasonable fraction) slower.
- pron 13y agoThey are working on this. See this talk about the modularization of the JDK in Java 9, which includes bundling of lean Java runtimes: http://parleys.com/play/52549d02e4b0a43ac12124be http://parleys.com/play/52549d02e4b0a43ac12124be
- democracy 13y agoCan you please give a use case of a program that a few hundred ms delay during startup would be an issue?
- gkya 13y agoFew hundred milliseconds? I played with clojure a month or so ago and invoking lein repl was ~7.5 seconds.
- tieTYT 13y agoYes, I can confirm this. Clojure seems like a good fit for tiny projects that are little more than scripts, but the start up time makes them kind of annoying to manually test. Fortunately Clojure does have a REPL.
- gkya 13y agoThe best cure to this problem is nREPL. It basically is an REPL server. There are plugins for Emacs (nrepl) and vim (vim-fireplace). With these tools, one may start a user repl and run tests within that. I have written a humble guide to set up Emacs for clojure here: http://gkayaalp.com/2014/01/28/taste-clojure.html#emacs http://gkayaalp.com/2014/01/28/taste-clojure.html#emacs My emacs configuration repository is gone thought; I'm using vim these days. A JVM with smaller memory and cpu needs and faster startup would make me consider using Scala/Clojure again.
- yuhong 13y agoFree updates for Java 7 will end in a year: http://www.oracle.com/technetwork/java/eol-135779.html http://www.oracle.com/technetwork/java/eol-135779.html
- sev 13y agoFor those who may not have seen it, here's a good primer/tutorial for Java 8: http://winterbe.com/posts/2014/03/16/java-8-tutorial/ http://winterbe.com/posts/2014/03/16/java-8-tutorial/
- MBlume 13y agoPackaging Java 8 for debian/ubuntu: http://michaelblume.tumblr.com/post/80003780922/packaging-java-8 http://michaelblume.tumblr.com/post/80003780922/packaging-ja...
- hrjet 13y agoI am waiting for the OpenJDK release on Debian. In the meanwhile, you can also use the WebUpd8 PPA: http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-...
- bhauer 13y agoIf you're curious about the developer-facing changes in Java 8, I of course recommend the blog entry we wrote up last year [1]. It's a bit hard to believe it's been a year. [1] http://www.techempower.com/blog/2013/03/26/everything-about-java-8/ http://www.techempower.com/blog/2013/03/26/everything-about-...
- film42 13y agoSuperb post! Thanks for sharing.
- hnriot 13y agoJava+Guava is decent. Without the work that Google has done Java is incomplete and missing too much.
- pron 13y agoA very interesting new feature that is not talked about a lot is type annotations, which add pluggable type systems to Java with the Checker framework: http://docs.oracle.com/javase/tutorial/java/annotations/type_annotations.html http://docs.oracle.com/javase/tutorial/java/annotations/type... http://types.cs.washington.edu/jsr308/ http://types.cs.washington.edu/jsr308/
- javajosh 13y agoIt's really too bad lambdas in Java 8 don't do non-final variable capture; other than that, I'm very pleased with this.
- film42 13y agoI believe it will let you as long as you don't modify the variable. Am I wrong?
- boohoofoodoo 13y agoany sources for apt-get available?
- webreac 13y agoDoes anyone know if all the security issues that have given bad reputation to java are fixed in java 8 ? Is it safe again to develop java applets ?
- hibikir 13y agoIt is never safe to develop Java applets. It was a silly concept when it was devised, and it's still a silly concept today. We aren't developing ActiveX controls either, right? If you have an environment where you need a full client, and the developer is trusted, use Webstart: You have to actively accept something on Webstart. If you do not trust the developer, make the interface in a regular webpage.
- datawander 13y agoPeople will look back upon this date with utter lament because the world of lambdas has been unleashed upon a much more dangerous and wider world of programmers.
- Randgalt 13y agoAnd on this day, Scala lost it's raison d'etre :P
- nickbauman 13y agoLack of Tail Call Optimization is still a bummer in some cases.
- jevinskie 13y agoDoes anybody know if static libraries made it in? http://openjdk.java.net/jeps/178 http://openjdk.java.net/jeps/178
- spiralpolitik 13y agoI have to admit I thought Java was dead in the water after Java 6, but Java 7 while a fairly quiet release was a decent release and Java 8 actually moves the language forward into a better place. As for the future here's what I would like to see: - Separation of language and libraries. Really the JDK should just ship with just a very small core of classes and everything else should be optional installed via a dependency or package manager. I know jigsaw is going in this direction, but I fear they are going to go the same way as J2ME with profiles. They should also clean up the cruft while they are doing this. This would allow the libraries to evolve separately from the JDK and even allow 3rd party framework to flourish while still keeping things reasonable manageable. - Multiple return types. Scala has hacked around it, Python has them, Go has them. Bite the bullet and implement them so you can do sensible error handling without exceptions or returning `null`. While they are at it they could also fix the type system to finally allow `Integer hello()` and `String hello()` to exist in the same class. - Implement Categories (or mix-ins). Seriously if I have to see another class called StringUtils or IntegerUtils I will gouge my eyes out. - Get rid of the primitives. I read somewhere that this was on the cards for Java 10. - Implement proper Generics. - Implement @property just like Objective-C and .NET so that 80% of class files aren't getters and setters. I'm really surprised they never did this when they implemented annotations as this was the first obvious annotation to add. I know you can do it with Aspect J but you shouldn't have to. There was a JSR for this at one point but it seemed to disappear into the ether.
- rossjudson 13y agoMultiple return types: Questionable benefit there. Exceptions are nice when used properly. Option classes handle the rest. Categories: Default methods probably do what you want. Get rid of primitives: Are you nuts? It turns out computers work on primitives. It's good to support them. "Proper" generics: maybe you mean specialization, or maybe you mean reification. It's a choice. Properties: If they irritate you that much, just use something that will generate them for you, using standard annotation processing.
- spiralpolitik 13y agoDefault methods work nothing like categories. For example you can't use a default method decorate String with an additional method usable on every instance of String. http://rypress.com/tutorials/objective-c/categories.html http://rypress.com/tutorials/objective-c/categories.html
- drderidder 13y agopg had an interesting take on "hackers radar" wrt Java. worth a read. http://www.paulgraham.com/javacover.html http://www.paulgraham.com/javacover.html
- RyanZAG 13y ago> 2001 It's silly to compare Java8 with Java1.4? 1.3? from 2001.
- donniezazen 13y agoWhy does Android requires obsolete JDK 6 and not the latest stable version? Android should probably be the biggest project that uses JVM.
- asmosoinio 13y agoBecause it does not use JVM. The language is Java, but the virtual machine is Dalvik.
- donniezazen 13y agoWhy do they still use JDK 6 and not the current default version?
- asmosoinio 13y agoBecause Dalvik does not support Java 8 features, and those would need to be implemented first. Java 8 was only just now released in final form. Dalvik does have support for all Java 7 features: http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7 http://tools.android.com/tech-docs/new-build-system/user-gui... Dalvik will most likely be replaced with ART (Android Runtime) at some point: http://source.android.com/devices/tech/dalvik/art.html http://source.android.com/devices/tech/dalvik/art.html ART has been in the works for at least two years now.
- donniezazen 13y agoWhy does Android requires obsolete JDK 6 and not the latest stable version? Android should be probably the biggest project that uses JVM.
- augustl 13y agoThere's a Node.js implementation on top of Nashorn, the JS engine that comes with JDK 8 https://avatar-js.java.net/ https://avatar-js.java.net/ Pretty cool stuff! I hope someone makes an easy way to render FB react modules on the server without relying on a separate Node.js process.
- AmrMostafa 13y agoI'm surprised no one mentioned the departure of permgen space and the dreaded PermSize and MaxPermSize JVM arguments. While it was actually replaced with a new "metadata" space, the latter is mostly transparent, unlike the former. You can read more about the change here: http://java.dzone.com/articles/java-8-permgen-metaspace http://java.dzone.com/articles/java-8-permgen-metaspace