Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Clojure’s killer design
decisions
3 key decisions that boosted Clojure adoption and maturity
Luca Grulla - VP Engineering,...
There are “killer” decisions that boost a language
maturity and adoption
Maturity
1959 20171985 1990 1995 2007 2011
Cobol C++ Haskell Java Clojure Kotlin Rust
1958
Lisp
Adoption: 2018 top 20 languages
Clojure’s 3 killer design decisions
1. Solve everyday problems
1 - Solve everyday problems
● Boilerplate code
○ Lisp + FP + dynamic => small core and a terse syntax
● Concurrency & para...
2. Hosted on JVM
2 - Hosted on JVM
● “Use a runtime that people accept”
○ The JVM is loved and trusted by Ops and Security teams
● “Use oth...
3. Effective governance
3 - Effective governance (BDFL)
● Significant innovations within the first 10 years
○ core.async
○ transducers
○ clojure.s...
From design decisions to principles
1. Focus on your community
a. Solve everyday problems
2. Be aware of the operational a...
Questions?
https://www.lucagrulla.com
Signal Media is hiring!
https://signalmedia.co/solve-big-challenges/
Upcoming SlideShare
Loading in …5
×

Clojure's killer design decisions

182 views

Published on

The 3 key decisions that allows Clojure adoption and maturiy.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Clojure's killer design decisions

  1. 1. Clojure’s killer design decisions 3 key decisions that boosted Clojure adoption and maturity Luca Grulla - VP Engineering, Signal Media Functional Meetup, London Sept 2018
  2. 2. There are “killer” decisions that boost a language maturity and adoption
  3. 3. Maturity 1959 20171985 1990 1995 2007 2011 Cobol C++ Haskell Java Clojure Kotlin Rust 1958 Lisp
  4. 4. Adoption: 2018 top 20 languages
  5. 5. Clojure’s 3 killer design decisions
  6. 6. 1. Solve everyday problems
  7. 7. 1 - Solve everyday problems ● Boilerplate code ○ Lisp + FP + dynamic => small core and a terse syntax ● Concurrency & parallelism ○ Immutable data structure for simpler concurrency ○ Great primitives for parallelism
  8. 8. 2. Hosted on JVM
  9. 9. 2 - Hosted on JVM ● “Use a runtime that people accept” ○ The JVM is loved and trusted by Ops and Security teams ● “Use other’s people code” ○ Interoperability with the VAST Java ecosystem ● Focus on the language, not the runtime ○ Bet on JVM performance and on the continuous improvement of it
  10. 10. 3. Effective governance
  11. 11. 3 - Effective governance (BDFL) ● Significant innovations within the first 10 years ○ core.async ○ transducers ○ clojure.spec ● Open minded about adopting ideas from other communities/initiatives ○ clojure.spec⇔ RDF and Prismatic’s Schema ○ core.async⇔ Communicating Sequential Processes (CSP) ⇔ Go ○ core.typed
  12. 12. From design decisions to principles 1. Focus on your community a. Solve everyday problems 2. Be aware of the operational aspects a. Hosted on JVM 3. Keep innovating a. Effective governance
  13. 13. Questions? https://www.lucagrulla.com Signal Media is hiring! https://signalmedia.co/solve-big-challenges/

×