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
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
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
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
200
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
2
590
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
270
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
230
App Intentsのビルドプロセスを支える技術
kntkymt
0
360
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
460
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.4k
cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう
akihisaikeda
2
130
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.2k
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
110
LLMは4年分のCompose移行を再現できるのか?実プロダクト279件のXMLで探る自動化の境界線
makun
0
850
Jetpack Compose メカニズム
skydoves
0
390
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
10k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
230
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
230
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
900
RailsConf 2023
tenderlove
30
1.5k
Un-Boring Meetings
codingconduct
0
420
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
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