Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha...

161
Ola Bini JRuby Core Developer ThoughtWorks Studios [email protected] http://olabini.com/blog Future of the Java platform

Transcript of Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha...

Page 1: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Ola BiniJRuby Core DeveloperThoughtWorks Studios

[email protected]://olabini.com/blog

Future of the Java platform

Page 2: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About me

Page 3: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Page 4: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

Page 5: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

From Sweden - duh

Page 6: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

From Sweden - duh

Involved with several languages on the JVM:

Page 7: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

From Sweden - duh

Involved with several languages on the JVM:

Ioke

Page 8: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

From Sweden - duh

Involved with several languages on the JVM:

Ioke

JRuby

Page 9: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

From Sweden - duh

Involved with several languages on the JVM:

Ioke

JRuby

Jatha

Page 10: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

From Sweden - duh

Involved with several languages on the JVM:

Ioke

JRuby

Jatha

Member of the JSR292 expert group

Page 11: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

From Sweden - duh

Involved with several languages on the JVM:

Ioke

JRuby

Jatha

Member of the JSR292 expert group

Page 12: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

About meOla Bini

Works for ThoughtWorks

From Sweden - duh

Involved with several languages on the JVM:

Ioke

JRuby

Jatha

Member of the JSR292 expert group

Page 13: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java as a platform

Page 14: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java as a platformOther languages

Page 15: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java as a platformOther languages

Libraries

Page 16: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java as a platformOther languages

Libraries

Platform independence

Page 17: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java as a platformOther languages

Libraries

Platform independence

Higher level abstractions

Page 18: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java as a platformOther languages

Libraries

Platform independence

Higher level abstractions

Java the language as systems language?

Page 19: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java platform?

Page 20: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java platform?

Page 21: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languagesHeclJacl

ClojureYnc/Javascript

JoyJv-language

CALAardappel

FunnelMini

PLANSixx

BDC SchemeABCL

LiliJatha

BiglooSISCLispPS3i

HotSchemewebLISP

JajaJScheme

SkijKawauts

JBasicMapyrus

CONVERTHotTEACOCOANetLogoStarLogoAJLogo

Turtle TracksrLogoYoyo

TermWareXProlog

tuPrologJLogLL

javalogSmallWorld

BistroTalks2Obol

GroovyNiceScalaAnvildSelfHojo

CorrelateMetaJSather

QuercusFScriptSleep

WLShellJudoScript

JRubyJickleRhino

BeanShellResinJythonPnutsJanino

Join JavaJMatchiScriptYasslYoixW4F

PERCobolBex Script

Demeter/JavaCKI Prolog

Page 22: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: Clojure

Page 23: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ClojureLisp dialect - code as data

Page 24: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ClojureLisp dialect - code as data

Designed for the JVM

Page 25: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ClojureLisp dialect - code as data

Designed for the JVM

Powerful macros

Page 26: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ClojureLisp dialect - code as data

Designed for the JVM

Powerful macros

Good interoperability with Java

Page 27: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ClojureLisp dialect - code as data

Designed for the JVM

Powerful macros

Good interoperability with Java

Functional programming language

Page 28: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ClojureLisp dialect - code as data

Designed for the JVM

Powerful macros

Good interoperability with Java

Functional programming language

Concurrency

Page 29: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: Groovy

Page 30: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: GroovyDynamic, strongly typed

Page 31: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: GroovyDynamic, strongly typed

Object oriented

Page 32: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: GroovyDynamic, strongly typed

Object oriented

Designed for the JVM

Page 33: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: GroovyDynamic, strongly typed

Object oriented

Designed for the JVM

Inspired by Python, Ruby and Smalltalk

Page 34: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: GroovyDynamic, strongly typed

Object oriented

Designed for the JVM

Inspired by Python, Ruby and Smalltalk

Good integration with Java

Page 35: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: Scala

Page 36: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ScalaMultiparadigm language

Page 37: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ScalaMultiparadigm language

Object orientedness

