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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Jug dynamic languages_in_jvm

  • 667 views
Published

 

  • 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
667
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
4
Comments
0
Likes
2

Embeds 0

No embeds

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]