SlideShare a Scribd company logo
Alternative Languages on JVM Java User Group Latvia www.jug.lv
Agenda Why alternative languages? What are the options? How to use them?  Meet today's leaders JRuby Groovy Scala Summary
Why Go Alternative? Java is stagnating  Syntax Complex language - generics example? Technical limitations Ugly API  JDK 7/8 is being delayed We want power now!!!
Why Go Alternative? Generics Primitives Arrays Date API I/O API No closures
Why Go Alternative? Cool frameworks and libraries Embedded scripting Less code Simple code
Where To Go? Dynamic Languages JRuby Jython Groovy Rhino (JavaScript) Functional Languages Clojure Scala
Groovy Easiest to learn  Direct invocation of Java methods Compilable Java only Grails, Gradle, Gant, Griffon, GPars, ... Markup builder example...   
JRuby Different from Java Intuitive syntax Several implementations (Native, IronRuby, ...)  Compilable  Rails, Rake, Ruby Gems, ... Active Record example
Scala Functional and object-oriented  Concurrency Academic Java only  Lift  Prime numbers example ...
How it works? Interpreted  JDK 6 JSR 223 (javax.script) (Example) Apache Bean Scripting Framework (BSF) Custom script runners Compilation into bytecode Best performance
What about existing code? Calls to Java Calls from Java Class extensions (example) Hybrid systems
JVM and Java Language JVM and Java are not the same thing Java used with no JVM (Android, GWT) JVM used with no Java (JVM languages)
Summary One language is not enough  No changes to infrastructure Don't treat Java as a hammer  No need to drop Java Simply try it !
Where to Start? Try Groovy Easiest Java integration Compilation into bytecode Lots of frameworks
Time for discussion Tell us what do you think
References http://jruby.org/ http://groovy.codehaus.org/  http://www.scala-lang.org/  http://jakarta.apache.org/bsf/ http://jcp.org/en/jsr/detail?id=223
Who am I? Dmitry Buzdin    Agile software developer working with Java since 2005 Based in C.T.Co Reach me at  [email_address]

More Related Content

PPTX
Kotlin For Android (at DevFest İzmir 2016)
PDF
Lets get started by Leif Gensert
PDF
BDD in PHP - Behat
ODP
2009 Eclipse Con
PPTX
Ruby programming
PDF
Language portfolio
PPTX
Kotlin - A Programming Language
PDF
Javascript Framework Roundup FYB
Kotlin For Android (at DevFest İzmir 2016)
Lets get started by Leif Gensert
BDD in PHP - Behat
2009 Eclipse Con
Ruby programming
Language portfolio
Kotlin - A Programming Language
Javascript Framework Roundup FYB

What's hot (20)

PDF
If programming languages were hot babes
PPTX
Introduction To Rust Language - Chester Devs
ODP
Ruby on Rails 3
PPTX
Week 8 intro to python
PDF
Making CLI app in ruby
PPTX
Scala in your organisation
PPTX
Groovy best pratices at EWAY
PDF
NoSQL for great good [hanoi.rb talk]
PDF
Why Ruby
PDF
Best Practices For Writing Super Readable Code
ODP
Devoxx 2013 Summary/Keynotes
PDF
Grooming with Groovy
PDF
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
PPTX
Building Your Own DSL with Xtext
PDF
Perl5 VS JSON
PDF
Agile DSL Development in Ruby
KEY
Intro to java
PDF
Wojciech Ogrodowczyk | 3Scale | I am a Developer
KEY
A rough guide to JavaScript Performance
KEY
Dart: A Replacement for JavaScript and Why You Should Care
If programming languages were hot babes
Introduction To Rust Language - Chester Devs
Ruby on Rails 3
Week 8 intro to python
Making CLI app in ruby
Scala in your organisation
Groovy best pratices at EWAY
NoSQL for great good [hanoi.rb talk]
Why Ruby
Best Practices For Writing Super Readable Code
Devoxx 2013 Summary/Keynotes
Grooming with Groovy
Scala e xchange 2013 haoyi li on metascala a tiny diy jvm
Building Your Own DSL with Xtext
Perl5 VS JSON
Agile DSL Development in Ruby
Intro to java
Wojciech Ogrodowczyk | 3Scale | I am a Developer
A rough guide to JavaScript Performance
Dart: A Replacement for JavaScript and Why You Should Care
Ad

Viewers also liked (9)

PDF
Yantra 2011 Autumn issue
PPT
140218 seminar with blt and roa-syk_updated
PDF
Yantra 2011 autumn
PDF
RiSE (Research in School of Education ) newsletter Issue03 (Spring 2011)
PDF
ความรู้เบื้องต้นเกี่ยวกับโปรแกรม Dreamweaver CS6
PDF
Allrecipes Measuring Cup Report March 2010
DOC
No Little Thing Bill Powell Oral History
PDF
Milan Urban Food Policy Pact : Presentation and way forward
PDF
2014-05-30 Design in Urban Food Systems
Yantra 2011 Autumn issue
140218 seminar with blt and roa-syk_updated
Yantra 2011 autumn
RiSE (Research in School of Education ) newsletter Issue03 (Spring 2011)
ความรู้เบื้องต้นเกี่ยวกับโปรแกรม Dreamweaver CS6
Allrecipes Measuring Cup Report March 2010
No Little Thing Bill Powell Oral History
Milan Urban Food Policy Pact : Presentation and way forward
2014-05-30 Design in Urban Food Systems
Ad

