picking a jvm language: which one is right for you? · which one is right for you? how it started 2...

17
Picking a JVM Language: Venkat Subramaniam [email protected] @venkat_s which one is right for you?

Upload: vuongkhuong

Post on 02-Sep-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Picking a JVM Language:

Venkat Subramaniam [email protected] @venkat_s

which one is right for you?

How it started

2

JVM

JDK

Java

Multi PlatformGC

PerformanceScalable

Multithreaded

Powerful

Versatile

Simple

How it started

3

JVM

JDK

Java

Multi PlatformGC

PerformanceScalable

Multithreaded

Powerful

Versatile

SimpleSimpler than C++

How it evolved

4

JVM

JDK

Java

Multi PlatformGC

PerformanceScalable

Multithreaded

Powerful

Versatile

Weakest link

Ubiquitous

Widely used

Emergence

Exodu

s

Ruby/Rails

2000

Renais

sance

Groovy, Scala

2003

JRuby, Clojure

Where we’re now

6

JVM

JDK

Java

Multi PlatformGC

PerformanceScalable

Multithreaded

Powerful

VersatileUbiquitous

Widely used

Scala Groovy JRuby Clojure

What do these offer?

7

Productivity gain

8

EaseFunctional Style

Once we get past the learning curve

Typing

9

Static

Dynamic

Strong Weak

Java

Scala

Clojure

Groovy

JRuby Perl

C++

Essence vs. Ceremony

10

Essence

Ceremony

Java

ScalaClojureGroovy JRuby

Java8

Functional Style

11

Functional Purity and Style

Non-Functional

Java

Scala Clojure

GroovyJRuby Java8

Concurrency Facilitator

12

Immutable

Shared Mutable State

Java

Scala

Clojure

GroovyJRuby Java8

Metaprogramming

13

Metaprogramming

Reflection

Java

Scala

ClojureGroovy JRuby

Fluency

14

Fluent

Not so fluent

Java

Scala

Clojure

GroovyJRuby

Java8

How does this matter?

Internal DSL == Metaprogramming + Fluency

Groovy and JRuby shine here

15

What Made Lisp SpecialPaul Graham’s list

16

1. Conditionals2. A function type

3. Recursion4. Concept of variables

5. Garbage-collection

6. Composed of Expressions

7. A symbol type

8. Notation for tree of symbols

9. Whole Program always available

Evaluating Suitability

17

Sample only, don’t use these numbers literally