My company and colleagues were so nice to let me attend Java Day Tokyo 2016!
Here is a summary of all the sessions I have attended.
Key Note: Innovate, Collaborate, with Java
- Java's future is bright and JDK 9 is on the way with many enhancements.
- Module System
- REPL
- 67 JEPs
- There were demos; a drone was flying and a pepper was uploading pictures to the cloud.
Session 1-C How Goldman Sachs works with open source (Speaker: Hiroshi Ito)
- 1/3 of the GS employee head counts are actually engineers.
- Signed the Oracle Contributor Agreement as a company.
- Has an established process for including external libraries.
- Heavy use of elastic search and private cloud.
- Released GS collections library and donated to Eclipse foundation to enable non GS employees to contribute.
- Contributed patches to Open JDK.
Latest news with NetBeans IDE (Speaker: Geertjan Wielenga)
- Fully open source
- Nice profiler and debugger
- Aligned with new Open JDK features.
- Maven integration, with a nice dependency graph.
- WebKit API integration
- Can immediately reflect css changes to the browser.
- With a plug-in, can inspect an element and jump to the corresponding source code.
- Multi cursor support
- Can be used as a foundation for a desktop application.
- Nekobean is cute
Java Concurrency, A(nother) Peek Under the Hood (Speaker: David Buck)
- Demo of how things can go wrong if concurrency is not coded against the Java memory model.
- The JIT compiler may modify execution order.
- Some CPUs can modify execution order.
- Concurrency bugs can be hard to reproduce -> Heisen bug. (bug does not happen when inspecting)
- When dealing with concurrency:
- Use a high level abstraction (i.e. use java.util.Concurrent), and avoid rolling your own.
- Test with the same hardware/JRE/configuration as in production
- The memory for Java the language is defined, but the memory model for the JVM is still WIP.
What HTTP/2 means to Java Developers (Speaker: David Delabasse)
- Web pages can be loaded much efficiently/faster:
- Server can push resources before being requested by the client.
- Compression of redundant information.
- Etc.
- The HTTP semantics will remain the same, so an application developer gets the full benefit without additional effort.
- A HTTP/2 client is on the way for JDK (JEP 110)
- Server side support is also there (Servlet 4 spec)
Introduction to Oracle JET (Speaker: Geertjan Wielenga)
- A collection of Javascript libraries that can make cool front ends.
- Built on Require JS and Knockout JS.
- Fully open source, hosted on GitHub.
- Lot of examples,
- There is a even GUI application builder so you don't even need to code for simple things.
I was especially excited to see the features of Netbeans IDE. I were to work on a pure Java project next time, this would definitely be the first pick. Also thought that as a clojure developer, it is important to be on top of what is happening in the Java eco system.