Page 38: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ScalaMultiparadigm language

Object orientedness

Functional programming

Page 39: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ScalaMultiparadigm language

Object orientedness

Functional programming

Designed for the JVM

Page 40: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ScalaMultiparadigm language

Object orientedness

Functional programming

Designed for the JVM

Concurrency: Immutability and actors

Page 41: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ScalaMultiparadigm language

Object orientedness

Functional programming

Designed for the JVM

Concurrency: Immutability and actors

Includes many advanced language features

Page 42: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ScalaMultiparadigm language

Object orientedness

Functional programming

Designed for the JVM

Concurrency: Immutability and actors

Includes many advanced language features

Pattern matching, closures, parametric polymorphism

Page 43: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Other languages: ScalaMultiparadigm language

Object orientedness

Functional programming

Designed for the JVM

Concurrency: Immutability and actors

Includes many advanced language features

Pattern matching, closures, parametric polymorphism

Sequence comprehensions, mixins, infix or postfix statements

Page 44: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual Machine

Page 45: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineThe JVM is a great virtual machine

Page 46: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineThe JVM is a great virtual machine

Flexible online code loading (with safe bytecodes)

Page 47: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineThe JVM is a great virtual machine

Flexible online code loading (with safe bytecodes)

GC & object structure

Page 48: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineThe JVM is a great virtual machine

Flexible online code loading (with safe bytecodes)

GC & object structure

Mature and provies lots of algorithms and parameters

Page 49: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineThe JVM is a great virtual machine

Flexible online code loading (with safe bytecodes)

GC & object structure

Mature and provies lots of algorithms and parameters

Reflective access to classes and objects

Page 50: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineThe JVM is a great virtual machine

Flexible online code loading (with safe bytecodes)

GC & object structure

Mature and provies lots of algorithms and parameters

Reflective access to classes and objects

Tools (JMM, JVMTI, dtrace)

Page 51: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineThe JVM is a great virtual machine

Flexible online code loading (with safe bytecodes)

GC & object structure

Mature and provies lots of algorithms and parameters

Reflective access to classes and objects

Tools (JMM, JVMTI, dtrace)

Good libraries and a useful language to write more

Page 52: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual Machine

Page 53: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineOptimizing Just-In-Time compiler

Page 54: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineOptimizing Just-In-Time compiler

Clever performance techniques

Page 55: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineOptimizing Just-In-Time compiler

Clever performance techniques

Type inference

Page 56: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineOptimizing Just-In-Time compiler

Clever performance techniques

Type inference

Customization

Page 57: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineOptimizing Just-In-Time compiler

Clever performance techniques

Type inference

Customization

Profiling

Page 58: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineOptimizing Just-In-Time compiler

Clever performance techniques

Type inference

Customization

Profiling

Deoptimizing

Page 59: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineOptimizing Just-In-Time compiler

Clever performance techniques

Type inference

Customization

Profiling

Deoptimizing

Fast/slow paths

Page 60: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The Java Virtual MachineOptimizing Just-In-Time compiler

Clever performance techniques

Type inference

Customization

Profiling

Deoptimizing

Fast/slow paths

The JVM is mature

Page 61: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languages

Page 62: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Page 63: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Automatic storage management (GC)

Page 64: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Automatic storage management (GC)

Environmental queries (reflection, stack walking)

Page 65: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Automatic storage management (GC)

Environmental queries (reflection, stack walking)

Exotic primitives (tail calls, bignums, call/cc)

Page 66: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Automatic storage management (GC)

Environmental queries (reflection, stack walking)

Exotic primitives (tail calls, bignums, call/cc)

Code management integrated with execution

Page 67: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Automatic storage management (GC)

Environmental queries (reflection, stack walking)

Exotic primitives (tail calls, bignums, call/cc)

Code management integrated with execution

Robust handling of incorrect inputs

Page 68: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Automatic storage management (GC)

Environmental queries (reflection, stack walking)

