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
Brewing CIDER: It Starts with an Orchard
Search
Bozhidar Batsov
December 04, 2018
Programming
3
200
Brewing CIDER: It Starts with an Orchard
Slide-deck from my presentation at ClojureX 2018 in London.
Bozhidar Batsov
December 04, 2018
Tweet
Share
More Decks by Bozhidar Batsov
See All by Bozhidar Batsov
Clojure: The Bad Parts
bbatsov
0
55
Weird Ruby (RubyDay 2024, Verona)
bbatsov
0
150
Sustainable OSS (Balkan Ruby 2024, Sofia)
bbatsov
0
150
Ruby's Creed (RubyDay 2023, Verona)
bbatsov
0
23
Victims of Complexity
bbatsov
0
310
Ruby 3.0 Redux (Spark Academy, Jan 2021)
bbatsov
1
260
Ruby 3.0 Redux (Pivorak 4.0)
bbatsov
0
460
The Elements of Programming Style (HackConf 2019)
bbatsov
0
180
The Groundhog Day Development Method (HackConf 2019)
bbatsov
0
280
Other Decks in Programming
See All in Programming
アセットのコンパイルについて
ojun9
0
130
個人開発で徳島大学生60%以上の心を掴んだアプリ、そして手放した話
akidon0000
1
140
Cache Me If You Can
ryunen344
2
3k
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
はじめてのMaterial3 Expressive
ym223
2
890
機能追加とリーダー業務の類似性
rinchoku
2
1.3k
為你自己學 Python - 冷知識篇
eddie
1
350
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
510
Amazon RDS 向けに提供されている MCP Server と仕組みを調べてみた/jawsug-okayama-2025-aurora-mcp
takahashiikki
1
110
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
710
楽して成果を出すためのセルフリソース管理
clipnote
0
190
OSS開発者という働き方
andpad
5
1.7k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
28
4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
RailsConf 2023
tenderlove
30
1.2k
GitHub's CSS Performance
jonrohan
1032
460k
How GitHub (no longer) Works
holman
315
140k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Visualization
eitanlees
148
16k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Scaling GitHub
holman
463
140k
For a Future-Friendly Web
brad_frost
180
9.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Transcript
M-x
M-x greet-audience
Clojure 1.10-RC3
async-require -> serialized-require
None
4
None
None
None
Clojure X 2015
None
Божидар
Bug cool
None
None
We’re not hiring!
None
None
@bbatsov
The CIDER Guy
None
Clojure Interactive Development Environment that Rocks
… for Emacs
None
None
metaredux.com
emacsredux.com
The nREPL Guy
A Good Year for CIDER
None
ClojureX Clojurists Together
CIDER 0.17 (Andalucia)
• Display images in the REPL • Support for shadow-cljs
• Support for the clojure-cli tools (clj/deps.edn) • Support for test selectors (run a subset of tests) • A brand new profiler (M-x cider-profile-toggle) • cider-eval-last-sexp-in-context
CIDER 0.18 (Saigon)
New connection management system
https://github.com/vspinu/sesman
Session Manager
Massive overhaul of CIDER’s internals
Hasta la vista, cider-interaction.el!
Massive overhaul of keybindings
C-c M-j -> C-c C-x j j
None
C-c C-x j j C-c C-x j s C-c C-x
j m C-c C-x c j C-c C-x c s C-c C-x c m C-c C-x s j C-c C-x s s
Decoupled CIDER releases from cider-nrepl releases
CIDER 0.19
None
An Amazing Year for nREPL
Start of migration out of Clojure Contrib
nREPL 0.4
•New artefact id (org.clojure/tools.nrepl -> nrepl/nrepl) •New namespace (clojure.tools.nrepl.* ->
nrepl.*) •Support for hot-loading dependencies •Support for clj •Many bug-fixes
https://metaredux.com/posts/2018/10/29/nrepl-redux.html
nREPL 0.5
https://nrepl.xyz
None
•Native support for pretty-printing results •Global and local configuration files
•Improved built-in REPL experience •Many bug-fixes
slide intentionally left blank
25% 5% 70% Yes Maybe I already have Notepad No
Do you want great Clojure development tools?
69% 25% 5% 1% Yes Maybe I already have Notepad
No Are you willing to work on Clojure development tools?
None
None
None
Brewing cider: It starts with an ORCHARD
CIDER’s Architecture
None
None
None
None
Heart of the Orchard
nREPL
None
Created especially for REPL- powered tooling
Extremely flexible
Transports •bencode (default) •tty (built-in) •http(s) (via Drawbridge) •transit (via
Fastlane) •EDN (coming soon)
Piggieback
cider-nrepl
Middleware for interactive programming environments
Thin wrapper around (many) nREPL-agnostic libraries
compliment
orchard
cljs-tooling
•cider-nrepl -> orchard-nrepl •cljs-tooling -> orchard-cljs
Naming is hard!
Mr. Anderson
There’s a lot going on here!
And we haven’t mentioned a single Emacs library…
None
•nREPL •cider-nrepl •piggieback •compliment •orchard •cljs-tooling •Mr. Anderson
Periphery of the Orchard
cljfmt
tools.reader
profile
java.classpath
tools.namespace
tools.trace
sayid
clj-refactor
refactor-nrepl
squiggly-clojure
None
None
None
• cljfmt • profile • java.classpath • tools.namespace • tools.trace
• tools.reader • sayid • clj-refactor/refactor-nrepl • squiggly-clojure
The Big Picture
CCW (Eclipse)
Proto REPL (Atom)
Calva (VS Code)
vim-fireplace
vim-iced
Cursive (IntelliJ)
Clojure’s Orchard
Future of the Orchard
None
None
Hegemony
Hegemony > Monopoly
Sustainable
Community Driven
Funded?
$4000
Consolidation
tools.trace -> sayid
None
Replace Contrib Projects
(or kill Clojure Contrib)
Open Source is not about You
CIDER is all about YOU!!!
Help CIDER…
…to help yourselves
Felina
Resources • https://metaredux.com/posts/2018/10/29/nrepl-redux.html • https://metaredux.com/posts/2018/11/09/ciders-orchard- the-heart.html • https://metaredux.com/posts/2018/11/11/ciders-orchard- the-periphery.html •
https://www.youtube.com/watch?v=4X-1fJm25Ww
Credits twitter: @bbatsov github: @bbatsov https://metaredux.com https://emacsredux.com ClojureX 2018 London,
United Kingdom 03.12.2018