SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Copyright © 2014 Russel Winder 1
Groovy, GPars, @CompileStatic and
invokedynamic. And Java 8.
Russel Winder
email: russel@winder.org.uk
xmpp: russel@winder.org.uk
twitter: @russel_winder
http://www.russel.org.uk
Copyright © 2014 Russel Winder 2
is a programming language.
Copyright © 2014 Russel Winder 3
is a dynamic programming language.
Copyright © 2014 Russel Winder 4
Dynamic language rarely
exhibit high performance.
Copyright © 2014 Russel Winder 5
This is generally not a problem as
most dynamic languages are
usually used in I/O-bound contexts.
Copyright © 2014 Russel Winder 6
In CPU-bound contexts however,
it is a REAL problem.
Copyright © 2014 Russel Winder 7
The biggest issue for Groovy performance
is that floating point values are
BigDecimal by default.
Copyright © 2014 Russel Winder 8
We need an example.
Copyright © 2014 Russel Winder 9

Copyright © 2014 Russel Winder 10
What is the Value of ?
Easy, it's known exactly.
It's .
Obviously.
Copyright © 2014 Russel Winder 11
Putative joke involving Alexander Orlov (*)
and the phrase It's simples. elided as UK“ ”
television-related comedy doesn't travel.
(*) A fairly cute meerkat.
Copyright © 2014 Russel Winder 12
Approximating 
● What is it's value represented as a floating point
number?
● We can only obtain an approximation.
● A plethora of possible algorithms to choose from, a
popular one is to employ the following integral
equation.

4
=∫0
1 1
1x2
dx
Copyright © 2014 Russel Winder 13
One Possible Algorithm
● Use quadrature to estimate the value of the integral
– which is the area under the curve.
=
4
n
∑i=1
n 1
1
i−0.5
n

2
With n = 3 not much to do,
but potentially lots of error.
Use n = 107
or n = 109
?
Embarrassingly
parallel.
Copyright © 2014 Russel Winder 14
Because addition is commutative and
associative, expression can be
decomposed into sums of partial sums.
Copyright © 2014 Russel Winder 15
a + b + c + d + e + f
=
( a + b ) + ( c + d ) + ( e + f )
Copyright © 2014 Russel Winder 16
Scatter – Gather
map reduce
fork join
Data parallel
Copyright © 2014 Russel Winder 17
Back to the BigDecimal issue…
Copyright © 2014 Russel Winder 18
…to the code:
Copyright © 2014 Russel Winder 19
As with (almost) all programming language,
Groovy is focussed on sequential activity.
Copyright © 2014 Russel Winder 20
In a multicore world, we harness all the
cores to improve performance.
Copyright © 2014 Russel Winder 21
The Java Platform offers threads,
Java, and hence Groovy, can use them.
Copyright © 2014 Russel Winder 22
Shared memory multithreading is an
infrastructure technique.
Copyright © 2014 Russel Winder 23
java.util.concurrent
Copyright © 2014 Russel Winder 24
Copyright © 2014 Russel Winder 25
Concurrency can be used for
I/O-bound systems, but…
Copyright © 2014 Russel Winder 26
…concurrency can also be used
for CPU-bound systems.
Parallelism.
Copyright © 2014 Russel Winder 27
Parallelism is about performance.
Copyright © 2014 Russel Winder 28
Look at some code…
Copyright © 2014 Russel Winder 29
Dynamism and parallelism are
rarely good bedfellows.
Copyright © 2014 Russel Winder 30
@CompileStatic is about…
…eliding dynamism.
…about performance.
Copyright © 2014 Russel Winder 31
invokedynamic is about…
…supporting dynamism.
…performance.
Copyright © 2014 Russel Winder 32
Java 8
The greatest revolution of
Java since 1994.
A far bigger revolution of
Java than Java 5.
Copyright © 2014 Russel Winder 33
Java 8
Introduces various things, the most
important of which are:
Lambda expressions.
Default methods in interfaces.
Copyright © 2014 Russel Winder 34
Java 8
as a consequence of
lambda expressions introduces:
Streams†
.
†
And parallelism, and parallelism is about performance.
Copyright © 2014 Russel Winder 35
More codes…
Copyright © 2014 Russel Winder 36
Needs You…
Copyright © 2014 Russel Winder 37
Groovy, GPars, @CompileStatic and
invokedynamic. And Java 8
Russel Winder
email: russel@winder.org.uk
xmpp: russel@winder.org.uk
twitter: @russel_winder
http://www.russel.org.uk

