Everything You Ever Wanted to Know About Java and Didn’t Know Whom to Ask
Speakers: Everyone 🙂
For more blog posts, see The Oracle Code One table of contents
Q&A
- What is the best way to get a new method/feature into Java?
- Discuss, open JEP, debate. Search Thread.onSpinWait() for an example
- Discussion first is important. Starts discussion about problem. The code provided isn’t always the best way to solve it.
- The thing that ends up happening is not what you started with
- How to integrate collection PL/SQL in Java?
- <missed answer>
- Why is TreeMap implemented as a red black tree?
- best/only way to do it
- balanced tree
- Is Java too slow?
- Always want faster
- Not too slow for a language with a statically compiled language
- Tune for use case
- Java will work faster on CPU don’t have yet. JIT compilers will optimize for it.
- Is String interpolation coming?
- Java 12 “briefly” had raw string literals
- Recognize sprint interpolation is valuable
- Need to figure out a way to do cleanly
- Need to get multi line done. Then escape sequences. Then string interpolation
- How move past Java 8?
- Business and technical question
- First step: will it compile/run
- Don’t need to rewrite everything with new features
- Business might not want to spend money on technical problem
- A handful of people have only Java 11 in prod. Many people have one app/POC in prod. A lot of people only Java 8.
- Java 9 and 10 is irrelevant. Nobody supports. Binaries not rebuilt with security updates.
- The technical challenges are libraries that used Unsafe or assumed version strings begin with 1.x.
- Evangelism message: upgrading to a higher version of Java is just like upgrading to a later version of 8.
- Counterpoint: People have jars that don’t run on 11.
- Sometimes features or APIs are removed.
- How do you look at OSGi?
- Nobody does anymore
- Are you happy with the new release cycle?
- Bruno interviewed Brian Goetz who said he was skeptical at first, but now done four times and smooth.
- Java 13 came out this week. Brian was at Code One. Not managing process. No longer have months of meetings about release.
- Deprecate serialization?
- No plans
- Many problems.
- There is a need for something like serialization.
- Brian wrote up ideas: http://cr.openjdk.java.net/~briangoetz/amber/serialization.html (Not a proposal for replacing serialization)
- How do we keep up with six month releases?
- Try when come out.
- We know when they come out
- Not a lot will break if do each time
- Counterpoint: Play on laptop, but don’t use features until LTS comes out. If using 12.0.2 and security issue, you have to run 13 when it is 3 weeks old. Going to prod on feature release is risky.
- Real tuples in Java?
- Proposal for records in Java
- Is it possible to break a nested loop in Java?
- Yes with labels. [but please don’t].
- Fixing exception handling on lambdas
- Aware of issues
- Not convenient to deal with
- Ideas, but no current plans
- Map on how to choose a JDK for a given use case
- AdoptOpenJDK and Java Champions discussing how to create that map
- New features we are looking forward to
- Value types
- Pattern matching
- Generic specialization
- How long will Unsafe be around
- However long it takes to pull out all the useful features
- ex: Java 9 var handles
- Will take years
- Low level libraries that are useful
- ASM
- Byte Buddy
- Type extraction on return values
- Return a tuple and set to multiple variables
- “Let’s compare Java to Kotlin”
- Could write something like it with pattern matching
- Why are Strings in Java harder than other languages?
- Strings have evolved
- Unsolved problem
- Changed a lot underneath
- String concatenation now performed by invoke dynamic
My take
I like how he accepted questions both verbally and via Twitter. The variety of questions was fun. I like that Gil asked the “who is on Java 11” question well. He asked granularly enough to answer honestly and realistically. Stuart did a great job with his Dr Deprecator character when there was discussion about APIs being removed.