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
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
150
How Will Cryptography Survive the Rise of Quantum Computing?
rakhim
0
70
ClojureScript and React without JavaScript
rakhim
3
520
Other Decks in Programming
See All in Programming
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
220
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
200
例外の正しい扱い方 そのエラー try-catchして大丈夫?
jinwatanabe
0
300
1B+ /day規模のログを管理する技術
broadleaf
0
120
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
280
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
260
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
610
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
210
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.8k
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.3k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
210
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Design in an AI World
tapps
1
250
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
A Tale of Four Properties
chriscoyier
163
24k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
370
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
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