Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CIDER: Inside the Brewery (f(by) 2016)

CIDER: Inside the Brewery (f(by) 2016)

Slide-deck from talk at the f(by) conference in Minsk.

Bozhidar Batsov

December 14, 2016
Tweet

More Decks by Bozhidar Batsov

Other Decks in Programming

Transcript

  1. M-x

  2. –Nancy Pearcey “Competition is always a good thing. It forces

    us to do our best. A monopoly renders people complacent and satisfied with mediocrity.”
  3. I used to wonder a lot how to get an

    adrenaline rush - now I simply upgrade CIDER! — Alex Killer
  4. Half the things in Emacs and CIDER seem magic to

    me. Every time I use them I feel like a wizard! — Anna Parenlicka
  5. SLIME Features • REPL • Interactive evaluation • Compilation notes

    • Code completion • Definition lookup • Documentation lookup • Apropos
  6. SLIME Features • Debugger • Value inspector • Tracing •

    Find usages • Macroexpansion • Scratchpad • Minibuffer code evaluation
  7. 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)
  8. •Load (compile) a Clojure source file •Evaluate a Clojure form

    •Interrupt evaluation •Read from the standard input
  9. nrepl.el • lacked many SLIME features • relied heavily on

    evaluation of inlined code • made assumptions about the environment • flawed bencode parser
  10. –Phil Karlton “There are only two hard things in Computer

    Science: cache invalidation and naming things.”
  11. CIDER Features • Interactive evaluation • Compilation notes • Code

    completion • Definition lookup • Documentation lookup • Apropos
  12. CIDER Features • Value inspector • Command selector • Tracing

    • Macroexpansion • Debugger • Scratchpad • Minibuffer code evalution
  13. CIDER Features • Javadoc support • Jump to Java definition

    • Jump to resource • Sanity-preserving stacktraces • clojure.test integration • namespace browser
  14. CIDER Features • classpath browser • grimoire integration • dynamic

    indentation • dynamic font-locking • nREPL session manager • Smart namespace reloading • ClojureScript support