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: mizanur-rahman-khan

Post on 11-Aug-2015

56 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: JVM ecosystem languages and the future of JVM

JVM Ecosystem Languages and

The Future of JVM

Sazzadur RahamanEngineer

Kona Software Lab.

Mizanur Rahman KhanEngineer

Kona Software Lab.

Page 2: JVM ecosystem languages and the future of JVM

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

Page 3: JVM ecosystem languages and the future of JVM

Rise of Dynamic Typed Languages

- Dynamic Typing- Simplicity of Usage- Rich Built in Data Structures- Automatic Memory Management

Pioneered, Rapid Application Development

Page 4: JVM ecosystem languages and the future of JVM

Rise of Functional Programming Languages

- Concurrency and Parallelism inherently

- Succinct, Concise, Understandable

- Modularity

Page 5: JVM ecosystem languages and the future of JVM

Time to Make Hands Dirty

Page 6: JVM ecosystem languages and the future of JVM

Pure Functions

functions without side effect

Page 7: JVM ecosystem languages and the future of JVM

Curried Functions

- f(x,y) = x + y- f(1,y) = 1 + y = g(y)- So, g(2) = 1 + 2- And, g(3) = 1 + 3

Page 8: JVM ecosystem languages and the future of JVM

Curried Functions

Page 9: JVM ecosystem languages and the future of JVM

Tail Recursion

No stack overflow

Page 10: JVM ecosystem languages and the future of JVM

JVM Language Profiles

Page 11: JVM ecosystem languages and the future of JVM

groovy JRuby Jython

Scala Clojure Kotlin

Page 12: JVM ecosystem languages and the future of JVM

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.

Page 13: JVM ecosystem languages and the future of JVM

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

Page 14: JVM ecosystem languages and the future of JVM

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”

Page 15: JVM ecosystem languages and the future of JVM

Polyglot Programming On JVM

Page 16: JVM ecosystem languages and the future of JVM

Classical Class

Page 17: JVM ecosystem languages and the future of JVM

Classical Class

Page 18: JVM ecosystem languages and the future of JVM

Classical Class

Page 19: JVM ecosystem languages and the future of JVM

Polyglot Programming On JVM

- Load test: Gatling- Build and Automation tool: Gradle- Testing Framework: Spock- ORM: Hibernate

Page 20: JVM ecosystem languages and the future of JVM

Real Life Architecture

Page 21: JVM ecosystem languages and the future of JVM

LinkedIn

Page 22: JVM ecosystem languages and the future of JVM

Twitter

- initially monolith application with ruby- backfired on massive scale

Page 23: JVM ecosystem languages and the future of JVM
Page 24: JVM ecosystem languages and the future of JVM
Page 25: JVM ecosystem languages and the future of JVM

Twitter Stack

Page 26: JVM ecosystem languages and the future of JVM

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

Page 27: JVM ecosystem languages and the future of JVM

Whatever happened with Java, JVM will stay and Rock!!!

Page 28: JVM ecosystem languages and the future of JVM

Thank You