O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

A Quick Tour of JVM Languages

1.481 visualizações

Publicada em

Talk given at Open World Forum 2009

  • Seja o primeiro a comentar

A Quick Tour of JVM Languages

  1. 1. A Quick Tour of JVM Languages S. Fermigier, Open World Forum, Oct 2009
  2. 2. History • Java 1.0 in January 1996 • 40 alt. languages implementations in 1997 • ...169 in 2004 • ...240 today (including research and toy languages) • JVM Language Summits in 2008 and 2009
  3. 3. Why New Languages? • New challenges have emerged: increased software complexity, agile dev methodologies, multi-core parallelism, DSLs, etc. • Scientist and language enthousiasts want to try new language features or paradigms • But the Java Language must evolve in a very conservative way to cater to a huge existing code base + skills investment
  4. 4. PROs of Targeting the JVM • The JVM is very robust, multiplatform, highly optimized (HotSpot) • Chance to leverage existing Java code base or libraries • Wealth of tools for development (profiling, debug) and operations (monitoring)
  5. 5. CONs of Targeting the JVM • JVM is (currently) not explicitly designed for certain categories of languages (ex: scripting, functional) • Not suited for all types of systems because memory or CPU constraints (ex: embedded) • For existing languages (ex: Jython), new implementation not compatible with existing native extensions
  6. 6. Currently Popular • Jython (1997), an implementation of Python • Rhino (1997), an implementation of JavaScript • JRuby (2001), an implementation of Ruby • Groovy (2003), a dynamic language • Scala (2003), an object-oriented and functional programming language • JavaFX Script (2005), a scripting language targeting the Rich Internet application domain • Clojure (2007), a Lisp dialect
  7. 7. Common Features • Dynamic typing (scripting): Jython, JRuby, Groovy • Stronger type systems: Scala • Functional programming style: Clojure, Scala (also: Jython, JRuby and Groovy) • Parallelism: Scala Actors, Clojure STM
  8. 8. Original Scala Groovy Clojure Static Dynamic typing typing Rhino Jython Existing JRuby
  9. 9. Da Vinci Project aka MLVM • (Better) scripting support: JSR 292 = • new InvokeDynamic instruction at the JVM level • change classes and methods at runtime dynamically • Continuations • Tail-call elimination • Interface injection • Etc.
  10. 10. Next Speakers • Guillaume Lafforge, Groovy Project Leader / SpringSource • François Armand, Scala enthousiast • Alexis Moussine-Pouchkine, Sun Microsystems