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
190
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
44
Weird Ruby (RubyDay 2024, Verona)
bbatsov
0
140
Sustainable OSS (Balkan Ruby 2024, Sofia)
bbatsov
0
140
Ruby's Creed (RubyDay 2023, Verona)
bbatsov
0
17
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
450
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
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
590
ニーリーにおけるプロダクトエンジニア
nealle
0
660
データの民主化を支える、透明性のあるデータ利活用への挑戦 2025-06-25 Database Engineering Meetup#7
y_ken
0
330
Discover Metal 4
rei315
2
100
WindowInsetsだってテストしたい
ryunen344
1
200
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
320
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
540
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
PicoRuby on Rails
makicamel
2
110
プロダクト志向ってなんなんだろうね
righttouch
PRO
0
170
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
1
130
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Embracing the Ebb and Flow
colly
86
4.7k
Done Done
chrislema
184
16k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Navigating Team Friction
lara
187
15k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Side Projects
sachag
455
42k
Building Applications with DynamoDB
mza
95
6.5k
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