15 ms·
JDK 9 release schedule
- merb 10y agowell not too bad if they could deliver the jdk 10 (valhalla) a faster. jdk 9 is less important than jdk 10.
- jwn 10y agoLooking at http://openjdk.java.net/projects/valhalla/ http://openjdk.java.net/projects/valhalla/, I don't see a whole lot of value compared to JDK9. What's your basis for wanting 10 so badly?
- hyperpape 10y agoEveryone has their own priorities, but ValueTypes are huge. Also, I don't think this falls under Valhalla (and I'm not sure if it's been committed yet), but the possibility of reasonable type inference in Java 10 would make me rather happy.
- papercrane 10y agoI'm pretty excited about that one, it's JEP-286, http://openjdk.java.net/jeps/286 http://openjdk.java.net/jeps/286. Valhalla is pretty big. Goetz described it as pulling on a very long string. It's going to touch everything in the JVM, including reifing generics, although as I understand it, erasure of Objects may be here to stay for the language.
- whateveracct 10y agoErased generics will surely stay and are a good thing. If they were removed, Scala would be in trouble (or rather, scalac would have to perform erasure itself, which in turn would mean that interop from Java wouldn't be good anymore). What's broken in the JVM isn't erased generics but instead runtime reflection that is a lie due to erasure. Type erasure though is definitely an example of Java getting something very right for the wrong reasons.
- jdmichal 10y agoAre you attempting to separate the concepts of specialization vs reified generics? Java does neither right now, and both effects are due to type erasure -- the runtime simply doesn't have the necessary information. I'm not quite sure where you're trying to draw the line. Furthermore, runtime specialization (as opposed to compile-time) would seem to require reified types. So that further confuses things. But you can definitely have reified types without specialization, which I think is the point that you are trying to convey.
- int_19h 10y agoAside from backwards compatibility, what's good about type erasure for generics?
- jsmith0295 10y agoDoing it a better way is hard
- int_19h 10y agoIs it, though? The most basic implementation, where things are still erased at runtime by the JIT, should be fairly simple, although it will not give the expected perf gains, of course. Either way, CLR and C# did it a long time ago, and in the same time period when Java acquired its type-erased generics.
- jsmith0295 10y agoThey care too much about backwards compatibility I think. .NET had done generics this way from the beginning.
- dragonwriter 10y agoIt permits languages on the platform with substantially-richer compile-time type systems than the primary language on the platform with good interior stories (this was, IIRC, a substantial problem with Scala.NET.)
- merb 10y agowell as others already pointed out, value types. this changes the way how the JVM uses Memory in certain ways and might be a huge improvement for a lot of stuff. specialized generics. this is a huge one, too, less boxing is always a win. JEP-286 less typing. Maybe Project Panama and maybe a even better AOT. Compared to what JDK 9 brings, this is huge. JDK 9 brings a Module system which was already possible (and a lot of stuff around it which didn't exist), a new GC algorithm, Tiff Image I/O, jshell, ALPN, http2 client, reactive-streams. (P.S.: not everything is complete here, but this stuff will probably be used by most) JDK9 mostly brings stuff that was already missing and provided by other libraries. JDK10 will probably change a lot of more things in the JVM ecosystem.
- jwn 10y agoGood answer, thanks =) My question earlier was an honest question, asked out of curiosity...
- smoyer 10y agoIf you want less typing, then you definitely want Lombok (https://projectlombok.org/ https://projectlombok.org/). At JavaOne this year, they also showed a proposed shortcut for data object (@Data in Lombok). public class something(String name, int age) { ... }
- ap22213 10y agoI'm embarrassed to say that I've never understood the use case for Lombok. So, I write my code in Java with Lombok extensions. Then, another Java programmer goes to maintain it... and they have to learn Lombok?
- smoyer 10y agoThat was my reaction the first time I was introduced to it. I looked at it again two years later and it just clicked. What's really cool is that the developer who has to go maintain it has 20% as much code to maintain. Say you want a POJO with accessors, mutators along with equals and hashcode. Let it generate the methods by defining a class like: @Data public class something { String name; int age; } Lombok generates: public String getName() { ... } public void setName(String name) { ... } public int getAge() { ... } public void setAge(int age) { ... } public boolean equals(Something other) { ... } public int hashcode() { ... } public String toString() { ... }
- theandrewbailey 10y agoJDK 10 will have TLS Fallback SCSV and native ChaCha20 support, though I wish they were in JDK 9.
- samch 10y agoNot sure why you have to wait. I use ChaCha in production in JDK 8: https://github.com/bcgit/bc-java/blob/master/core/src/main/java/org/bouncycastle/crypto/engines/ChaChaEngine.java https://github.com/bcgit/bc-java/blob/master/core/src/main/j... Why would native be any better? I would think that as long as the implementation matches the reference it wouldn't matter.
- theandrewbailey 10y agoLast weekend, I added Bouncy Castle as the security provider in my dev environment, but my server did not show ChaCha20 in the list of available TLS ciphers. I was not convinced that my server was even using BC. Knowing that if you don't know what you're doing and mess around with crypto too much that you can get burned, I gave up. ECDHE RSA AES GCM for now.
- samch 10y agoI think I see where you're coming on that. For most of my applications, I terminate TLS connections with nginx. I do use ChaCha for high-speed encryption in other areas, though. The BC libraries have always worked great for me.
- imtringued 10y agoValue types combined with generic specialisation results in less memory usage, higher data locality, less gc pressure. Basically a big increase in performance on top of the already very good JIT.
- gravypod 10y agoDoes anyone have the full changelog of added/new features.
- geodel 10y agoHere is the list: http://openjdk.java.net/projects/jdk9/ http://openjdk.java.net/projects/jdk9/
- erl 10y agoI appreciate changes that make it easier to monitor and debug applications. Looking forward to some small goodies that I haven't heard much about before: http://openjdk.java.net/jeps/228 http://openjdk.java.net/jeps/228 - Add More Diagnostic Commands. For example more insight into JIT:ed methods and the code cache. http://openjdk.java.net/jeps/158 http://openjdk.java.net/jeps/158 - Unified JVM Logging. Logging from the JVM, e.g. GC logging and classloader logging, are configured and printed uniformly. http://openjdk.java.net/jeps/259 http://openjdk.java.net/jeps/259 - Stack-Walking API. Efficient API for walking the current call stack.
- usrusr 10y ago> http://openjdk.java.net/jeps/259 http://openjdk.java.net/jeps/259 - Stack-Walking API. Efficient API for walking the current call stack. Oh, nice! At any given moment in time, how many server CPUs are burning cycles to create a full StackTraceElement array, just because the logger is set up to provide the convenience of call site information with every write?
- tofflos 10y agoDoes anyone have a list of smaller gems that are not on that list? For example JDK 9 contains an implementation of the CRC32C-algorithm which can be used by web developers to create compact entity tags. I read somewhere that there is even hardware support for it but I'm unsure whether it's being utilized by the JRE. See http://download.java.net/java/jdk9/docs/api/java/util/zip/CRC32C.html http://download.java.net/java/jdk9/docs/api/java/util/zip/CR....
- spullara 10y agoThe next interesting thing for the JVM is value types in Java 10. It may convince me to use it pre release.
- bitmapbrother 10y agoI'd also add: Generic Specialization Reified Generics Native Function Calling Native Data Access New Data Layouts
- guipsp 10y ago>Reified Generics This will not happen.
- pjmlp 10y agoThis will happen: http://www.oracle.com/technetwork/java/javase/community/jlssessions-2016-3114175.html http://www.oracle.com/technetwork/java/javase/community/jlss...
- papercrane 10y agoProbably not at the language level. If you watch the Goetz talk you linked to he answers this at 50m36s. The bytecode and JVM will be able to represent riefied generics, but at the Java language level they'll still likely maintain erasure for Object types. https://www.youtube.com/watch?v=Tc9vs_HFHVo&list=PLX8CzqL3ArzUY6rQAQTwI_jKvqJxrRrP_&t=50m36s https://www.youtube.com/watch?v=Tc9vs_HFHVo&list=PLX8CzqL3Ar...
- pjmlp 10y agoI know, but with the JVM having full support, that might eventually change in Java 11 lets say, after the experience how everything went. Brian did not state they will never do it. Also the other languages could take advantage of it anyway, even a reiffied version of Java for example.
- javanese 10y agoSo, uh, how many people are using Java 8? I still see projects using Java 5...
- ygra 10y agoThe annoying thing is that Java 8 is the only currently supported version of the language. The glacial development speed somehow still manages to deprecate versions faster than they fall out of use.
- erl 10y agoWhile Java 8 is the only version that is freely supported from Oracle, it is still possible to buy commercial support for older versions of Oracle's Java platform. The speed at which they stop freely supporting older versions feels much like a way to squeeze big, slow moving organizations for support contracts.
- theandrewbailey 10y agoI am. Granted, it's only the blog hosted from my basement.
- brianwawok 10y agoMost not totally old projects are on JDK8. Don't look at some crufty apache product, but look at medium size business apps... those have all been JDK8 for a while now.
- Scarbutt 10y agoWill the "modular source code" feature help handle the "jar hell" problem?
- puppetmaster3 10y agoThis is posted a year early. Please post this in a year. I see no JSON, I have to use a 3rd party lib. And ... no word on fixing logging divergence.
- theandrewbailey 10y agoJava EE 7 has native JSON capabilities. https://docs.oracle.com/javaee/7/api/javax/json/package-summary.html https://docs.oracle.com/javaee/7/api/javax/json/package-summ...
- benjiweber 10y agoYou can map JSON onto java interface types with the built in Nashorn. http://paste.debian.net/883460/ http://paste.debian.net/883460/ ( May be incredibly unsafe, only just thought of it now. )
- Bjartr 10y agoJust in time for GWT to get support for Java 8
- ape4 10y agoIf you are doing dates the nice way as yyyy/mm/dd you should use dashes - ie yyyy-mm-dd. Let the slashes mean other styles.
- DiabloD3 10y agoOr nothing at all, the "filename" way of 20161018, my brain natively parses it that way now.
- Tharkun 10y agoOr you could not make assumptions like this. There are more ways to represent dates than there are bones in my body. What seems like a silly way to you might be the preferred way for someone else, for a variety of reasons.
- sytringy05 10y agoI cant wait for that REPL.. I've almost always got the intellij debugger running with the Evaluate Expression window open
- haalcion3 10y agoBeen coding Java for close to 20 years. Can anyone show me what's being done in the language to bring on newcomers, or did that ship sail 10-15 years ago? Some ideas that would bring people back: * Wildly new, terse, and clear syntax and a great library of built-in tools that are briefly and intuitively named. * Easily write and design interfaces that generate both/either back-end or matching integrated front-end code which is off in its own directory and can easily be used by existing JavaScript and HTML. * Similarly be able to generate the JavaScript front-end code that use those JS client libraries with easily writable/pluggable generators so that it can generate Angular 1.x, 2, ReactJS, Bootstrap, etc. in "best-practice" ways that can be updated frequently as the community changes. * Simultaneously provide the option to serve very similar pages using straight HTML, degrading even to the point that a text only browser could use the site easily. * Easily define responsiveness of pages. * Support multiple 3D, 4D, etc. interfaces with customizable inputs to be forward-compatible without overdoing complexity (i.e. it's really pluggable). * Similarly support generation of almost any kind of service integration, with easy pluggable authN/R. * Easily scalable. * Relational, noSQL, versioning DB (noms) support. * Make fun books for kids and a site where they can share what they've written, write games, build things, etc. * Make it integrate with every browser, even some older versions, operating systems. * Make it compile low-level vs. byte code so it's fast as shit.
- gshx 10y agoThanks for the bullets. This is a good list but some of the points like "Easily scalable" and "DB support" are not cheaply available in any runtime and require careful attention to detail as well as domain-specific thinking. IMHO, the JVM already does a lot of heavy-lifting in this regard.
- haalcion3 10y agoIt comes down to this: are those developing the language thinking about how to add features just to try to hone and hold on to the enterprise developers that still use it, or are they thinking about what would make it more fun, productive, and practical? Java's going to be around a long time. Those that stick with it will be fine. COBOL programmers made a lot of money in 1999, and some people still use Fortran. But, Java's original big mantra was "write once, run anywhere." Such idealism then. Cool things have been done in the past few years, but can't we do more?
- ksec 10y agoDoes anyone know if Truffle and Graal will ship with JDK 9 ?
- ivanche 10y agoWhile I can't say with 100% confidence, I listened Graal presentation at Voxxed Days Belgrade one month ago and the presenter (IIRC, Martin Tonchev) said it won't be ready for JDK9 and that they aim at JDK10.