[2019 oracle code one] java keynote

For more blog posts, see The Oracle Code One table of contents


Quantum Computing – Jessica Pointing

Good analogy to electric bike

  • Fundamentally new type of computer
  • Solves specific type of problems faster
  • Encryption
    • 100 seconds to find multipliers of very large number
    • Shor’s algorithm
    • Can break encryption methods.
    • Need a large quantum computer to do so which hasn’t been built yet
    • Research on post quantum cryptography
  • Simulate atoms and molecules
    • Can simulate interactions and discover new medicines
    • Can design new materials
  • Quantum machine learning
  • Unstructured search – can find match in square root of n tries – grover’s algorithm
  • Superposition – can see multiple states at same time. This means can process multiple states at same time.
  • 10^90 states if have 300 qbits
  • Quantum gates – combine to solve problem
  • At end of quantum algorithm, do measurement to get classical result
  • Upcoming book: Quantum Computing for Java Developers Code examples: https://github.com/johanvos/quantumjava
  • Can build quantum computers with superconductors, trapped ions, photons (light), diamonds. Still TBD which is equivalent of transitiors.
  • Currently 50 physical quantum bits
  • Goal is large scale quantum computer with millions of qbits
  • Currently compare quantum algorithm to best classical supercomputers
  • MATHS – Milestone, Applications, Theory, Hardware, Shift

Java SE

Stability – Gil Tene (Azul) and Bruno Souza

  • Java surfing to the cloud Duke is the Java 13 mascot
  • Need to keep stability with faster cadence
  • JCP was 20 years old last year
  • Need compatibility/stability so companies can compete on their products
  • TCK ensures compatibility

Motivation – Videos

  • Migrating to Java 11 Modules
  • Most widely used libraries now work with Java 9+ plus
  • Plugged Java 13 and licensing/support [If you care about support, you should be on 11 not 13]
  • Keep dependencies up to date so easy to upgrade and should anyway [we should also floss every day]

Compatibility – Three people [missed names but one is Mala Gupta]

  • New Relic will be compatible with Java 13 this month
  • CI/CD pipeline. Run tests against multiple JDKs.
  • Early access builds of 14 already availability
  • Used to take months/years for IDE to support
  • JetBrains has 4 months release cycle. Release new version with all new language features

Subscription – Sabre

  • When down, passengers stranded and some planes can’t fly
  • Support important

New generation

  • Book Emmy in the Key of Code
  • 12 year old girl learns code
  • Novel in verse/poetry
  • [This book looks awesome!]
  • public static void main(String[] args) – “You aren’t going to understand what this means so memorize it like a song”

Java Language Architect – Brian Goetz

  • Rapid release cadence – more features, change in how plan/design/deliver new features
  • Missing the boat by 6 months isn’t as significant. So less time on release management.
  • Less time one feature blocked on another
  • Did quick walkthru of features added in Java 10+
  • Each release has hundreds of smaller enhancements and bug fixes
  • With big releases, motivation to upgrade.
  • Now big features broken up into smaller features and delivered in phases. Need to adjust sense of what constitutes something new
  • Language improvements make us more productive
  • Platform improvements increase performance and other non functional requirements without changing code

Java 13 – Michael Vidstedt

  • Chart showing performance improvements over time for new features
  • AppCDS improves startup (Application Class Data Sharing). VM can refer to information from build time
  • Also investing in GC performance

Projects – Brian Goetz

  • Amber – Right sizing lambda ceremony
    • Switch expressions. IntelliJ offers to refactor switch statement into expression
    • Text blocks/multi line strings. Leading space before columns with “”” on each line considered accidental and not preserved.
    • Domain class – “record” type instead of class. Don’t need to specify equals/hash code/getter/setter. Heard this last year because some features take more than 6 months to develop
  • Valhalla – linking up language with modern hardware
    • “inline” declares that object identity not important so fields can be stored near each other in memory
  • Panama – interacting with native code. expect preview version for accessing off heap memory in next year. Also working on vector API
  • Loom – continuations in JVM and fibers in JDK

My take:

The quantum talk was great. Lots of props and concepts. The imagery of spinning a tourist giant frosted donut reinforced the message really well. I like that Bruno wore is flag/cape. Added some fun. I like that the “commercial” bits were short. The children’s book looks awesome. Excellent start to the conference.

Also, awesome that there were some tables in the back with power for laptops and typing.

Leave a Reply

Your email address will not be published. Required fields are marked *