[2018 oracle code one] wednesday keynote

Wednesday keynote

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


IBM

Pratik Patel & Mary Grygleski. And John Duiovich & Tim Ellison (An four people from the community)

  • #callforcode. Disaster prep code.
  • Cloud is reality whether public cloud or in house cloud
  • Eclipse foundation community – Jakarta EE and Microprofile
  • starting to do more polyglot environments in cloud native; puts more pressure on JVM
  • challenges – varied programming models, dynamic environment, cloud economics (paying for resources used)
  • opportunities – acss to powerful services, devops integration, responsive behavior
  • J9 VM is open source (Open J9)
  • Next level – JVM itself becomes a cloud service
  • Demo of remote JIT service on two laptops (JIT compilation in the cloud)
  • Adopt OpenJDK
    • started Adopt a JSR when London Java Community started on EC
    • Looked at how to make easier to build OpenJDK
    • Build farm to crank out many different versions of Java
    • Aiming to support OpenJDK LTS releases for 4 years
  • Brought up all BM speakers. A lot of people! Threw socks at audience. One guy ran down the aisle so they made it more than aa few rows back.

Groundbreakers Avengers

  • Roles in skit
    • Dr Strange
    • Average developer
    • Thano Duke is villain – popping little kid balloons
    • JUG leaders as superheros. Two have masks so don’t kow who are. One has a Groot puppet!
    • Un conference forces! Said unconference rules
  • Did shout outs by country. Brazil was quiet. Asia was quiet. The   US was quieter than it should have been. The build up to the Netherlands orange shirt folks was great. Loud and in front.
  • Plot: need to find infinity stones. Had hidden objects under chairs
  • Un conference people brought out beer on stage. Had a “stone planning” session. Listed random acronyms and patterns
  • Got dig in about the lack of beer at ignite
  • Silly programming whiteboard exercise using tech buzzwords to see how any balls can fit in a schoolbus Good pun on bus!
  • A bunch of jokes about uploading the stones with different technologies
  • Used Java beyond the cloud to get Thanos Duke from outer space/orbit
  • Brought out Duke in costume on stage along with handler! Duke waddles so the speed is hillarious!

[2018 oracle code one] emerging languages bowl

Emerging Languages Bowl

Speaker: Trisha Gee (JetBrains) and Eugene Petrenko (JetBrains) – moderated by Raghavan “Rags” Srinivas

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


Rags talked about how this is a different format than the usual “script bowl”. I’ve never been so not disappointed

Java (Trisha)

  • Inspired features from scripting languages
    • Lambdas
    • Streams – would be hard to use without lambdas because would need anonymous inner classes
    • RPEL
    • var
  • Not a functional language, but idioms that came from functional languages
  • Not in Java
    • Immutable “var” – do you use var/val, var/let, var/final var? We have “final var”, but it isn’t immutable. Just prevents re-assignment. But are getting immutable collections.
  • Future
    • data classes [records]- Kotlin has this. Preview feature in Java 12
    • multi-line strings – Groovy has this.
    • Switch statements/pattern matching. Preview feature as well
  • Preview features are a good thing because can discuss with real code

Kotlin (Eugene)

  • Statically typed
  • Now official on Android
  • Concise – minimal boilerplate
  • Safe – avoid classes of errors like null pointers
  • Interoperable – use JVM and Android libraries
  • Tool friendly – works with any Java IDE
  • Can combine Java and Kotlin in same module
  • Kotlin invented in 2000. Version 1 came out in 2005
  • Can target Java 1.6 (or higher if want)

“The only way to learn a new programming language is by writing programs in it” -Dennis Richie

IntelliJ has plugin which gives sample tasks

Kotlin demo

  • fun main() {} – function – defaults to void return type
  • fun main() : ReturnType {} – function with return type. Can use generics in types
  • “Hello ${abc}” – string interpolation
  • Triple quotes – multi line string
  • trimIndent() – extra method
  • var/val – mutable/immutable
  • var x : String – not nullable
  • var x : String? – nullable
  • if ( x is Type) – auto casts inside if statement
  • fun Class.method() = impl – add method from outside class. It can even use instance variables from inside the class.
  • sealed class – all subclasses must be defined in same file
  • when/is – pattern matching

My take: I don’t know what the session was supposed to be, but this was fine. It was 10 minutes of Trisha and Eugene introducing Kotlin for 30. I have seen the intro to Kotlin talk before though. That said, I still needed Google for what one thing did.

 

[2018 oracle code one] evolutionary architecture in agile environment

Evolutionary architecture in agile environment

Speaker: Xavier Rene-Corail

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


“Conflicts”

  • Not that we don’t have a plan. We have a plan. But it can change
  • Emerging design – do have a high level design. Not chaos
  • Things change. There’s nothing that will not change. Make easy to change the things that will/might.
  • Prototype architecture. Working software over comprehensive documentation. Architects shouldn’t deliver paper docs

Software architecture is

  • “the important stuff (whatever that is)” – Ralph Johnson
  • finding internal *abiities
  • managing conflicting *abilities and determining which is most important

Agility is

  • ability to move quickly and easily – Oxford dictionary

Evolution of architectural styles

  • Monolith – not scalable, single point of failure
  • Layered – defacto standard for JEE apps
  • SOA – natively scalable, but cn turn into monolith
  • Microservices – now need orchestration
  • Severless – abstract more

Beware of

  • Dependency hell/service dependencies
  • Distributed transactions

General

  • Minimize coupling
  • Couple fro highly changing to infrequently changing
  • Ask users for feedback. Don’t overarchitect
  • Feature flags. Make safe to fail
  • Eat an elephant one bite at a time. Design that way too

Decide up front – programming languages and frameworks. These are difficult to change.

My take: Good session. My notes are “less good” because I was eating lunch during the design principles. So listening, but not blogging!