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
Weird Ruby (RubyDay 2024, Verona)
bbatsov
0
93
Sustainable OSS (Balkan Ruby 2024, Sofia)
bbatsov
0
110
Ruby's Creed (RubyDay 2023, Verona)
bbatsov
0
7
Victims of Complexity
bbatsov
0
300
Ruby 3.0 Redux (Spark Academy, Jan 2021)
bbatsov
1
240
Ruby 3.0 Redux (Pivorak 4.0)
bbatsov
0
420
The Elements of Programming Style (HackConf 2019)
bbatsov
0
160
The Groundhog Day Development Method (HackConf 2019)
bbatsov
0
250
CIDER Distilled: A Common Foundation for Clojure Tooling
bbatsov
0
240
Other Decks in Programming
See All in Programming
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
色々なIaCツールを実際に触って比較してみる
iriikeita
0
330
PHP でアセンブリ言語のように書く技術
memory1994
PRO
1
170
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
Remix on Hono on Cloudflare Workers
yusukebe
1
300
subpath importsで始めるモック生活
10tera
0
320
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
1k
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
950
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
120
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
3
1.2k
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
250
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
GitHub's CSS Performance
jonrohan
1030
460k
Gamification - CAS2011
davidbonilla
80
5k
Navigating Team Friction
lara
183
14k
Visualization
eitanlees
145
15k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
How to Ace a Technical Interview
jacobian
276
23k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Bash Introduction
62gerente
608
210k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Producing Creativity
orderedlist
PRO
341
39k
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