SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Java
7
Launch

Fork/Join
concurrency




                        @Sander_Mak
What?

Fork:
Recursively
decompose
large
task
into
subtasks


Join:
Combine
results
of
recursive
tasks



      7/7/2011             Java
7
Launch
Event
Why?
              Mul3core
challenge




   7/7/2011                        Java
7
Launch
Event
How?

Introducing:


java.uLl.concurrent.ForkJoinPool                         Worker 1




• ‘ExecutorService
with
                                   Worker 2

  runLme
tuning’
• Recursive
algorithms
                                                           Worker 3
• Workstealing


         7/7/2011                    Java
7
Launch
Event
...
MapReduce?



Environment         Single
JVM          Cluster

Model               Recursive
forking   Single
fork
step

Scales
with         Cores/CPUs          Nodes

Opera3on            Workstealing        No
inter‐node

                                        communicaLon


         7/7/2011                        Java
7
Launch
Event
Example
Sony’s
been
hacked...




                Are
we
compromised...?



     7/7/2011                   Java
7
Launch
Event
Java
7
Launch

JSR‐292:
Invokedynamic




                         @Sander_Mak
JVM
Languages




                Java


    7/7/2011           Java
7
Launch
Event
JVM
Languages



               Groovy      Clojure

      JRuby        Java         JavaFX
                        Scala



    7/7/2011                     Java
7
Launch
Event
JVM
Languages
jProlog                     Pizza                                 MultiJava
                                            Fantom


 JLog
                       Groovy            Clojure                        MetaJ



            JRuby               Java             JavaFX                   Jaskell


                       Rhino        Scala                JBasic
Aardappel
                                        Funnel
                     Jacl                                               Drools
                               Jython

          7/7/2011                                Java
7
Launch
Event
JVM
Languages




  Hundreds of
  Languages
    7/7/2011    Java
7
Launch
Event
JVM
Languages

‘Language
ficLons’

       JVM


  Exceptions
  Primitive types
  Objects
  Access control
  Garbage coll.
  Threading
  Memory model



        7/7/2011    Java
7
Launch
Event
JVM
Languages

‘Language
ficLons’
                         Java

                    Enums
                    Checked exc.
       JVM          Generics


  Exceptions        Exceptions
  Primitive types   Primitive types
  Objects           Objects
  Access control    Access control
  Garbage coll.     Garbage coll.
  Threading         Threading.
  Memory model      Memory model



        7/7/2011                      Java
7
Launch
Event
JVM
Languages
                                            JRuby

‘Language
ficLons’                     Open classes
                                      Dynamic typing
                         Java         Closures

                    Enums             Enums
                    Checked exc.      Checked exc.
       JVM          Generics          Generics


  Exceptions        Exceptions        Exceptions
  Primitive types   Primitive types   Primitive types
  Objects           Objects           Objects
  Access control    Access control    Access control
  Garbage coll.     Garbage coll.     Garbage coll.
  Threading         Threading.        Threading
  Memory model      Memory model      Memory model



        7/7/2011                       Java
7
Launch
Event
JVM
Languages
                                            JRuby

‘Language
ficLons’                     Open classes
                                      Dynamic typing
                         Java         Closures

                    Enums             Enums
                    Checked exc.      Checked exc.
       JVM          Generics          Generics


  Exceptions        Exceptions        Exceptions
  Primitive types   Primitive types   Primitive types
  Objects           Objects           Objects
  Access control    Access control    Access control
  Garbage coll.     Garbage coll.     Garbage coll.
  Threading         Threading.        Threading
  Memory model      Memory model      Memory model



        7/7/2011                       Java
7
Launch
Event
JVM
Languages
 Obviously
JVM
is
viable,
however:
• Language
implementors
need
to
invent

  ‘creaLve’
compilaLon
schemes
for
every

  language
• Performance
suffers
when
abstracLng
beyond

  Java
idioms



                How
to
improve?

     7/7/2011                     Java
7
Launch
Event
JSR‐292
         Mission:
 “We are extending the JVM with first-class architectural
 support for languages other than Java, especially dynamic
 languages. This project will prototype a number of
 extensions to the JVM, so that it can run non-Java languages
 efficiently, with a performance level comparable to that of
 Java itself.”    http://openjdk.java.net/projects/mlvm/




      7/7/2011                             Java