Más contenido relacionado

Más de Russel Winder

The Case for Kotlin and Ceylon
The Case for Kotlin and CeylonThe Case for Kotlin and Ceylon
The Case for Kotlin and CeylonRussel Winder
 
On the Architectures of Microservices: the next layer
On the Architectures of Microservices: the next layerOn the Architectures of Microservices: the next layer
On the Architectures of Microservices: the next layerRussel Winder
 
Fast Python? Don't Bother
Fast Python? Don't BotherFast Python? Don't Bother
Fast Python? Don't BotherRussel Winder
 
Making Python computations fast
Making Python computations fastMaking Python computations fast
Making Python computations fastRussel Winder
 
Tales from the Workshops
Tales from the WorkshopsTales from the Workshops
Tales from the WorkshopsRussel Winder
 
Making Computations Execute Very Quickly
Making Computations Execute Very QuicklyMaking Computations Execute Very Quickly
Making Computations Execute Very QuicklyRussel Winder
 
Java is Dead, Long Live Ceylon, Kotlin, etc
Java is Dead,  Long Live Ceylon, Kotlin, etcJava is Dead,  Long Live Ceylon, Kotlin, etc
Java is Dead, Long Live Ceylon, Kotlin, etcRussel Winder
 
Java is dead, long live Scala, Kotlin, Ceylon, etc.
Java is dead, long live Scala, Kotlin, Ceylon, etc.Java is dead, long live Scala, Kotlin, Ceylon, etc.
Java is dead, long live Scala, Kotlin, Ceylon, etc.Russel Winder
 
Spocktacular testing
Spocktacular testingSpocktacular testing
Spocktacular testingRussel Winder
 
Spocktacular Testing
Spocktacular TestingSpocktacular Testing
Spocktacular TestingRussel Winder
 
Is Groovy static or dynamic
Is Groovy static or dynamicIs Groovy static or dynamic
Is Groovy static or dynamicRussel Winder
 
Java is dead, long live Scala Kotlin Ceylon etc.
Java is dead, long live Scala Kotlin Ceylon etc.Java is dead, long live Scala Kotlin Ceylon etc.
Java is dead, long live Scala Kotlin Ceylon etc.Russel Winder
 
Are Go and D threats to Python
Are Go and D threats to PythonAre Go and D threats to Python
Are Go and D threats to PythonRussel Winder
 
Is Groovy as fast as Java
Is Groovy as fast as JavaIs Groovy as fast as Java
Is Groovy as fast as JavaRussel Winder
 
Who needs C++ when you have D and Go
Who needs C++ when you have D and GoWho needs C++ when you have D and Go
Who needs C++ when you have D and GoRussel Winder
 
Java 8: a New Beginning
Java 8: a New BeginningJava 8: a New Beginning
Java 8: a New BeginningRussel Winder
 
Why Go is an important programming language
Why Go is an important programming languageWhy Go is an important programming language
Why Go is an important programming languageRussel Winder
 
GPars: Groovy Parallelism for Java
GPars: Groovy Parallelism for JavaGPars: Groovy Parallelism for Java
GPars: Groovy Parallelism for JavaRussel Winder
 
GroovyFX: or how to program JavaFX easily
GroovyFX: or how to program JavaFX easily GroovyFX: or how to program JavaFX easily
GroovyFX: or how to program JavaFX easily Russel Winder
 

Más de Russel Winder (20)

