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

LinkedIn

Twitter

- 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


Top Related