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

Celebrate ClojureX with CIDER!

Celebrate ClojureX with CIDER!

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

Bozhidar Batsov

December 05, 2017
Tweet

More Decks by Bozhidar Batsov

Other Decks in Programming

Transcript

  1. Божидар

    View full-size slide

  2. Sofia, Bulgaria

    View full-size slide

  3. Then (2015++)

    View full-size slide

  4. The CIDER Guy

    View full-size slide

  5. Chief Brewing Officer
    @
    CIDER’s Brewery

    View full-size slide

  6. Celebrate clojurex
    with Cider

    View full-size slide

  7. Clojure
    Interactive
    Development
    Environment that
    Rocks

    View full-size slide

  8. … for Emacs

    View full-size slide

  9. Sales Update

    View full-size slide

  10. Customer Satisfaction

    View full-size slide

  11. Customer Testimonials

    View full-size slide

  12. CIDER is like a box of chocolates.
    You never know what’s the error
    you’re going to get next.
    — Forest Grump

    View full-size slide

  13. People say the best debugger is a
    good night’s sleep. Well, it’s clear
    they haven’t used CIDER’s debugger.
    — Diana Prints

    View full-size slide

  14. The amount of articles you have to read to
    get CIDER working with ClojureScript is
    comparable to the size of “War and Peace”!
    — Luke Parenwalker

    View full-size slide

  15. Ever since I switched to Emacs and CIDER
    for Clojure development the local grocery
    store doubled the volume of alcohol they
    were selling monthly.
    — Mick Swagger

    View full-size slide

  16. CIDER can supposedly do
    everything, but I can’t figure out
    how to do anything with it.
    — Hairy Porter

    View full-size slide

  17. ClojureX 2016

    View full-size slide

  18. CIDER 0.15 (london)

    View full-size slide

  19. Spec Browser

    View full-size slide

  20. Stacktrace Improvements
    • Stacktraces in the REPL have clickable code locations
    • Project root namespace is highlighted in REPL stacktraces
    • You can filter a stacktrace to just the frames that are related to
    your project

    View full-size slide

  21. Documentation improvements
    • Format nicely code blocks in Grimoire buffers
    • Support special forms in cider-apropos and cider-grimoire-
    lookup
    • Use view-mode for Grimoire buffers

    View full-size slide

  22. Misc
    • Reconnect to the same host & port after cider-restart
    • Enhanced ElDoc for Datamic queries (disabled by default)
    • Reader conditionals font-locking

    View full-size slide

  23. Misc
    • Make it possible to load all files in a project (cider-load-all-
    files)
    • Easier browsing of the REPL history (cider-repl-history)
    • Improved integration with compliment and fuzzy completion
    support for company-mode
    • Many new configuration options
    • Make the debugger more robust (no more “Method code too
    large!” errors)

    View full-size slide

  24. CIDER 0.16 (Riga)

    View full-size slide

  25. Deferred middleware loading

    View full-size slide

  26. Zero startup overhead from using
    cider-nrepl

    View full-size slide

  27. In other news…

    View full-size slide

  28. clj-refactor

    View full-size slide

  29. clojure-mode

    View full-size slide

  30. inf-clojure 2.0
    • Planck support
    • Lumo support
    • Socket REPL support (via inf-clojure-connect)
    • Font-locking in the REPL

    View full-size slide

  31. inf-clojure is too heavy and
    complex!

    View full-size slide

  32. nREPL is now FREE
    from the clojure-contrib!

    View full-size slide

  33. nREPL 0.3.0 will be a drop-in
    replacement for nREPL 0.2.13

    View full-size slide

  34. Contributing to nREPL is
    extremely easy now!

    View full-size slide

  35. Bug’s nREPL 1.0 wishlist

    View full-size slide

  36. Make Clojure 1.7 the
    minimum supported version

    View full-size slide

  37. Support ClojureScript
    natively

    View full-size slide

  38. Ability to inject middleware
    into a running nREPL server

    View full-size slide

  39. Refine and polish existing
    middleware

    View full-size slide

  40. Misc bugfixes and
    improvements

    View full-size slide

  41. And the best part - it’s all just
    Clojure! ;-)

    View full-size slide

  42. https://github.com/cemerick/
    nREPL

    View full-size slide

  43. The Future of CIDER

    View full-size slide

  44. Codename “Andalucía”

    View full-size slide

  45. Rework connection
    management
    https://github.com/clojure-emacs/cider/pull/2069

    View full-size slide

  46. Figure out what’s wrong with the
    TravisCI build with Emacs 26

    View full-size slide

  47. Leverage a real EDN parser in
    Emacs (e.g. parseclj)

    View full-size slide

  48. Frequently Asked Questions

    View full-size slide

  49. Q: Is There any roadmap for
    the future of CIDER?

    View full-size slide

  50. A: No, not really.

    View full-size slide

  51. Improved experience for
    newcomers

    View full-size slide

  52. More polished UI/UX

    View full-size slide

  53. Built-in refactoring

    View full-size slide

  54. Feature Parity between
    ClojureScript and Clojure

    View full-size slide

  55. Support for the Clojure 1.8
    socket REPL

    View full-size slide

  56. Decouple CIDER from nREPL
    • Introduce some backend independent connection API in CIDER
    • Extract the nREPL client code to a separate library
    • Split cider-nrepl into a REPL-agnostic library and nREPL
    middleware leveraging it

    View full-size slide

  57. Roadmap = Plan + Time

    View full-size slide

  58. Roadmap = Plan + Time

    View full-size slide

  59. Q: Are there any plans to
    support unrepl?

    View full-size slide

  60. A: Only extremely vague ones.

    View full-size slide

  61. Q: Is conference-driven
    development still a thing?

    View full-size slide

  62. Conference-driven development

    View full-size slide

  63. Clojure/conj EuroClojure ClojureX
    ClojureRemote

    View full-size slide

  64. Clojure/west

    View full-size slide

  65. Bug’s break-up Rock-bottom

    View full-size slide

  66. A: Unfortunately not.

    View full-size slide

  67. Q: Are you still drinking
    excessive amounts of alcohol?

    View full-size slide

  68. Q: What holds CIDER back?

    View full-size slide

  69. Me
    • Crazy work-load
    • A ton of open-source project I’m involved with
    • A home remodeling gone wrong
    • I’m not doing much Clojure these days

    View full-size slide

  70. A lot of moving parts

    View full-size slide

  71. Few contributors

    View full-size slide

  72. Lack of focus
    (competing efforts)

    View full-size slide

  73. Q: Have you considered doing a
    fundraising campaign for
    CIDER?

    View full-size slide

  74. A: Yeah, I have.

    View full-size slide

  75. Q: How can we help?

    View full-size slide

  76. A: Contribute!

    View full-size slide

  77. Credits
    twitter: @bbatsov
    github: @bbatsov
    http//batsov.com
    http://emacsredux.com
    ClojureX 2017
    London,
    United Kingdom
    05.12.2017

    View full-size slide