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 Clojure a try
Search
Giuseppe Capizzi
April 09, 2014
Programming
4
160
Don't fear the paren! 8 reasons you should give Clojure a try
Giuseppe Capizzi
April 09, 2014
Tweet
Share
More Decks by Giuseppe Capizzi
See All by Giuseppe Capizzi
A (not so) gentle introduction to functional programming
gcapizzi
1
140
PHP: The good, the bad and the ugly
gcapizzi
3
300
Other Decks in Programming
See All in Programming
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
360
Fast JSX: Don't clone props object #28768
yossydev
1
120
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
260
見た目から始める生産性向上
ikumatadokoro
7
850
What We Can Learn From OSS
inouehi
0
420
Behind VS Code Extensions for JavaScript / TypeScript Linnting and Formatting
unvalley
5
920
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
340
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
180
Ruby GitHub Packages
bkuhlmann
0
630
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
7
940
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
710
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
370
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
32
12k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
Code Reviewing Like a Champion
maltzj
514
39k
Fantastic passwords and where to find them - at NoRuKo
philnash
37
2.5k
The Mythical Team-Month
searls
216
42k
Bash Introduction
62gerente
604
210k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
We Have a Design System, Now What?
morganepeng
43
6.8k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
241
1.2M
Art, The Web, and Tiny UX
lynnandtonic
289
19k
Designing for Performance
lara
601
67k
Gamification - CAS2011
davidbonilla
76
4.6k
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!