7
Launch
Event
Compiling
dynamic
languages

  • JVM
pre]y
language‐friendly
  • ExcepLon:
method
calls
       – Signature
at
callsite
must
match
exactly
                                    TargetClass        Name       Method descriptor
18:
 invokevirtual
    #5; //Method java/util/ArrayList.add:(Ljava/lang/Object;)Z



       – Dispatch
on
staLc
type
of
parameters
and
dynamic

         type
of
receiver
       – Method
must
exist
at
compile
Lme
       – Link
to
target
is
fixed,
no
relinking

            7/7/2011                                      Java
7
Launch
Event
Compiling
dynamic
languages

• Common
soluLons:
     - Don’t
compile,
interpret
(someLmes
unavoidable)
     - Introduce
generic
CallSite
abstracLon
which
dispatches

       method
calls
     - AOT
compilaLon
into
specialized
invoker
classes

       (suitable
for
core
methods)
     - JIT
bytecode
generaLon
of
small
stub
methods


 Either
way:
abundance
of
syntheLc
types
and

 bytecode
hard
to
opLmize
for
JVM

     7/7/2011                              Java
7
Launch
Event
Invokedynamic
      New
bytecode,
last
piece
of
JSR‐292
puzzle:
                                        Name    Method descriptor
18:
 invokedynamic
   #5; //NameAndType addInts:(II)I




 • InvocaLon
without
reference
to
actual
method

   descriptor
 • Instead,
symbolic
name
and
type
 • No
receiver:
all
arguments
are
equal
                      What
is
the
target?
           7/7/2011                                     Java
7
Launch
Event
Method
handles
• Lightweight,
safe
method
pointers
• Like
java.lang.reflect.Method,
but:
  – No
argument
boxing/unboxing
  – Access
checks
only
at
creaLon
Lme
  – Leaner,
can
be
as
fast
as
direct
call
  – No
wrapping
of
excepLons




      7/7/2011                              Java
7
Launch
Event
Method
handles
• Lightweight,
safe
method
pointers
• Like
java.lang.reflect.Method,
but:
  – No
argument
boxing/unboxing
  – Access
checks
only
at
creaLon
Lme
  – Leaner,
can
be
as
fast
as
direct
call
  – No
wrapping
of
excepLons

                                                                  Java
7
 MethodHandle mh =
    MethodHandles.lookup().findVirtual(String.class,
 “substring”, typeDescriptor);

 String java = (String) mh.invokeExact(“jjava”, 1);

      7/7/2011                              Java
7
Launch
Event
Invokedynamic
‐
bootstrap
• Invokedynamic
triggers
bootstrap
• Ader
installing
target,
invokedynamic
invokes

  MH
directly
 DynamicInvokerClass                  ImplementationClass

aload_1;
invokedyn. meth:Type;             implementation(Type) {
return;                              result = ..
                                     return result

                                  }
bootstrap( .. ) {
   ..lookup..
   return CallSite

}




       7/7/2011                    Java
7
Launch
Event
Invokedynamic
‐
bootstrap
• Invokedynamic
triggers
bootstrap
• Ader
installing
target,
invokedynamic
invokes

  MH
directly
 DynamicInvokerClass                  ImplementationClass

aload_1;
invokedyn. meth:Type;             implementation(Type) {
return;                              result = ..
                                     return result

                                  }
bootstrap( .. ) {
   ..lookup..
   return CallSite

}




       7/7/2011                    Java
7
Launch
Event
Invokedynamic
‐
bootstrap
• Invokedynamic
triggers
bootstrap
• Ader
installing
target,
invokedynamic
invokes

  MH
directly
 DynamicInvokerClass                  ImplementationClass

aload_1;
invokedyn. meth:Type;             implementation(Type) {
return;                              result = ..
                                     return result

                                  }
bootstrap( .. ) {
   ..lookup..
   return CallSite

}




       7/7/2011                    Java
7
Launch
Event
Invokedynamic
‐
bootstrap
• Invokedynamic
triggers
bootstrap
• Ader
installing
target,
invokedynamic
invokes

  MH
