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
"Simple Made Easy" Made Easy
Search
Kent OHASHI
July 29, 2019
Programming
0
180
"Simple Made Easy" Made Easy
Rich Hickeyの有名なプレゼン"Simple Made Easy"を簡単に解説(*> ᴗ •*)ゞ
Clojureの基本的な設計思想を理解しよう!
Kent OHASHI
July 29, 2019
Tweet
Share
More Decks by Kent OHASHI
See All by Kent OHASHI
From Scala/Clojure to Kotlin
lagenorhynque
0
5
TDD with RDD: Changed Developer Experience through Clojure/Lisp REPLs
lagenorhynque
0
24
My Favourite Book in 2024: Get Rid of Your Japanese Accent
lagenorhynque
0
45
do Notation Equivalents in JVM languages: Scala, Kotlin, Clojure
lagenorhynque
0
29
Exploring Collections in JVM Languages through Internals of map Function
lagenorhynque
0
31
Kotlin Meets Data-Oriented Programming
lagenorhynque
0
33
Introduction to Tree Representations in RDB 2024
lagenorhynque
0
56
Boundary between Mutability and Immutability
lagenorhynque
0
64
Learning Modern Web API Styles from IDL: REST, GraphQL, gRPC
lagenorhynque
0
99
Other Decks in Programming
See All in Programming
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
290
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
970
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
260
Rubyと自由とAIと
yotii23
6
1.5k
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
130
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
160
楽しく向き合う例外対応
okutsu
0
580
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
190
Rubyで始める関数型ドメインモデリング
shogo_tksk
0
140
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
120
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
40
16k
Boos Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
210
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Gamification - CAS2011
davidbonilla
80
5.2k
Thoughts on Productivity
jonyablonski
69
4.5k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Scaling GitHub
holman
459
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
250
Faster Mobile Websites
deanohume
306
31k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
The Cult of Friendly URLs
andyhume
78
6.2k
Transcript
"Simple Made Easy" Made Easy "Simple Made Easy" Made Easy
Clojure Clojure
lagénorhynque lagénorhynque (defprofile lagénorhynque :id @lagenorhynque :reading "/laʒenɔʁɛ̃ k/" :aliases
[" "] :languages [Clojure Haskell English français] :interests [programming language-learning law mathematics] :commits ["github.com/lagenorhynque/duct.module.pedestal"] :contributes ["github.com/japan-clojurians/clojure-site-ja"])
Clojure Clojure (*> ᴗ •*) (*> ᴗ •*) clojure tips
? 7 7
1. "simple" "easy" 2. Simple Made Easy 3. "simple" "easy"
4. "simple" "easy" 5. "simple" 6. "simple" 7. Clojure "simple"
"simple" "easy" "simple" "easy"
Clojure "simple" Clojure "simple" "easy" Clojure "simple"
Simple Made Easy Simple Made Easy
( ( ) ) Clojure "simple" ( Clojurian ) cf.
( ) Simple Made Easy Simple Made Easy Strange Loop 2011 Strange Loop 2011 Rich Hickey Simplicity Matters Rails Conf 2012 | eed3si9n
"Simple Made Easy" "Simple Made Easy" simple "simple" "easy" "simple"
"easy" ? Word Power Made Easy
"simple" "easy" "simple" "easy"
"simple" "simple" < simplex (= sim + plex) simplex :
/ : (= com + plex) : simple complex
"easy" "easy" (= + y) < aise/eise < adjacens adjacens
(cf. adjacent) : ( ) ( ) ( ) / : : easy easy ease hard
"simple" "easy" "simple" "easy"
"simple" "easy" "simple" "easy" simple/complex, easy/hard 2 easy simple !
complex simple Rich Hickey simple or complex simple or easy
"easy but complex" vs "simple but hard" "easy but complex"
vs "simple but hard" easy complex (= not simple) easy complex complex simple hard (= not easy) hard simple simple
"simple" "simple"
(complexity)
"simple" "simple" "simple" /
"simple" "simple"
"simple" "complex" ( ) "simple" (abstract) (draw away) who, what,
when, where, why, how "simple" (simplify) complect abstract
Clojure "simple" Clojure "simple"
;; Common Lisp: "complect" (defun fizzbuzz (n) (let ((fizzp (zerop
(mod n 3))) (buzzp (zerop (mod n 5)))) (cond ((and fizzp buzzp) "Fizz Buzz") (buzzp "Buzz") (fizzp "Fizz") (t n)))) ;; Clojure: "simple" (defn fizzbuzz [n] (let [fizz? (zero? (mod n 3)) buzz? (zero? (mod n 5))] (cond (and fizz? buzz?) "Fizz Buzz" buzz? "Buzz" fizz? "Fizz" :else n)))
"complect" ( ) "simple"
"complect" atom, ref, agent "simple"
"complect" who ( ) what ( ) "complect" "simple"
what ( ) who ( ) "complect" "simple" e.g. core.async
"simple" "simple" Simple Made Easy / ! Clojure !
Further Reading Further Reading Simple Made Easy matthiasn/talk-transcripts > Hickey_Rich/SimpleMadeEasy.md
Clojure Simple Made Easy - Simplicity Matters | eed3si9n Clojure Design Decisions Clojure - Clojure core.async Channels