Exotic primitives (tail calls, bignums, call/cc)

Code management integrated with execution

Robust handling of incorrect inputs

Helpful runtime support libraries (regexps, math)

Page 69: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Automatic storage management (GC)

Environmental queries (reflection, stack walking)

Exotic primitives (tail calls, bignums, call/cc)

Code management integrated with execution

Robust handling of incorrect inputs

Helpful runtime support libraries (regexps, math)

A compiler that understands it all

Page 70: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Needs of higher level languagesVery late binding (runtime linking, typing, code gen)

Automatic storage management (GC)

Environmental queries (reflection, stack walking)

Exotic primitives (tail calls, bignums, call/cc)

Code management integrated with execution

Robust handling of incorrect inputs

Helpful runtime support libraries (regexps, math)

A compiler that understands it all

Page 71: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?

Page 72: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?Dynamic invocation

Page 73: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?Dynamic invocation

Lightweight method objects

Page 74: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?Dynamic invocation

Lightweight method objects

Lightweight bytecode loading

Page 75: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?Dynamic invocation

Lightweight method objects

Lightweight bytecode loading

Continuations and stack introspection

Page 76: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?Dynamic invocation

Lightweight method objects

Lightweight bytecode loading

Continuations and stack introspection

Tail calls and tail recursion

Page 77: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?Dynamic invocation

Lightweight method objects

Lightweight bytecode loading

Continuations and stack introspection

Tail calls and tail recursion

Tuples and value-oriented types

Page 78: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?Dynamic invocation

Lightweight method objects

Lightweight bytecode loading

Continuations and stack introspection

Tail calls and tail recursion

Tuples and value-oriented types

Immediate wrapper types

Page 79: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

What’s missing?Dynamic invocation

Lightweight method objects

Lightweight bytecode loading

Continuations and stack introspection

Tail calls and tail recursion

Tuples and value-oriented types

Immediate wrapper types

Page 80: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Dynamic invocation

Page 81: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Dynamic invocationNon-Java call site in the bytecodes

Page 82: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Dynamic invocationNon-Java call site in the bytecodes

Language-specific handler

Page 83: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Dynamic invocationNon-Java call site in the bytecodes

Language-specific handler

Determines linking at runtime

Page 84: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Dynamic invocationNon-Java call site in the bytecodes

Language-specific handler

Determines linking at runtime

Works in a reflective style

Page 85: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Dynamic invocationNon-Java call site in the bytecodes

Language-specific handler

Determines linking at runtime

Works in a reflective style

Installs direct (non-reflective) methods

Page 86: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Dynamic invocationNon-Java call site in the bytecodes

Language-specific handler

Determines linking at runtime

Works in a reflective style

Installs direct (non-reflective) methods

Stateful: can be updated or revoked over time

Page 87: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Dynamic invocationNon-Java call site in the bytecodes

Language-specific handler

Determines linking at runtime

Works in a reflective style

Installs direct (non-reflective) methods

Stateful: can be updated or revoked over time

Any dynamic language will benefit greatly

Page 88: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedom

Page 89: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedomAllow any identifier as name

Page 90: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedomAllow any identifier as name

JVM identifiers originally based on the Java language

Page 91: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedomAllow any identifier as name

JVM identifiers originally based on the Java language

No real reason for this

Page 92: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedomAllow any identifier as name

JVM identifiers originally based on the Java language

No real reason for this

Support for Ruby style names

Page 93: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedomAllow any identifier as name

JVM identifiers originally based on the Java language

No real reason for this

Support for Ruby style names

empty?

Page 94: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedomAllow any identifier as name

JVM identifiers originally based on the Java language

No real reason for this

Support for Ruby style names

empty?

value=

Page 95: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedomAllow any identifier as name

JVM identifiers originally based on the Java language

No real reason for this

Support for Ruby style names

empty?

value=

clear!

Page 96: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Symbolic freedomAllow any identifier as name

JVM identifiers originally based on the Java language

No real reason for this

Support for Ruby style names

