150 likes | 352 Views
Scala vs Clojure. ( Scala’s better) Bryan Gilbert $ curl http:// api.bryangilbert.com /profile . Joke. What do you call clojure developers?? CloJERKS !. Statically Typed. (awesome) Type Inference Variance / CoVariance Higher Kinded Types Abstract Types. Multi-Paradigm.
E N D
ScalavsClojure (Scala’s better) Bryan Gilbert $ curl http://api.bryangilbert.com/profile
Joke What do you call clojure developers?? CloJERKS!
Statically Typed • (awesome) Type Inference • Variance / CoVariance • Higher Kinded Types • Abstract Types
Multi-Paradigm • Functional
Multi-Paradigm • Object Oriented
Efficient • Easy to move “down to the metal” • Java Arrays • Unboxed Primitives (@specialed) • Ensure Single Dispatch Code • Compiled Jump Tables • Good at imperative “bottoms” where needed • Akka for Concurrency and Parallelism • Actors, Agents, STM (Yea that’s right), Futures
Java Interoperability • Dead simple and straight forward • Scala defined classes are easy to use from java • All object oriented concepts map into java • Excellent implicit conversions with java collections
MACROS!!! • Play 2 Json Inception • Spire • ScalaAsync • Scalaxy Loops • Quasiquotes!
Large Ecosystem • Akka • Play 2 (typesafe) • Spray • Finagle (twitter) • Scalding • Summingbird • Lift • Spark • Many More!
Massive Adoption • Siemens • Sony • Klout • Gilt • Airbnb • Meetup • Autodesk • Many More! • Typesafe • Twitter • Foursquare • LinkedIn • The Guardian • Tumblr • Novell • Xerox
Clojure Adoption • Rich Hickey • 3 Other dudes. • Mark
What else? • Option • Try • For Comprehensions • So. Much. More • Type Classes • Duck Typing • Self Typing • Implicits • Value Classes • Lazy Streams • Pattern Matching • String Interpolation • So Much More!