directly
 DynamicInvokerClass                                   ImplementationClass

aload_1;
invokedyn. meth:Type;                              implementation(Type) {
return;                                               result = ..
                                                      return result

                                                   }
bootstrap( .. ) {
   ..lookup..           MH
can
be
guarded

   return CallSite
                        with
test,
adapt
types,

}                       etc.



       7/7/2011                                    Java
7
Launch
Event
Invokedynamic
‐
bootstrap
• Invokedynamic
triggers
bootstrap
• Ader
installing
target,
invokedynamic
invokes

  MH
directly
 DynamicInvokerClass                    ImplementationClass

aload_1;
invokedyn. meth:Type;   Method      implementation(Type) {
return;                 Handle(s)      result = ..
                                       return result

                                    }
bootstrap( .. ) {
   ..lookup..
   return CallSite

}




       7/7/2011                     Java
7
Launch
Event
Invokedynamic

• Invokedynamic
+
bootstrap
method
allow

  language
to
up‐call
from
VM
for
linking/
  dispatching.

Not
impossible
before,
but
hard
and
slow.
JVM
now

          fully
opLmizes
dynamic
calls.




     7/7/2011                    Java
7
Launch
Event
Wrap‐up
• JSR‐292
invokedynamic
features:
  – Let’s
language
implementors
avoid
tricks
  – Level
the
playing
ground,
speedwise
  – Allow
exisLng
VM
opLmizaLons
to
be
applied
to

    new
paradigms
• JRuby,
Groovy
acLvely
working
on
JSR‐292

  support
• For
example,
JRuby
can
cut
80%
of
linking/
  calling
code
in
runLme

     7/7/2011                         Java
7
Launch
Event
Java
7
Launch

  Beyond
Java
7




                  @Sander_Mak
Ader
JDK7





    7/7/2011   Java
7
Launch
Event
JDK8:
Coin
conLnued
                                                                  Java
7

List<Integer> piDigits = Collections.unmodifiableList
(Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9 ));



                                                                  Java
8
// List literal:
List<Integer> piDigits = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9];
Integer first = piDigits[0];

// Map literal:
Map<Integer, String> platonicSolids = { 4 : "tetrahedron",
      6 : "cube", 8 : "octahedron", 12 : "dodecahedron",
     20 : "icosahedron"
};



       7/7/2011                             Java
7
Launch
Event
JDK8:
Project
Lambda
• Add
first‐class
funcLons
• Single
Abstract
Method
types
• Solve
interface
evoluLon
with

‘defender

  methods’
• Paves
way
for
parallel
collecLons
                                                               Java
