JVM Ecosystem Languages and The Future of JVM Sazzadur Rahaman Engineer Kona Software Lab. Mizanur Rahman Khan Engineer Kona Software Lab.
Aug 11, 2015
JVM Ecosystem Languages and
The Future of JVM
Sazzadur RahamanEngineer
Kona Software Lab.
Mizanur Rahman KhanEngineer
Kona Software Lab.
Outline
- Rise of Modern Programming Paradigms- Time to make Hands Dirty- JVM Language Profiles- Why JVM Languages are Growingly Popular- Polyglot Programming in JVM- Some Successful Real Life Architectures- Roadmap of JVM
Rise of Dynamic Typed Languages
- Dynamic Typing- Simplicity of Usage- Rich Built in Data Structures- Automatic Memory Management
Pioneered, Rapid Application Development
Rise of Functional Programming Languages
- Concurrency and Parallelism inherently
- Succinct, Concise, Understandable
- Modularity
Time to Make Hands Dirty
Pure Functions
functions without side effect
Curried Functions
- f(x,y) = x + y- f(1,y) = 1 + y = g(y)- So, g(2) = 1 + 2- And, g(3) = 1 + 3
Curried Functions
Tail Recursion
No stack overflow
JVM Language Profiles
groovy JRuby Jython
Scala Clojure Kotlin
Groovy
- Created by James Strachan, around 2003- Strong, Supports both Static and Dynamic Typing- more compact, less verbose- Inspired by Python, Ruby, Perl, and Smalltalk.
Scala- Designed By Martin Odersky around 2001- Designed to be a better java, Yet built on top of java - Non-unified type system (primitives vs. objects)- Functional Meets OOP- Type Inference, Anonymous Functions
Why JVM Languages are growingly popular
- Access to Java EE technologies, those are scalable, very stable, secured, proven in decades
- Largest developer community- Jvm code optimization- Native threads- Access to extensive java libraries(library, dev tool, ops tool)
- Just in Time Compiler
- Remeber? “Write once, Run everywhere”
Polyglot Programming On JVM
Classical Class
Classical Class
Classical Class
Polyglot Programming On JVM
- Load test: Gatling- Build and Automation tool: Gradle- Testing Framework: Spock- ORM: Hibernate
Real Life Architecture
- initially monolith application with ruby- backfired on massive scale
Twitter Stack
Roadmap of JVM
- JDK 7- invokedynamic- new file I/O
- JDK 8- re-organising memory (remove perm gen)
- JDK 9- Hypervisor-aware JVM - Java module system- Co-operative memory page sharing
Whatever happened with Java, JVM will stay and Rock!!!
Thank You