The Case for Kotlin and Ceylon
The Case for Kotlin and CeylonThe Case for Kotlin and Ceylon
The Case for Kotlin and Ceylon
 
On the Architectures of Microservices: the next layer
On the Architectures of Microservices: the next layerOn the Architectures of Microservices: the next layer
On the Architectures of Microservices: the next layer
 
Fast Python? Don't Bother
Fast Python? Don't BotherFast Python? Don't Bother
Fast Python? Don't Bother
 
Making Python computations fast
Making Python computations fastMaking Python computations fast
Making Python computations fast
 
Tales from the Workshops
Tales from the WorkshopsTales from the Workshops
Tales from the Workshops
 
Making Computations Execute Very Quickly
Making Computations Execute Very QuicklyMaking Computations Execute Very Quickly
Making Computations Execute Very Quickly
 
Java is Dead, Long Live Ceylon, Kotlin, etc
Java is Dead,  Long Live Ceylon, Kotlin, etcJava is Dead,  Long Live Ceylon, Kotlin, etc
Java is Dead, Long Live Ceylon, Kotlin, etc
 
GPars Remoting
GPars RemotingGPars Remoting
GPars Remoting
 
Java is dead, long live Scala, Kotlin, Ceylon, etc.
Java is dead, long live Scala, Kotlin, Ceylon, etc.Java is dead, long live Scala, Kotlin, Ceylon, etc.
Java is dead, long live Scala, Kotlin, Ceylon, etc.
 
Spocktacular testing
Spocktacular testingSpocktacular testing
Spocktacular testing
 
Spocktacular Testing
Spocktacular TestingSpocktacular Testing
Spocktacular Testing
 
Is Groovy static or dynamic
Is Groovy static or dynamicIs Groovy static or dynamic
Is Groovy static or dynamic
 
Java is dead, long live Scala Kotlin Ceylon etc.
Java is dead, long live Scala Kotlin Ceylon etc.Java is dead, long live Scala Kotlin Ceylon etc.
Java is dead, long live Scala Kotlin Ceylon etc.
 
Are Go and D threats to Python
Are Go and D threats to PythonAre Go and D threats to Python
Are Go and D threats to Python
 
Is Groovy as fast as Java
Is Groovy as fast as JavaIs Groovy as fast as Java
Is Groovy as fast as Java
 
Who needs C++ when you have D and Go
Who needs C++ when you have D and GoWho needs C++ when you have D and Go
Who needs C++ when you have D and Go
 
Java 8: a New Beginning
Java 8: a New BeginningJava 8: a New Beginning
Java 8: a New Beginning
 
Why Go is an important programming language
Why Go is an important programming languageWhy Go is an important programming language
Why Go is an important programming language
 
GPars: Groovy Parallelism for Java
GPars: Groovy Parallelism for JavaGPars: Groovy Parallelism for Java
GPars: Groovy Parallelism for Java
 
GroovyFX: or how to program JavaFX easily
GroovyFX: or how to program JavaFX easily GroovyFX: or how to program JavaFX easily
GroovyFX: or how to program JavaFX easily
 

