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
CIDER: Inside the Brewery (f(by) 2016)
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Bozhidar Batsov
December 14, 2016
Programming
240
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CIDER: Inside the Brewery (f(by) 2016)
Slide-deck from talk at the f(by) conference in Minsk.
Bozhidar Batsov
December 14, 2016
More Decks by Bozhidar Batsov
See All by Bozhidar Batsov
RuboCop 2.0: Where do we go now?
bbatsov
0
87
Clojure: The Bad Parts
bbatsov
0
130
Weird Ruby (RubyDay 2024, Verona)
bbatsov
0
200
Sustainable OSS (Balkan Ruby 2024, Sofia)
bbatsov
0
210
Ruby's Creed (RubyDay 2023, Verona)
bbatsov
0
83
Victims of Complexity
bbatsov
0
350
Ruby 3.0 Redux (Spark Academy, Jan 2021)
bbatsov
1
300
Ruby 3.0 Redux (Pivorak 4.0)
bbatsov
0
520
The Elements of Programming Style (HackConf 2019)
bbatsov
0
230
Other Decks in Programming
See All in Programming
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
880
Simple Storage Service(S3) is not simple
iwatsukayura
0
290
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
コーディング自動化の次へ。人の介入をゼロにするファクトリーとサポートAIによる実践
timakin
4
3.5k
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Rails World 2026, Austin, Texas
marcoroth
0
220
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
160
ジョジョの世界をXRで再現する
mofurune
0
160
パスワード再設定メールのURLについて知っておこう
uyuki234
0
160
phperだってパンチカードでコーディングしたい
o0h
PRO
0
330
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
140
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.6k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
WENDY [Excerpt]
tessaabrams
14
40k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
300
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Statistics for Hackers
jakevdp
799
230k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Paper Plane
katiecoart
PRO
5
54k
Transcript
M-x
None
slide intentionally left blank
Вітаю!
Bozhidar
Божидар
Божо cool
Bug cool
Sofia, Bulgaria
None
None
None
None
None
None
None
None
None
None
A (Dark) Knight of the Order of Emacs
@bbatsov
None
None
None
None
None
None
None
Why I am here?
I am a storyteller!
CIDER: Inside The Brewery
None
A story about a different kind of cider…
Clojure Interactive Development Environment that Rocks
… for Emacs
Is Emacs the One True Editor that will bring balance
to the Source?
Absolutely!
Primary Clojure dev environment (2015) Other 10% LT 5% fireplace
12% Cursive 27% CIDER 46%
–Nancy Pearcey “Competition is always a good thing. It forces
us to do our best. A monopoly renders people complacent and satisfied with mediocrity.”
Near future (optimistic) Other 10% CIDER 90%
Near future (worst case) Cursive 34% Other 15% CIDER 51%
Customer Testimonials
“Using CIDER is exciting. You never know if cider-jack-in will
work or not!” — Mich Hickey
I used to wonder a lot how to get an
adrenaline rush - now I simply upgrade CIDER! — Alex Killer
CIDER’s learning curve is amazing! I’m still amazed it never
ends! — Zach Hellman
Half the things in Emacs and CIDER seem magic to
me. Every time I use them I feel like a wizard! — Anna Parenlicka
A not so long time ago in a galaxy not
far away…
Java, C# and PHP ruled the dev world
The Lisp Masters from the Republic of Great Programmers were
on the run
Lisps were out of fashion
None
2007
A gentleman & a scholar
Clojure
Biggest Clojure problem at launch?
((((((((((()))))))))))
0 Clojure development environments
Emacs was the last Lisp stronghold
Emacs is the greatest Emacs Lisp dev environment
SLIME
Superior Lisp Interaction Mode for Emacs
SLIME Features • REPL • Interactive evaluation • Compilation notes
• Code completion • Definition lookup • Documentation lookup • Apropos
SLIME Features • Debugger • Value inspector • Tracing •
Find usages • Macroexpansion • Scratchpad • Minibuffer code evaluation
SLIME is an IDE
Interactive Development Environment
Programs are built in a very incremental manner
SLIME (Emacs Lisp) SWANK (Common Lisp) Clozure RPC LispWorks CMUCL
ABCL SBCL Client Server Backends
2008
clojure-mode & swank-clojure
SLIME (Emacs Lisp) SWANK (Common Lisp) swank-clojure
A star was born
In 2010 around 70% of the Clojurians were developing in
Emacs!!!
swank-clojure • Requires knowledge of swank (Common Lisp) • Bundles
a frozen SLIME version • Subpar features (e.g. debugger, inspector, find usages) • Monolithic (no swank plugins)
SLIME is a Common Lisp tool
2010
Another esteemed gentleman & scholar
nREPL
A common foundation for Clojure development tools
•Load (compile) a Clojure source file •Evaluate a Clojure form
•Interrupt evaluation •Read from the standard input
Extensible via middleware
2012
nrepl.el
nrepl.el (Emacs Lisp) nREPL (Clojure)
A workhorse is retired
nrepl.el • lacked many SLIME features • relied heavily on
evaluation of inlined code • made assumptions about the environment • flawed bencode parser
2013
Don’t settle for good. Demand great!
–Phil Karlton “There are only two hard things in Computer
Science: cache invalidation and naming things.”
None
Clojure Integrated Development Environment & REPL
Clojure Interactive Development Environment Reimagined
Clojure Interactive Development Environment that Rocks
None
CIDER Features • Interactive evaluation • Compilation notes • Code
completion • Definition lookup • Documentation lookup • Apropos
CIDER Features • Value inspector • Command selector • Tracing
• Macroexpansion • Debugger • Scratchpad • Minibuffer code evalution
CIDER Features • Javadoc support • Jump to Java definition
• Jump to resource • Sanity-preserving stacktraces • clojure.test integration • namespace browser
CIDER Features • classpath browser • grimoire integration • dynamic
indentation • dynamic font-locking • nREPL session manager • Smart namespace reloading • ClojureScript support
Extensions (are easy)
Refactoring support (clj-refactor + refactor-nrepl)
Demo Time
CIDER tastes better than SLIME
CIDER tastes better than some IDES
None
Bulgarian Liberation Day 2016
CIDER 0.11 (Bulgaria)
Require Clojure 1.7+
Require Java 7+
Run all loaded/project tests
Enlighten
None
None
Auto-injection of CIDER’s dependencies
None
Clojure/west 2016
CIDER 0.12 (Seattle)
Conditional breakpoints
Step-in while debugging
Test result improvements
Zenburn & Solarized support
cider-auto-test-mode
Eldoc improvements
Display docstring on mouse hover
None
Totally reorganized menus
None
None
None
One more thing…
A Real Manual
A Real Manual
None
http://cider.readthedocs.org/
CIDER 0.13 (California)
Eldoc improvements
None
None
Unified evaluation commands keymap
C-c C-v something
cider-eval-sexp-at-point
C-c C-v (C-)v
Tracking of evaluated expressions
None
None
“See also” section in doc buffers
None
A cornucopia of small additions and improvements
CIDER 0.14 (Berlin)
Display spec in doc buffers
None
Re-run last test
C-c C-t (C-)g
The usual mix of bug fixes, small additions and improvements
What’s still missing?
•Find usages •Built-in refactoring tooling •Better ClojureScript support •Support for
the new Clojure socket REPL CIDER 1.0
Why CIDER?
Integrated Development Environment (a.k.a. IDE)
None
Emacs
None
None
None
None
None
Spacemacs
Emacs users know how to build productive Lisp workflows
•Emacs (ultimate Elisp dev env) •SLIME (and SLY) •Geiser •racket-mode
•CIDER (obviously)
• paredit • smartparens • rainbow-delimiters • rainbow-identifiers • sexp-fu
• paxedit • lispy
Community impact
cider-nrepl https://github.com/clojure-emacs/cider-nrepl
refactor-nrepl https://github.com/clojure-emacs/refactor-nrepl
compliment https://github.com/alexander-yakushev/compliment
cljs-tooling https://github.com/gtrak/cljs-tooling
nREPL improvements
Open development
None
None
158 contributors!
Please, send more help!
Дзякуй!
Felina