empty?

value=

clear!

Canonical name mangling

Page 97: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Closures

Page 98: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

ClosuresSeveral closure proposals right now

Page 99: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

ClosuresSeveral closure proposals right now

All of them will benefit from the previous ideas

Page 100: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

ClosuresSeveral closure proposals right now

All of them will benefit from the previous ideas

But it isn’t required

Page 101: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

ClosuresSeveral closure proposals right now

All of them will benefit from the previous ideas

But it isn’t required

Most of the machinery for closures is already in place

Page 102: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

ClosuresSeveral closure proposals right now

All of them will benefit from the previous ideas

But it isn’t required

Most of the machinery for closures is already in place

It’s just a question of deciding ...

Page 103: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machine

Page 104: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineEvolutionary adaptation of the present JVM

Page 105: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineEvolutionary adaptation of the present JVM

Open-ended experiment

Page 106: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineEvolutionary adaptation of the present JVM

Open-ended experiment

Wild ideas are considered, but must prove useful

Page 107: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineEvolutionary adaptation of the present JVM

Open-ended experiment

Wild ideas are considered, but must prove useful

While incubating, features are disabled by default

Page 108: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineEvolutionary adaptation of the present JVM

Open-ended experiment

Wild ideas are considered, but must prove useful

While incubating, features are disabled by default

Eventual convergence

Page 109: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineEvolutionary adaptation of the present JVM

Open-ended experiment

Wild ideas are considered, but must prove useful

While incubating, features are disabled by default

Eventual convergence

Prototype JVM extensions to run non-Java languages efficiently

Page 110: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineEvolutionary adaptation of the present JVM

Open-ended experiment

Wild ideas are considered, but must prove useful

While incubating, features are disabled by default

Eventual convergence

Prototype JVM extensions to run non-Java languages efficiently

First class architectural support (no hack or side-cars)

Page 111: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineEvolutionary adaptation of the present JVM

Open-ended experiment

Wild ideas are considered, but must prove useful

While incubating, features are disabled by default

Eventual convergence

Prototype JVM extensions to run non-Java languages efficiently

First class architectural support (no hack or side-cars)

New languages to co-exist gracefully with Java

Page 112: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machine

Page 113: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineMost of the features mentioned above have or will be implemented here

Page 114: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineMost of the features mentioned above have or will be implemented here

Will eventually decide what makes it in Java 7

Page 115: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineMost of the features mentioned above have or will be implemented here

Will eventually decide what makes it in Java 7

Why?

Page 116: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineMost of the features mentioned above have or will be implemented here

Will eventually decide what makes it in Java 7

Why?

Language implementers know what they want

Page 117: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineMost of the features mentioned above have or will be implemented here

Will eventually decide what makes it in Java 7

Why?

Language implementers know what they want

and how to simulate it at 100x slowdown

Page 118: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineMost of the features mentioned above have or will be implemented here

Will eventually decide what makes it in Java 7

Why?

Language implementers know what they want

and how to simulate it at 100x slowdown

VM implementers know what VMs can do

Page 119: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The DaVinci machineMost of the features mentioned above have or will be implemented here

Will eventually decide what makes it in Java 7

Why?

Language implementers know what they want

and how to simulate it at 100x slowdown

VM implementers know what VMs can do

Let’s bring them together

Page 120: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

JSR 292

Page 121: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

JSR 292Supporting dynamically type languages

Page 122: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

JSR 292Supporting dynamically type languages

Main features

Page 123: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

JSR 292Supporting dynamically type languages

Main features

invoke_dynamic

Page 124: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

JSR 292Supporting dynamically type languages

Main features

invoke_dynamic

Method handles

Page 125: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

JSR 292Supporting dynamically type languages

Main features

invoke_dynamic

Method handles

Hotswapping

Page 126: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

JSR 292Supporting dynamically type languages

Main features

invoke_dynamic

Method handles

Hotswapping

Representatives from JRuby, Groovy, Jython, among others

