jvm ecosystem languages and the future of jvm
TRANSCRIPT
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