Jug dynamic languages_in_jvm
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
949
On Slideshare
891
From Embeds
58
Number of Embeds
4

Actions

Shares
Downloads
3
Comments
0
Likes
2

Embeds 58

http://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 49
http://jug.lv 5
http://www.jug.lv 3
http://jugpreview.tumblr.com 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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]