8
// Lambda expression
List<Integer> list = [1,2,3];
list.forEach(#{ e -> e * 2; });

// Reference existing methods
Person[] people = ...
Arrays.sort(people, #Person.compareByAge);


        7/7/2011                             Java
7
Launch
Event
JDK8:
Modularity
JSR‐294
‘Project
Jigsaw’,
goals:


• Modular
JDK
  - SE
Core
  - Packages:
Swing,
CORBA,
XML,
etc.
• Modular
and
versioned
applicaLons
• Integrate
with
plamorm
dependency

  management


       7/7/2011                    Java
7
Launch
Event
JDK8


              Available
Fall/Winter
of




          See
you
@
next
launch
event?


   7/7/2011                              Java
7
Launch
Event

Weitere ähnliche Inhalte

Was ist angesagt?

Java byte code & virtual machine
Java byte code & virtual machineJava byte code & virtual machine
Java byte code & virtual machineLaxman Puri
 
An Introduction to Java Compiler and Runtime
An Introduction to Java Compiler and RuntimeAn Introduction to Java Compiler and Runtime
An Introduction to Java Compiler and RuntimeOmar Bashir
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyNick Sieger
 
Playing with Java Classes and Bytecode
Playing with Java Classes and BytecodePlaying with Java Classes and Bytecode
Playing with Java Classes and BytecodeYoav Avrahami
 
Java bytecode and classes
Java bytecode and classesJava bytecode and classes
Java bytecode and classesyoavwix
 
Java compilation
Java compilationJava compilation
Java compilationMike Kucera
 
Using Java from Ruby with JRuby IRB
Using Java from Ruby with JRuby IRBUsing Java from Ruby with JRuby IRB
Using Java from Ruby with JRuby IRBHiro Asari
 
JRuby in Java Projects
JRuby in Java ProjectsJRuby in Java Projects
JRuby in Java Projectsjazzman1980
 
Grand Central Dispatch
Grand Central DispatchGrand Central Dispatch
Grand Central DispatchRobert Brown
 
Introduction to Java programming - Java tutorial for beginners to teach Java ...
Introduction to Java programming - Java tutorial for beginners to teach Java ...Introduction to Java programming - Java tutorial for beginners to teach Java ...
Introduction to Java programming - Java tutorial for beginners to teach Java ...Duckademy IT courses
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New EvolutionAllan Huang
 
Jruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaJruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaKeith Bennett
 

Was ist angesagt? (19)

Java introduction
Java introductionJava introduction
Java introduction
 
Java byte code & virtual machine
Java byte code & virtual machineJava byte code & virtual machine
Java byte code & virtual machine
 
An Introduction to Java Compiler and Runtime
An Introduction to Java Compiler and RuntimeAn Introduction to Java Compiler and Runtime
An Introduction to Java Compiler and Runtime
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
 
Playing with Java Classes and Bytecode
Playing with Java Classes and BytecodePlaying with Java Classes and Bytecode
Playing with Java Classes and Bytecode
 
Java bytecode and classes
Java bytecode and classesJava bytecode and classes
Java bytecode and classes
 
Java compilation
Java compilationJava compilation
Java compilation
 
JAVA BYTE CODE
JAVA BYTE CODEJAVA BYTE CODE
JAVA BYTE CODE
 
Using Java from Ruby with JRuby IRB
Using Java from Ruby with JRuby IRBUsing Java from Ruby with JRuby IRB
Using Java from Ruby with JRuby IRB
 
JRuby in Java Projects
JRuby in Java ProjectsJRuby in Java Projects
JRuby in Java Projects
 
Grand Central Dispatch
Grand Central DispatchGrand Central Dispatch
Grand Central Dispatch
 
Introduction to Java programming - Java tutorial for beginners to teach Java ...
Introduction to Java programming - Java tutorial for beginners to teach Java ...Introduction to Java programming - Java tutorial for beginners to teach Java ...
Introduction to Java programming - Java tutorial for beginners to teach Java ...
 
JavaCro'14 - Is there Kotlin after Java 8 – Ivan Turčinović and Igor Buzatović
JavaCro'14 - Is there Kotlin after Java 8 – Ivan Turčinović and Igor BuzatovićJavaCro'14 - Is there Kotlin after Java 8 – Ivan Turčinović and Igor Buzatović
JavaCro'14 - Is there Kotlin after Java 8 – Ivan Turčinović and Igor Buzatović
 
Spring boot
Spring bootSpring boot
Spring boot
 
Java New Evolution
Java New EvolutionJava New Evolution
Java New Evolution
 
Java 8 parallel stream
Java 8 parallel streamJava 8 parallel stream
Java 8 parallel stream
 
Scala
ScalaScala
Scala
 
Jruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-javaJruby synergy-of-ruby-and-java
Jruby synergy-of-ruby-and-java
 
Rjb
RjbRjb
Rjb
 

Andere mochten auch

Microsoft Dynamics CRM 2011 Launch Event in Belgium
Microsoft Dynamics CRM 2011 Launch Event  in BelgiumMicrosoft Dynamics CRM 2011 Launch Event  in Belgium
Microsoft Dynamics CRM 2011 Launch Event in BelgiumNerea
 
OrlandoiX Launch Event, Feb. 4 2014
OrlandoiX Launch Event, Feb. 4 2014OrlandoiX Launch Event, Feb. 4 2014
OrlandoiX Launch Event, Feb. 4 2014David Glass
 
Integrated Social Media Strategies For Events
Integrated Social Media Strategies For EventsIntegrated Social Media Strategies For Events
Integrated Social Media Strategies For EventsJeff Hurt
 
LG L Integrated Marketing Communications UK Launch Proposal
LG L Integrated Marketing Communications UK Launch ProposalLG L Integrated Marketing Communications UK Launch Proposal
LG L Integrated Marketing Communications UK Launch ProposalJuan Mejia
 
Samsung Galaxy Note/At&t Launch Event
Samsung Galaxy Note/At&t  Launch EventSamsung Galaxy Note/At&t  Launch Event
Samsung Galaxy Note/At&t Launch EventStacey Portnoy
 
Deliver Engaging Content to Your Buyers: A Tale of Two Journeys
Deliver Engaging Content to Your Buyers: A Tale of Two JourneysDeliver Engaging Content to Your Buyers: A Tale of Two Journeys
Deliver Engaging Content to Your Buyers: A Tale of Two Journeysion interactive
 
Boost Your Results with Innovative Landing Pages
Boost Your Results with Innovative Landing PagesBoost Your Results with Innovative Landing Pages
Boost Your Results with Innovative Landing Pagesion interactive
 
Interactive Content For Demand Generation
Interactive Content For Demand GenerationInteractive Content For Demand Generation
Interactive Content For Demand Generationion interactive
 
Iowa Supreme Court Decision - 4/09 - Gay Marriage
Iowa Supreme Court Decision - 4/09 - Gay MarriageIowa Supreme Court Decision - 4/09 - Gay Marriage
Iowa Supreme Court Decision - 4/09 - Gay Marriageultravox63
 
Integrating Social Media With Traditional Media
Integrating Social Media With Traditional MediaIntegrating Social Media With Traditional Media
Integrating Social Media With Traditional Mediaparkernow
 
以共融的觀點探討銀髮族節能生活型態之概念設計計畫
以共融的觀點探討銀髮族節能生活型態之概念設計計畫以共融的觀點探討銀髮族節能生活型態之概念設計計畫
以共融的觀點探討銀髮族節能生活型態之概念設計計畫開放式概念發表平臺
 
Element Design Final Presentation3
Element Design Final Presentation3Element Design Final Presentation3
Element Design Final Presentation3guestdf2bf9
 
Wereldwinkelsvoorlichtingenfairtrade
WereldwinkelsvoorlichtingenfairtradeWereldwinkelsvoorlichtingenfairtrade
Wereldwinkelsvoorlichtingenfairtradefrancienvaneersel
 
Örjan Lönngren - Energianvändning kopplat till tillagning
Örjan Lönngren - Energianvändning kopplat till tillagningÖrjan Lönngren - Energianvändning kopplat till tillagning
Örjan Lönngren - Energianvändning kopplat till tillagningKlimatkommunerna
 
Отчет Антона
Отчет АнтонаОтчет Антона
Отчет АнтонаunDrei
 

Andere mochten auch (20)

Microsoft Dynamics CRM 2011 Launch Event in Belgium
Microsoft Dynamics CRM 2011 Launch Event  in BelgiumMicrosoft Dynamics CRM 2011 Launch Event  in Belgium
Microsoft Dynamics CRM 2011 Launch Event in Belgium
 
OrlandoiX Launch Event, Feb. 4 2014
OrlandoiX Launch Event, Feb. 4 2014OrlandoiX Launch Event, Feb. 4 2014
OrlandoiX Launch Event, Feb. 4 2014
 
Integrated Social Media Strategies For Events
Integrated Social Media Strategies For EventsIntegrated Social Media Strategies For Events
Integrated Social Media Strategies For Events
 
LG L Integrated Marketing Communications UK Launch Proposal
LG L Integrated Marketing Communications UK Launch ProposalLG L Integrated Marketing Communications UK Launch Proposal
LG L Integrated Marketing Communications UK Launch Proposal
 
Samsung Galaxy Note/At&t Launch Event
Samsung Galaxy Note/At&t  Launch EventSamsung Galaxy Note/At&t  Launch Event
Samsung Galaxy Note/At&t Launch Event
 
Deliver Engaging Content to Your Buyers: A Tale of Two Journeys
Deliver Engaging Content to Your Buyers: A Tale of Two JourneysDeliver Engaging Content to Your Buyers: A Tale of Two Journeys
Deliver Engaging Content to Your Buyers: A Tale of Two Journeys
 
Boost Your Results with Innovative Landing Pages
Boost Your Results with Innovative Landing PagesBoost Your Results with Innovative Landing Pages
Boost Your Results with Innovative Landing Pages
 
New Business: Launch Campaign Proposal
New Business: Launch Campaign Proposal New Business: Launch Campaign Proposal
New Business: Launch Campaign Proposal
 
Interactive Content For Demand Generation
Interactive Content For Demand GenerationInteractive Content For Demand Generation
Interactive Content For Demand Generation
 
Media And Tecnology
Media And TecnologyMedia And Tecnology
Media And Tecnology
 
Iowa Supreme Court Decision - 4/09 - Gay Marriage
Iowa Supreme Court Decision - 4/09 - Gay MarriageIowa Supreme Court Decision - 4/09 - Gay Marriage
Iowa Supreme Court Decision - 4/09 - Gay Marriage
 
Integrating Social Media With Traditional Media
Integrating Social Media With Traditional MediaIntegrating Social Media With Traditional Media
Integrating Social Media With Traditional Media
 
以共融的觀點探討銀髮族節能生活型態之概念設計計畫
以共融的觀點探討銀髮族節能生活型態之概念設計計畫以共融的觀點探討銀髮族節能生活型態之概念設計計畫
以共融的觀點探討銀髮族節能生活型態之概念設計計畫
 
Element Design Final Presentation3
Element Design Final Presentation3Element Design Final Presentation3
Element Design Final Presentation3
 
Wereldwinkelsvoorlichtingenfairtrade
WereldwinkelsvoorlichtingenfairtradeWereldwinkelsvoorlichtingenfairtrade
Wereldwinkelsvoorlichtingenfairtrade
 
Unenclosable
UnenclosableUnenclosable
Unenclosable
 
漢字對話
漢字對話漢字對話
漢字對話
 
MVC CSRF Protection
MVC CSRF ProtectionMVC CSRF Protection
MVC CSRF Protection
 
Örjan Lönngren - Energianvändning kopplat till tillagning
Örjan Lönngren - Energianvändning kopplat till tillagningÖrjan Lönngren - Energianvändning kopplat till tillagning
Örjan Lönngren - Energianvändning kopplat till tillagning
 
Отчет Антона
Отчет АнтонаОтчет Антона
Отчет Антона
 

Ähnlich wie Java 7: Fork/Join, Invokedynamic and the future

Java virtual machine
Java virtual machineJava virtual machine
Java virtual machineNikhil Sharma
 
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...Paul King
 
JRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMJRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMRaimonds Simanovskis
 
Visual COBOL Development for Unix and Java
Visual COBOL Development for Unix and JavaVisual COBOL Development for Unix and Java
Visual COBOL Development for Unix and JavaMicro Focus
 
A begineers guide of JAVA - Getting Started
 A begineers guide of JAVA - Getting Started A begineers guide of JAVA - Getting Started
A begineers guide of JAVA - Getting StartedRakesh Madugula
 
Практики применения JRuby
Практики применения JRubyПрактики применения JRuby
Практики применения JRuby.toster
 
JDK7: Improved support for dynamic languages
JDK7: Improved support for dynamic languagesJDK7: Improved support for dynamic languages
JDK7: Improved support for dynamic languagesSander Mak (@Sander_Mak)
 
JVM for Dummies - OSCON 2011
JVM for Dummies - OSCON 2011JVM for Dummies - OSCON 2011
JVM for Dummies - OSCON 2011Charles Nutter
 
Let's talk about jni
Let's talk about jniLet's talk about jni
Let's talk about jniYongqiang Li
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaManjula Kollipara
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouJohn Pape
 
Jpf model checking
Jpf model checkingJpf model checking
Jpf model checkingthought444
 
It pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_enIt pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_enGeorge Birbilis
 
GOTO Night with Charles Nutter Slides
GOTO Night with Charles Nutter SlidesGOTO Night with Charles Nutter Slides
GOTO Night with Charles Nutter SlidesAlexandra Masterson
 
Core java 5 days workshop stuff
Core java 5 days workshop stuffCore java 5 days workshop stuff
Core java 5 days workshop stuffRajiv Gupta
 
JAVA Object Oriented Programming (OOP)
JAVA Object Oriented Programming (OOP)JAVA Object Oriented Programming (OOP)
JAVA Object Oriented Programming (OOP)Prof. Erwin Globio
 
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012Anton Arhipov
 

Ähnlich wie Java 7: Fork/Join, Invokedynamic and the future (20)

Java virtual machine
Java virtual machineJava virtual machine
Java virtual machine
 
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
Industrial Strength Groovy - Tools for the Professional Groovy Developer: Pau...
 
JRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVMJRuby - Programmer's Best Friend on JVM
JRuby - Programmer's Best Friend on JVM
 
Visual COBOL Development for Unix and Java
Visual COBOL Development for Unix and JavaVisual COBOL Development for Unix and Java
Visual COBOL Development for Unix and Java
 
A begineers guide of JAVA - Getting Started
 A begineers guide of JAVA - Getting Started A begineers guide of JAVA - Getting Started
A begineers guide of JAVA - Getting Started
 
Практики применения JRuby
Практики применения JRubyПрактики применения JRuby
Практики применения JRuby
 
JDK7: Improved support for dynamic languages
JDK7: Improved support for dynamic languagesJDK7: Improved support for dynamic languages
JDK7: Improved support for dynamic languages
 
JVM for Dummies - OSCON 2011
JVM for Dummies - OSCON 2011JVM for Dummies - OSCON 2011
JVM for Dummies - OSCON 2011
 
Let's talk about jni
Let's talk about jniLet's talk about jni
Let's talk about jni
 
Java 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kolliparaJava 7 Dolphin manjula kollipara
Java 7 Dolphin manjula kollipara
 
What Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell YouWhat Your Jvm Has Been Trying To Tell You
What Your Jvm Has Been Trying To Tell You
 
Jpf model checking
Jpf model checkingJpf model checking
Jpf model checking
 
It pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_enIt pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_en
 
GOTO Night with Charles Nutter Slides
GOTO Night with Charles Nutter SlidesGOTO Night with Charles Nutter Slides
GOTO Night with Charles Nutter Slides
 
Understanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual MachineUnderstanding the Dalvik Virtual Machine
Understanding the Dalvik Virtual Machine
 
JVM Bytecodes
JVM BytecodesJVM Bytecodes
JVM Bytecodes
 
Java J2EE Training in Chennai, Tambaram
Java J2EE  Training in Chennai, TambaramJava J2EE  Training in Chennai, Tambaram
Java J2EE Training in Chennai, Tambaram
 
Core java 5 days workshop stuff
Core java 5 days workshop stuffCore java 5 days workshop stuff
Core java 5 days workshop stuff
 
JAVA Object Oriented Programming (OOP)
JAVA Object Oriented Programming (OOP)JAVA Object Oriented Programming (OOP)
JAVA Object Oriented Programming (OOP)
 
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
 

Mehr von Sander Mak (@Sander_Mak)

TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painSander Mak (@Sander_Mak)
 
The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)Sander Mak (@Sander_Mak)
 
Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Sander Mak (@Sander_Mak)
 
Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Sander Mak (@Sander_Mak)
 

Mehr von Sander Mak (@Sander_Mak) (20)

Scalable Application Development @ Picnic
Scalable Application Development @ PicnicScalable Application Development @ Picnic
Scalable Application Development @ Picnic
 
Coding Your Way to Java 13
Coding Your Way to Java 13Coding Your Way to Java 13
Coding Your Way to Java 13
 
Coding Your Way to Java 12
Coding Your Way to Java 12Coding Your Way to Java 12
Coding Your Way to Java 12
 
Java Modularity: the Year After
Java Modularity: the Year AfterJava Modularity: the Year After
Java Modularity: the Year After
 
Desiging for Modularity with Java 9
Desiging for Modularity with Java 9Desiging for Modularity with Java 9
Desiging for Modularity with Java 9
 
Modules or microservices?
Modules or microservices?Modules or microservices?
Modules or microservices?
 
Migrating to Java 9 Modules
Migrating to Java 9 ModulesMigrating to Java 9 Modules
Migrating to Java 9 Modules
 
Java 9 Modularity in Action
Java 9 Modularity in ActionJava 9 Modularity in Action
Java 9 Modularity in Action
 
Java modularity: life after Java 9
Java modularity: life after Java 9Java modularity: life after Java 9
Java modularity: life after Java 9
 
Provisioning the IoT
Provisioning the IoTProvisioning the IoT
Provisioning the IoT
 
Event-sourced architectures with Akka
Event-sourced architectures with AkkaEvent-sourced architectures with Akka
Event-sourced architectures with Akka
 
TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the painTypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the pain
 
The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)The Ultimate Dependency Manager Shootout (QCon NY 2014)
The Ultimate Dependency Manager Shootout (QCon NY 2014)
 