Similar to Jug dynamic languages_in_jvm (20)

PDF
Why don't you Groovy?
PPT
Dynamic Languages on the JVM
PPT
Practical JRuby
PPT
Groovy introduction
PDF
Overview of Java
PDF
Groovy Finesse
PDF
Groovy Finesse
PDF
Introduction to JRuby
PPT
The Evolution of Java
PPT
Java, Ruby & Rails
PDF
Bitter Java, Sweeten with JRuby
PPTX
Scala & Swagger at Wordnik
PDF
Languages used by web app development services remotestac x
KEY
Polyglot OSGi
DOCX
What are the different java interview questions you need to know?
PPTX
Java Presentation
PPTX
Lecture java basics
PDF
What are the different java interview questions you need to know?
PPT
Groovy And Grails
PPT
December 4 SDForum Java Sig Presentation
Why don't you Groovy?
Dynamic Languages on the JVM
Practical JRuby
Groovy introduction
Overview of Java
Groovy Finesse
Groovy Finesse
Introduction to JRuby
The Evolution of Java
Java, Ruby & Rails
Bitter Java, Sweeten with JRuby
Scala & Swagger at Wordnik
Languages used by web app development services remotestac x
Polyglot OSGi
What are the different java interview questions you need to know?
Java Presentation
Lecture java basics
What are the different java interview questions you need to know?
Groovy And Grails
December 4 SDForum Java Sig Presentation

More from Dmitry Buzdin (20)

PDF
How Payment Cards Really Work?
PDF
Как построить свой фреймворк для автотестов?
PDF
How to grow your own Microservice?
PDF
How to Build Your Own Test Automation Framework?
PDF
Delivery Pipeline for Windows Machines
PPTX
Big Data Processing Using Hadoop Infrastructure
PDF
JOOQ and Flyway
PDF
Developing Useful APIs
PPTX
Whats New in Java 8
PPTX
Архитектура Ленты на Одноклассниках
PDF
Dart Workshop
PDF
Riding Redis @ask.fm
PDF
Rubylight JUG Contest Results Part II
PDF
Rubylight Pattern-Matching Solutions
PDF
Refactoring to Macros with Clojure
PPTX
Poor Man's Functional Programming
PDF
Rubylight programming contest
PPTX
Continuous Delivery
PPTX
Introduction to DevOps
PDF
Thread Dump Analysis
How Payment Cards Really Work?
Как построить свой фреймворк для автотестов?
How to grow your own Microservice?
How to Build Your Own Test Automation Framework?
Delivery Pipeline for Windows Machines
Big Data Processing Using Hadoop Infrastructure
JOOQ and Flyway
Developing Useful APIs
Whats New in Java 8
Архитектура Ленты на Одноклассниках
Dart Workshop
Riding Redis @ask.fm
Rubylight JUG Contest Results Part II
Rubylight Pattern-Matching Solutions
Refactoring to Macros with Clojure
Poor Man's Functional Programming
Rubylight programming contest
Continuous Delivery
Introduction to DevOps
Thread Dump Analysis

Jug dynamic languages_in_jvm

  • 1. Alternative Languages on JVM Java User Group Latvia www.jug.lv
  • 2. Agenda Why alternative languages? What are the options? How to use them? Meet today's leaders JRuby Groovy Scala Summary
  • 3. Why Go Alternative? Java is stagnating Syntax Complex language - generics example? Technical limitations Ugly API JDK 7/8 is being delayed We want power now!!!
  • 4. Why Go Alternative? Generics Primitives Arrays Date API I/O API No closures
  • 5. Why Go Alternative? Cool frameworks and libraries Embedded scripting Less code Simple code
  • 6. Where To Go? Dynamic Languages JRuby Jython Groovy Rhino (JavaScript) Functional Languages Clojure Scala
  • 7. Groovy Easiest to learn Direct invocation of Java methods Compilable Java only Grails, Gradle, Gant, Griffon, GPars, ... Markup builder example...   
  • 8. JRuby Different from Java Intuitive syntax Several implementations (Native, IronRuby, ...) Compilable Rails, Rake, Ruby Gems, ... Active Record example
  • 9. Scala Functional and object-oriented Concurrency Academic Java only Lift Prime numbers example ...
  • 10. How it works? Interpreted JDK 6 JSR 223 (javax.script) (Example) Apache Bean Scripting Framework (BSF) Custom script runners Compilation into bytecode Best performance
  • 11. What about existing code? Calls to Java Calls from Java Class extensions (example) Hybrid systems
  • 12. JVM and Java Language JVM and Java are not the same thing Java used with no JVM (Android, GWT) JVM used with no Java (JVM languages)
  • 13. Summary One language is not enough No changes to infrastructure Don't treat Java as a hammer No need to drop Java Simply try it !
  • 14. Where to Start? Try Groovy Easiest Java integration Compilation into bytecode Lots of frameworks
  • 15. Time for discussion Tell us what do you think
  • 16. References http://jruby.org/ http://groovy.codehaus.org/ http://www.scala-lang.org/ http://jakarta.apache.org/bsf/ http://jcp.org/en/jsr/detail?id=223
  • 17. Who am I? Dmitry Buzdin   Agile software developer working with Java since 2005 Based in C.T.Co Reach me at [email_address]