Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Don't fear the paren! 8 reasons you should give...
Search
Giuseppe Capizzi
April 09, 2014
Programming
210
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Don't fear the paren! 8 reasons you should give Clojure a try
Giuseppe Capizzi
April 09, 2014
More Decks by Giuseppe Capizzi
See All by Giuseppe Capizzi
A (not so) gentle introduction to functional programming
gcapizzi
1
200
PHP: The good, the bad and the ugly
gcapizzi
3
400
Other Decks in Programming
See All in Programming
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
5分で問診!Composer セキュリティ健康診断
codmoninc
0
1k
仕様駆動開発の消費期限
watany
20
8.3k
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
360
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
380
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
150
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
430
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.8k
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
330
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
680
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
510
Featured
See All Featured
From π to Pie charts
rasagy
0
280
Making the Leap to Tech Lead
cromwellryan
135
10k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
25k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
490
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
410
For a Future-Friendly Web
brad_frost
183
10k
The SEO identity crisis: Don't let AI make you average
varn
0
530
Into the Great Unknown - MozCon
thekraken
41
2.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.3k
Navigating Weather and Climate Data
rabernat
0
470
Making Projects Easy
brettharned
120
6.7k
Transcript
( ) DON’T FEAR THE PAREN! 8 reason you should
give Clojure a try
“2014 is the year of clojure” Federic Gala i
Uncle Bo “it might be the seed that starts the
process towards the last programming language”
1 functional
•Immutable, persistent data structures •first-class functions •dynamic polymorphism
“object orientation is overrated”
“mutable stateful objects are the new spaghetti code” All data
structures immutable & persistent
“It is better to have 100 functions operate on one
data structure than to have 10 functions operate on 10 data structures." Alan J. Perli Many functions defined on few primary data structures
“polymorphism is a good thing” protocols for class polymorphism, multimethods
for custom hierarchies
2 LISP
None
•(Almost) no syntax •code is data, let’s do macros! •not
constrained by backwards compatibility
3 on the jvm
•embraces the jvm as a platform •fast! almost as fast
as java •tons of high quality libraries •mature echosystem
4 concurrency
moore’s law is over
threads & locks are a mess
the actor model was designed to address the problems of
distributed programs
•immutable data can be shared freely •atoms •transactional references (stm)
•async agents •csp with core.async
clojurescript 5
javascript is everywhere
javascript is not very robust
clojurescript to the rescue
•interoperates with javascript •brings much of clojure goodness to the
js world (incl. core.async!) •uses google closure optimizations
6 tools
•nrepl •leiningen •editors (emacs, vim, light table, eclipse, intellij, netbeans)
•testing (clojure.test, speclj, midje, test.check)
7 echosystem
•core.typed optional type system •core.logic for logic programming •om (clojurescript
+ facebook react) •overtone (clojure + supercollider)
•rapidly evolving web stack based on ring •immutant (jboss as7
+ ring) •datomic •http-kit
8 community
•vivid •inclusive •tons of tutorials and documentation
thanks!