Modular JavaScript
Modular JavaScriptModular JavaScript
Modular JavaScript
 
Modularity in the Cloud
Modularity in the CloudModularity in the Cloud
Modularity in the Cloud
 
Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?Cross-Build Injection attacks: how safe is your Java build?
Cross-Build Injection attacks: how safe is your Java build?
 
Scala & Lift (JEEConf 2012)
Scala & Lift (JEEConf 2012)Scala & Lift (JEEConf 2012)
Scala & Lift (JEEConf 2012)
 
Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)Hibernate Performance Tuning (JEEConf 2012)
Hibernate Performance Tuning (JEEConf 2012)
 
Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)Fork Join (BeJUG 2012)
Fork Join (BeJUG 2012)
 
Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!Fork/Join for Fun and Profit!
Fork/Join for Fun and Profit!
 

Kürzlich hochgeladen

Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 

Kürzlich hochgeladen (20)

Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 

Java 7: Fork/Join, Invokedynamic and the future

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  9. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  10. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  11. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  12. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  13. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  14. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  15. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  16. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  17. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  18. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  19. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  20. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  21. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  22. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  23. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  24. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  25. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  26. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  27. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  28. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  29. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  30. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  31. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  32. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  33. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  34. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  35. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  36. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  37. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  38. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  39. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  40. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  41. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  42. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  43. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  44. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  45. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  46. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  47. Interessante ontwikkeling is dat Sun dit steunt (JavaFX, maar ook JRuby/Jython)\n\nWaarom zoveel talen? Ze bieden allemaal hun eigen &amp;#x2018;werkelijkheid&amp;#x2019; (volgende slide)\n
  48. *Java (taal) bevat ook ficties!\n*Schoen gaat wringen wanneer language fictions realiteit van JVM moeten gaan verbergen/opleuken\n* Zelfs in Java (Generics) is dat merkbaar... dat is waar tradeoffs (snelheid/bruikaarheid/correctheid) ontstaan\n\nFocus on JRuby in this pres. since very active in JSR-292 \n
  49. *Java (taal) bevat ook ficties!\n*Schoen gaat wringen wanneer language fictions realiteit van JVM moeten gaan verbergen/opleuken\n* Zelfs in Java (Generics) is dat merkbaar... dat is waar tradeoffs (snelheid/bruikaarheid/correctheid) ontstaan\n\nFocus on JRuby in this pres. since very active in JSR-292 \n
  50. *Java (taal) bevat ook ficties!\n*Schoen gaat wringen wanneer language fictions realiteit van JVM moeten gaan verbergen/opleuken\n* Zelfs in Java (Generics) is dat merkbaar... dat is waar tradeoffs (snelheid/bruikaarheid/correctheid) ontstaan\n\nFocus on JRuby in this pres. since very active in JSR-292 \n
  51. \n
  52. * Started 2007/2008\n* Open-ended experiment from Sun. Wild ideas considered, but must prove useful to reach Java SE 7\n
  53. \n
  54. * for core types specialized invokers may be packaged with ruby (but: wasteful, 100s of small classes)\n
  55. \n
  56. * Signature polymorphism (there is no actual invoke method conforming to the MethodType)\n* results in invokevirtual call on MethodHandle class, which then dispatches to the correct code (if type sig matches!)\n* pass target object as first param when virtual method is concerned\n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. This was already possible (hence the existing JVM languages), but is now architecturally supported. Therefore: easier to implement, more speed through optimizations etc.\n
  67. JRuby may throw away 80-90% of it&amp;#x2019;s calling-runtime, and win enormously.\n
  68. \n
  69. \n\n
  70. \n\n
  71. \n\n
  72. \n\n
  73. \n\n