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
220
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
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
570
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.5k
AIの中の人になってみる
htkym
0
150
バグを直したら useEffect が消えた
colorful12
3
800
typoなんかねぇよ
raspython3
0
650
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
52
33k
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
730
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
Go 1.27 における memory allocation の高速化
andpad
0
370
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
120
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
190
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Test your architecture with Archunit
thirion
2
2.4k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.9k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
HDC tutorial
michielstock
2
840
Mind Mapping
helmedeiros
PRO
1
340
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.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!