jvm ecosystem languages and the future of jvm

28
JVM Ecosystem Languages and The Future of JVM Sazzadur Rahaman Engineer Kona Software Lab. Mizanur Rahman Khan Engineer Kona Software Lab.

Upload: java-user-group-bangladesh

Post on 10-Aug-2015

70 views

Category:

Technology


1 download

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