Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
What could a Clojure/LISP editor be like?
Search
Rakhim
January 14, 2019
Programming
210
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
What could a Clojure/LISP editor be like?
Rakhim
January 14, 2019
More Decks by Rakhim
See All by Rakhim
Genetic programming is waiting for better tools
rakhim
2
160
How Will Cryptography Survive the Rise of Quantum Computing?
rakhim
0
75
ClojureScript and React without JavaScript
rakhim
3
530
Other Decks in Programming
See All in Programming
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
180
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
640
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
170
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
110
Webの地図
yosuke_furukawa
PRO
3
3.1k
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
170
ソフトウェアラスタライザ
fadis
1
800
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
480
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
4
3.5k
Foundry Localでエージェント開発
seosoft
0
150
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.4k
Design in an AI World
tapps
1
310
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
Building the Perfect Custom Keyboard
takai
2
870
Bash Introduction
62gerente
615
220k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
KATA
mclloyd
PRO
35
15k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Paper Plane
katiecoart
PRO
2
53k
Transcript
What could a Clojure editor be like?
Char editor (Notepad, DOS E)
Char editor (Notepad, DOS E) Text editor (vi, emacs, ed)
Char editor (Notepad, DOS E) Text editor (vi, emacs, ed)
Code editor (emacs, acme, vs code, sublime)
Char editor (Notepad, DOS E) Text editor (vi, emacs, ed)
Code editor (emacs, acme, vs code, sublime) Code editor + dev. env. (IDE) (emacs, vs code, atom, IDEA, Eclipse, Xcode, etc)
Char editor (Notepad, DOS E) Text editor (vi, emacs, ed)
Code editor (emacs, acme, vs code, sublime) Code editor + dev. env. (IDE) (emacs, vs code, atom, IDEA, Eclipse, Xcode, etc) Visual programming (Node-RED, Scratch, Modkit, Blocky)
Scratch
Google's Blocky
Node-RED
Luna
Unreal Engine 4 "Blueprints"
Feynman Diagram
• Immediate feedback • Composition • Data flow • Encourages
FP • Reducing accidental complexity Benefits of a visual approach
• Immediate feedback → REPL • Composition → Higher order
functions, natural composability • Data flow → it's just data!™ • Encourages FP → duh! • Reducing accidental complexity → we still have lots In the context of LISP/Clojure
• Function promotion !#(bla %) → (fn [a] (bla a))
→ (defn real-foo [a] (bla a)) • if → cond • wrap in let, promote let • Namespaces, import • Refactoring • Simple: rename, replace function, change order • Complex: change flow, change data structure IDE level complexity Char editor (Notepad, DOS E) Text editor (vi, emacs, ed) Code editor (emacs, acme, vs code, sublime) Code editor + dev. env. (IDE) (emac/cider, IDEA/Cursive, Eclipse, Xcode, etc)
• Not flexible enough • Not expressive enough • Either
too simple or too niche • Mouse! Cons of a visual approach
None
comparator-over-maps comparison-fn ^fn ks ^vec ^fn
comparator-over-maps comparison-fn ^fn ks ^vec ^fn maps ^vec ^hashmap Ø
comparator-over-maps comparison-fn ^fn ks ^vec ^fn maps ^vec ^hashmap zipmap
map Ø
comparator-over-maps comparison-fn ^fn ks ^vec ^fn maps ^vec ^hashmap zipmap
map Ø closure
comparator-over-maps comparison-fn ^fn ks ^vec ^fn maps ^vec ^hashmap zipmap
map Ø Ø k ^fn
comparator-over-maps comparison-fn ^fn ks ^vec ^fn maps ^vec ^hashmap zipmap
map Ø Ø k ^fn map apply
comparator-over-maps comparison-fn ^fn ks ^vec ^fn maps ^vec ^hashmap zipmap
map Ø Ø k ^fn map apply ^?
• "Inventing on principle", Brett Victor • "Inspiring a future
Clojure editor with forgotten Lisp UX", Shaun Lebron • ProtoREPL Check out