Page 127: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

JSR 292Supporting dynamically type languages

Main features

invoke_dynamic

Method handles

Hotswapping

Representatives from JRuby, Groovy, Jython, among others

Focus on VM support

Page 128: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The JVM languages group

Page 129: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The JVM languages groupFocus on library level support for languages running on the JVM

Page 130: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The JVM languages groupFocus on library level support for languages running on the JVM

Discussions about current pain points

Page 131: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The JVM languages groupFocus on library level support for languages running on the JVM

Discussions about current pain points

Meta-object protocol

Page 132: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The JVM languages groupFocus on library level support for languages running on the JVM

Discussions about current pain points

Meta-object protocol

Java method overload resolution at runtime

Page 133: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

The JVM languages groupFocus on library level support for languages running on the JVM

Discussions about current pain points

Meta-object protocol

Java method overload resolution at runtime

Representatives from Java, JRuby, Jython, Groovy, Pnuts, Ioke, Scala, Clojure, Nice, Ng, and many more

Page 134: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7

Page 135: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Page 136: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Page 137: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

Page 138: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

Page 139: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

JSR 203 - Better I/O support, asynch I/O, revamped file system API

Page 140: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

JSR 203 - Better I/O support, asynch I/O, revamped file system API

Safe rethrow

Page 141: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

JSR 203 - Better I/O support, asynch I/O, revamped file system API

Safe rethrow

Null dereferencing

Page 142: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

JSR 203 - Better I/O support, asynch I/O, revamped file system API

Safe rethrow

Null dereferencing

Better type inferencing for generics

Page 143: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

JSR 203 - Better I/O support, asynch I/O, revamped file system API

Safe rethrow

Null dereferencing

Better type inferencing for generics

Multi catch

Page 144: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

JSR 203 - Better I/O support, asynch I/O, revamped file system API

Safe rethrow

Null dereferencing

Better type inferencing for generics

Multi catch

Better Swing

Page 145: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

JSR 203 - Better I/O support, asynch I/O, revamped file system API

Safe rethrow

Null dereferencing

Better type inferencing for generics

Multi catch

Better Swing

6u10 features - Java Kernel, Quickstarter, new plugin

Page 146: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Java 7Probably early 2010

Provisional:

Modularization

JSR 292 - Dynamic languages

JSR 203 - Better I/O support, asynch I/O, revamped file system API

Safe rethrow

Null dereferencing

Better type inferencing for generics

Multi catch

Better Swing

6u10 features - Java Kernel, Quickstarter, new plugin

Page 147: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Not in Java 7

Page 148: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Not in Java 7Closures

Page 149: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Not in Java 7Closures

Reified generics

Page 150: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Not in Java 7Closures

Reified generics

1st class propertiers

Page 151: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Not in Java 7Closures

Reified generics

1st class propertiers

Operator overloading

Page 152: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Not in Java 7Closures

Reified generics

1st class propertiers

Operator overloading

BigDecimal syntax

Page 153: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Not in Java 7Closures

Reified generics

1st class propertiers

Operator overloading

BigDecimal syntax

JSR 295 - Beans binding

Page 154: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

Not in Java 7Closures

Reified generics

1st class propertiers

Operator overloading

BigDecimal syntax

JSR 295 - Beans binding

Page 155: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

After?

Page 156: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

After?Look to C# - more advanced language features

Page 157: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

After?Look to C# - more advanced language features

But not as much backwards compatibility

Page 158: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

After?Look to C# - more advanced language features

But not as much backwards compatibility

JavaFX

Page 159: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

After?Look to C# - more advanced language features

But not as much backwards compatibility

JavaFX

Java as a platform

Page 160: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

After?Look to C# - more advanced language features

But not as much backwards compatibility

JavaFX

Java as a platform

Page 161: Future of the Java platform - Jfokus...Involved with several languages on the JVM: Ioke JRuby Jatha Member of the JSR292 expert group About me Ola Bini Works for ThoughtWorks From

AQ and