Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
—
Trisha Gee (@trisha_gee)
Developer & Technical Advocate, JetBrains
Java 9 in Anticipation:
Features and Tooling
Safe Harbour
Blah blah, don’t rely on anything I’m saying, I’m
not committing to anything, estimates are hard,
things change, this is just what’s in our head
right now, no promises. OK? kthxbai
Java 9
Jigsaw, yay!
But it might break everything…
…and I don’t need it anyway.
So, thanks but no thanks.
I’ll wait for Value Types.
Java 9 is so much more than Jigsaw
274: Enhanced Method Handles
275: Modular Java Application Packaging
276: Dynamic Linking of Language-Defined Object Models
277: Enhanced Deprecation
278: Additional Tests for Humongous Objects in G1
279: Improve Test-Failure Troubleshooting
280: Indify String Concatenation
281: HotSpot C++ Unit-Test Framework
282: jlink: The Java Linker
283: Enable GTK 3 on Linux
284: New HotSpot Build System
285: Spin-Wait Hints
287: SHA-3 Hash Algorithms
288: Disable SHA-1 Certificates
289: Deprecate the Applet API
290: Filter Incoming Serialization Data
292: Implement Selected ECMAScript 6 Features in Nashorn
294: Linux/s390x Port
295: Ahead-of-Time Compilation
297: Unified arm32/arm64 Port
298: Remove Demos and Samples
Free Lunch!
• Better Use of Memory
• Better Performance of:
• Locking
• Secure Apps
• Graphics
• Better Use of Hardware
• Better Documentation
• Prettier Graphics (Windows and Linux)
• Faster Compilation
Compiling with Java 9
Java 9 Functionality and Tooling
https://wiki.openjdk.java.net/display/Adop
tion/JDK+9+Outreach
Your code might break!
Try it out now to find out sooner, not later
• 214: Remove Deprecated GC Combinations
• 231: Remove Launch-Time JRE Version Selection
• 240: Remove the JVM TI hprof Agent
• 241: Remove the jhat Tool
• 260: Encapsulate Most Internal APIs
• 289: Deprecate the Applet API
• 298: Remove Demos and Samples
Going Away
• 158: Unified JVM Logging
• 223: New Version-String Scheme
• 245: Validate JVM Command-Line Flag Arguments
• 248: Make G1 the Default Garbage Collector
• 271: Unified GC Logging
Possible Unexpected Behaviour
Jigsaw
• Generation of module-info.java
• Syntax support for module-info.java
• Code completion in module-info.java
• Compilation of multi-module projects
• Quick fixes to add requires statements
IntelliJ IDEA 2017.1
• Automatic generation of module-info.java
• IntelliJ IDEA module structure recognised on
import
• JLink artifacts
IntelliJ IDEA 2017.?
We’d Love Your Help
https://youtrack.jetbrains.com/issue/IDEA-
154240
Easy to Use Features
New Methods on the Streams API
269: Convenience Factory Methods for
Collections
213: Milling Project Coin
Private Methods on Interfaces
277: Updated Deprecation
102: Process API Updates
266: More Concurrency Updates
JShell (repl)
https://java.net/downloads/adoptopenjdk/
REPL_Tutorial.pdf
We’d Love Your Help
https://youtrack.jetbrains.com/issue/IDEA-
161611
Interesting Tidbits
263: HiDPI graphics on Windows
224: HTML5 Javadoc
225: Javadoc search
248: Default Garbage Collector is now
G1
In Summary
Java 9 is more than Jigsaw
There’s quite a lot to gain
Better to find the pain sooner than later
http://bit.ly/j9IntelliJ
@trisha_gee

More Related Content

Java 9 Functionality and Tooling

Editor's Notes

  1. Also, everything I’m going to demo is early access
  2. Java 9 is coming!
  3. Hiding internal APIs Affecting libraries I use
  4. Firstly, show IntelliJ working perfectly fine with JDK 9 Show “sense” at the Java 8 level compiling with Java 9 Will have some missing pieces Can’t use underscores THIS SECTION IS ABOUT ERRORS THAT MIGHT NOW BE IN YOUR CODE
  5. I’m using 160
  6. Whole bunch of notes to help you out with adopting Java 9
  7. Defaults (GC) changing, validation being added, tools removed, internal APIs being hidden, logging messages changing
  8. Caveat: modules must be defined in corresponding IntelliJ modules Caveat: dependencies in IDEA modules must match Requires statements (there are quick fixes for this) Support is for the EA downloads, not the –jigsaw ones From version ?? Circular dependencies not supported right now
  9. This section is about taking advantage of new features
  10. IntelliJ supports, no warnings or errors
  11. Oxymoron Annotation params No warning on imports Wish the param had been called “doomed”
  12. Reactive Streams Completable Future
  13. https://youtrack.jetbrains.com/issue/IDEA-161611 Please do give us feedback
  14. https://youtrack.jetbrains.com/issue/IDEA-161611 Please do give us feedback
  15. Currently a work in Progress
  16. Can generate inside IntelliJ with… -html5
  17. Including camel case search http://download.java.net/java/jdk9/docs/api/overview-summary.html
  18. Modules, separation of concerns
  19. Unless you’re using Gradle