SlideShare a Scribd company logo
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
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 & parallelism
○ Immutable data structure for simpler concurrency
○ Great primitives for parallelism
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 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
3. Effective governance
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
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
Questions?
https://www.lucagrulla.com
Signal Media is hiring!
https://signalmedia.co/solve-big-challenges/

More Related Content

PPTX
Transmitting Signal with Clojure
PDF
Proglangauage1.10.18
PDF
Practical functional programming in JavaScript for the non-mathematician
PDF
Meetup 2020 - Back to the Basics part 101 : IaC
PDF
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
PDF
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
PDF
Red Hat Java Update and Quarkus Introduction
Transmitting Signal with Clojure
Proglangauage1.10.18
Practical functional programming in JavaScript for the non-mathematician
Meetup 2020 - Back to the Basics part 101 : IaC
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Red Hat Java Update and Quarkus Introduction

Similar to Clojure's killer design decisions (20)

PDF
Modern ClojureScript
PDF
TSC BoF: OSS Toolchain Discussion - SFO17-409
PDF
BoxLang vs the world Koi Koenig CFCamp 2024
PDF
The Ring programming language version 1.5.3 book - Part 186 of 194
PDF
Leveraging Open Standards to Build Highly Extensible Autonomous Systems
 
PDF
LinuxCon Europe 2013
PDF
Kotlin for Android
PDF
GitOps , done Right
PDF
W9L2 Scaling Up LLM Pretraining: Scaling Law
PDF
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
PDF
10 more lessons learned from building Machine Learning systems
PDF
10 more lessons learned from building Machine Learning systems - MLConf
PDF
Xavier Amatriain, VP of Engineering, Quora at MLconf SF - 11/13/15
PDF
Our Concurrent Past; Our Distributed Future
PDF
Taming the LLM Herd - Effortless Multi-Model Integration with LangChain
PDF
Workday's Next Generation Private Cloud
PDF
Java vs Kotlin_ Which is the Best for Android App Development.pdf
PPTX
The-Future-of-Kotlin-What-Developers-Need-to-Know.pptx
PDF
Microservices - Please, don't
PPTX
Docker, Microservices, and the Service Mesh
Modern ClojureScript
TSC BoF: OSS Toolchain Discussion - SFO17-409
BoxLang vs the world Koi Koenig CFCamp 2024
The Ring programming language version 1.5.3 book - Part 186 of 194
Leveraging Open Standards to Build Highly Extensible Autonomous Systems
 
LinuxCon Europe 2013
Kotlin for Android
GitOps , done Right
W9L2 Scaling Up LLM Pretraining: Scaling Law
OpenNebulaConf2019 - Welcome and Project Update - Ignacio M. Llorente, Rubén ...
10 more lessons learned from building Machine Learning systems
10 more lessons learned from building Machine Learning systems - MLConf
Xavier Amatriain, VP of Engineering, Quora at MLconf SF - 11/13/15
Our Concurrent Past; Our Distributed Future
Taming the LLM Herd - Effortless Multi-Model Integration with LangChain
Workday's Next Generation Private Cloud
Java vs Kotlin_ Which is the Best for Android App Development.pdf
The-Future-of-Kotlin-What-Developers-Need-to-Know.pptx
Microservices - Please, don't
Docker, Microservices, and the Service Mesh
Ad

More from Luca Grulla (9)

PDF
Change a gear up with Evolutionary Architecture
PPTX
Impact! Drive innovation from the front seat
PDF
Innovation at speed
PDF
Embracing Clojure: a journey into Clojure adoption
PPTX
Firehose
PDF
Il grande bluff delle stime
PPTX
Javascript testing IAD2010
PPT
Agile Estimating And Planning
PPT
Retrospectives Techniques
Change a gear up with Evolutionary Architecture
Impact! Drive innovation from the front seat
Innovation at speed
Embracing Clojure: a journey into Clojure adoption
Firehose
Il grande bluff delle stime
Javascript testing IAD2010
Agile Estimating And Planning
Retrospectives Techniques
Ad

Recently uploaded (20)

PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Understanding Forklifts - TECH EHS Solution
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
System and Network Administration Chapter 2
PPTX
Introduction to Artificial Intelligence
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
medical staffing services at VALiNTRY
PDF
Nekopoi APK 2025 free lastest update
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
System and Network Administraation Chapter 3
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Which alternative to Crystal Reports is best for small or large businesses.pdf
Odoo POS Development Services by CandidRoot Solutions
Operating system designcfffgfgggggggvggggggggg
Understanding Forklifts - TECH EHS Solution
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PTS Company Brochure 2025 (1).pdf.......
System and Network Administration Chapter 2
Introduction to Artificial Intelligence
Design an Analysis of Algorithms I-SECS-1021-03
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
medical staffing services at VALiNTRY
Nekopoi APK 2025 free lastest update
Adobe Illustrator 28.6 Crack My Vision of Vector Design
How Creative Agencies Leverage Project Management Software.pdf
CHAPTER 2 - PM Management and IT Context
System and Network Administraation Chapter 3
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Odoo Companies in India – Driving Business Transformation.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus

Clojure's killer design decisions

  • 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. There are “killer” decisions that boost a language maturity and adoption
  • 3. Maturity 1959 20171985 1990 1995 2007 2011 Cobol C++ Haskell Java Clojure Kotlin Rust 1958 Lisp
  • 4. Adoption: 2018 top 20 languages
  • 5. Clojure’s 3 killer design decisions
  • 6. 1. Solve everyday problems
  • 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
  • 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
  • 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. 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. Questions? https://www.lucagrulla.com Signal Media is hiring! https://signalmedia.co/solve-big-challenges/