Último

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Último (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Groovy, GPars, @CompileStatic and invokedynamic. And Java 8.

  • 1. Copyright © 2014 Russel Winder 1 Groovy, GPars, @CompileStatic and invokedynamic. And Java 8. Russel Winder email: russel@winder.org.uk xmpp: russel@winder.org.uk twitter: @russel_winder http://www.russel.org.uk
  • 2. Copyright © 2014 Russel Winder 2 is a programming language.
  • 3. Copyright © 2014 Russel Winder 3 is a dynamic programming language.
  • 4. Copyright © 2014 Russel Winder 4 Dynamic language rarely exhibit high performance.
  • 5. Copyright © 2014 Russel Winder 5 This is generally not a problem as most dynamic languages are usually used in I/O-bound contexts.
  • 6. Copyright © 2014 Russel Winder 6 In CPU-bound contexts however, it is a REAL problem.
  • 7. Copyright © 2014 Russel Winder 7 The biggest issue for Groovy performance is that floating point values are BigDecimal by default.
  • 8. Copyright © 2014 Russel Winder 8 We need an example.
  • 9. Copyright © 2014 Russel Winder 9 
  • 10. Copyright © 2014 Russel Winder 10 What is the Value of ? Easy, it's known exactly. It's . Obviously.
  • 11. Copyright © 2014 Russel Winder 11 Putative joke involving Alexander Orlov (*) and the phrase It's simples. elided as UK“ ” television-related comedy doesn't travel. (*) A fairly cute meerkat.
  • 12. Copyright © 2014 Russel Winder 12 Approximating  ● What is it's value represented as a floating point number? ● We can only obtain an approximation. ● A plethora of possible algorithms to choose from, a popular one is to employ the following integral equation.  4 =∫0 1 1 1x2 dx
  • 13. Copyright © 2014 Russel Winder 13 One Possible Algorithm ● Use quadrature to estimate the value of the integral – which is the area under the curve. = 4 n ∑i=1 n 1 1 i−0.5 n  2 With n = 3 not much to do, but potentially lots of error. Use n = 107 or n = 109 ? Embarrassingly parallel.
  • 14. Copyright © 2014 Russel Winder 14 Because addition is commutative and associative, expression can be decomposed into sums of partial sums.
  • 15. Copyright © 2014 Russel Winder 15 a + b + c + d + e + f = ( a + b ) + ( c + d ) + ( e + f )
  • 16. Copyright © 2014 Russel Winder 16 Scatter – Gather map reduce fork join Data parallel
  • 17. Copyright © 2014 Russel Winder 17 Back to the BigDecimal issue…
  • 18. Copyright © 2014 Russel Winder 18 …to the code:
  • 19. Copyright © 2014 Russel Winder 19 As with (almost) all programming language, Groovy is focussed on sequential activity.
  • 20. Copyright © 2014 Russel Winder 20 In a multicore world, we harness all the cores to improve performance.
  • 21. Copyright © 2014 Russel Winder 21 The Java Platform offers threads, Java, and hence Groovy, can use them.
  • 22. Copyright © 2014 Russel Winder 22 Shared memory multithreading is an infrastructure technique.
  • 23. Copyright © 2014 Russel Winder 23 java.util.concurrent
  • 24. Copyright © 2014 Russel Winder 24
  • 25. Copyright © 2014 Russel Winder 25 Concurrency can be used for I/O-bound systems, but…
  • 26. Copyright © 2014 Russel Winder 26 …concurrency can also be used for CPU-bound systems. Parallelism.
  • 27. Copyright © 2014 Russel Winder 27 Parallelism is about performance.
  • 28. Copyright © 2014 Russel Winder 28 Look at some code…
  • 29. Copyright © 2014 Russel Winder 29 Dynamism and parallelism are rarely good bedfellows.
  • 30. Copyright © 2014 Russel Winder 30 @CompileStatic is about… …eliding dynamism. …about performance.
  • 31. Copyright © 2014 Russel Winder 31 invokedynamic is about… …supporting dynamism. …performance.
  • 32. Copyright © 2014 Russel Winder 32 Java 8 The greatest revolution of Java since 1994. A far bigger revolution of Java than Java 5.
  • 33. Copyright © 2014 Russel Winder 33 Java 8 Introduces various things, the most important of which are: Lambda expressions. Default methods in interfaces.
  • 34. Copyright © 2014 Russel Winder 34 Java 8 as a consequence of lambda expressions introduces: Streams† . † And parallelism, and parallelism is about performance.
  • 35. Copyright © 2014 Russel Winder 35 More codes…
  • 36. Copyright © 2014 Russel Winder 36 Needs You…
  • 37. Copyright © 2014 Russel Winder 37 Groovy, GPars, @CompileStatic and invokedynamic. And Java 8 Russel Winder email: russel@winder.org.uk xmpp: russel@winder.org.uk twitter: @russel_winder http://www.russel.org.uk