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

Brewing CIDER: It Starts with an Orchard

Brewing CIDER: It Starts with an Orchard

Slide-deck from my presentation at ClojureX 2018 in London.

Bozhidar Batsov

December 04, 2018
Tweet

More Decks by Bozhidar Batsov

Other Decks in Programming

Transcript

  1. M-x greet-audience

    View full-size slide

  2. Clojure 1.10-RC3

    View full-size slide

  3. async-require ->
    serialized-require

    View full-size slide

  4. Clojure X 2015

    View full-size slide

  5. Божидар

    View full-size slide

  6. We’re not hiring!

    View full-size slide

  7. The CIDER Guy

    View full-size slide

  8. Clojure
    Interactive
    Development
    Environment that
    Rocks

    View full-size slide

  9. … for Emacs

    View full-size slide

  10. metaredux.com

    View full-size slide

  11. emacsredux.com

    View full-size slide

  12. The nREPL Guy

    View full-size slide

  13. A Good Year for CIDER

    View full-size slide

  14. ClojureX
    Clojurists Together

    View full-size slide

  15. CIDER 0.17
    (Andalucia)

    View full-size slide

  16. • 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

    View full-size slide

  17. CIDER 0.18
    (Saigon)

    View full-size slide

  18. New connection management
    system

    View full-size slide

  19. https://github.com/vspinu/sesman

    View full-size slide

  20. Session Manager

    View full-size slide

  21. Massive overhaul of CIDER’s
    internals

    View full-size slide

  22. Hasta la vista,
    cider-interaction.el!

    View full-size slide

  23. Massive overhaul of
    keybindings

    View full-size slide

  24. C-c M-j -> C-c C-x j j

    View full-size slide

  25. 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

    View full-size slide

  26. Decoupled CIDER releases from
    cider-nrepl releases

    View full-size slide

  27. An Amazing Year for nREPL

    View full-size slide

  28. Start of migration
    out of Clojure Contrib

    View full-size slide

  29. •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

    View full-size slide

  30. https://metaredux.com/posts/2018/10/29/nrepl-redux.html

    View full-size slide

  31. https://nrepl.xyz

    View full-size slide

  32. •Native support for pretty-printing results
    •Global and local configuration files
    •Improved built-in REPL experience
    •Many bug-fixes

    View full-size slide

  33. slide intentionally
    left blank

    View full-size slide

  34. 25%
    5%
    70%
    Yes Maybe
    I already have Notepad No
    Do you want great Clojure development tools?

    View full-size slide

  35. 69%
    25%
    5%
    1%
    Yes Maybe
    I already have Notepad No
    Are you willing to work on Clojure development tools?

    View full-size slide

  36. Brewing cider:
    It starts with an
    ORCHARD

    View full-size slide

  37. CIDER’s Architecture

    View full-size slide

  38. Heart of the Orchard

    View full-size slide

  39. Created especially for REPL-
    powered tooling

    View full-size slide

  40. Extremely flexible

    View full-size slide

  41. Transports
    •bencode (default)
    •tty (built-in)
    •http(s) (via Drawbridge)
    •transit (via Fastlane)
    •EDN (coming soon)

    View full-size slide

  42. Middleware for interactive
    programming environments

    View full-size slide

  43. Thin wrapper around (many)
    nREPL-agnostic libraries

    View full-size slide

  44. cljs-tooling

    View full-size slide

  45. •cider-nrepl -> orchard-nrepl
    •cljs-tooling -> orchard-cljs

    View full-size slide

  46. Naming is hard!

    View full-size slide

  47. Mr. Anderson

    View full-size slide

  48. There’s a lot going on here!

    View full-size slide

  49. And we haven’t mentioned a
    single Emacs library…

    View full-size slide

  50. •nREPL
    •cider-nrepl
    •piggieback
    •compliment
    •orchard
    •cljs-tooling
    •Mr. Anderson

    View full-size slide

  51. Periphery of the Orchard

    View full-size slide

  52. tools.reader

    View full-size slide

  53. java.classpath

    View full-size slide

  54. tools.namespace

    View full-size slide

  55. clj-refactor

    View full-size slide

  56. refactor-nrepl

    View full-size slide

  57. squiggly-clojure

    View full-size slide

  58. • cljfmt
    • profile
    • java.classpath
    • tools.namespace
    • tools.trace
    • tools.reader
    • sayid
    • clj-refactor/refactor-nrepl
    • squiggly-clojure

    View full-size slide

  59. The Big Picture

    View full-size slide

  60. CCW
    (Eclipse)

    View full-size slide

  61. Proto REPL
    (Atom)

    View full-size slide

  62. Calva
    (VS Code)

    View full-size slide

  63. vim-fireplace

    View full-size slide

  64. Cursive
    (IntelliJ)

    View full-size slide

  65. Clojure’s Orchard

    View full-size slide

  66. Future of the Orchard

    View full-size slide

  67. Hegemony > Monopoly

    View full-size slide

  68. Community Driven

    View full-size slide

  69. Consolidation

    View full-size slide

  70. tools.trace -> sayid

    View full-size slide

  71. Replace Contrib Projects

    View full-size slide

  72. (or kill
    Clojure Contrib)

    View full-size slide

  73. Open Source is not about You

    View full-size slide

  74. CIDER is
    all about YOU!!!

    View full-size slide

  75. Help CIDER…

    View full-size slide

  76. …to help yourselves

    View full-size slide

  77. 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

    View full-size slide

  78. Credits
    twitter: @bbatsov
    github: @bbatsov
    https://metaredux.com
    https://emacsredux.com
    ClojureX 2018
    London,
    United Kingdom
    03.12.2018

    View full-size slide