3 ms·
As a user of Common Lisp but not Clojure, where does Clojure dev environment stand with respect to something like SLIME? What unique features do Clojure dev env
by avindroth 4y ago
As a user of Common Lisp but not Clojure, where does Clojure dev environment stand with respect to something like SLIME? What unique features do Clojure dev environments have?
- pjmlp 4y agoA closer experience to the old Common Lisp commercial IDEs, when using cursive. https://cursive-ide.com/ https://cursive-ide.com/
- sokoloff 4y agoI’ve only dabbled with CL/SLIME, but Cider seems to me to be a very close analog (and is similarly very useful).
- jpmonettas 4y agoSimilar to SLIME, there is Cider (https://docs.cider.mx/cider/index.html https://docs.cider.mx/cider/index.html) for Emacs. There are a lot of debugging and data visualization tools for the repl with features I haven't found in Common Lisp like : - https://github.com/jpmonettas/flow-storm-debugger https://github.com/jpmonettas/flow-storm-debugger (which I'm actively working on) - https://github.com/djblue/portal https://github.com/djblue/portal
- vindarel 4y agoThese look like nice tools. In CL land I think we can find some of their functionality in other tools than Slime, such as SLY, a fork of Slime with more features: > - Instrument any Clojure form This would be Stickers: annotate any Lisp form with a sticker, run your code, interactively walk through the recordings. https://joaotavora.github.io/sly/#Stickers https://joaotavora.github.io/sly/#Stickers > - Provide a GUI to explore your values and execution flow SLY has an improved trace dialog: https://joaotavora.github.io/sly/#Trace-Dialog https://joaotavora.github.io/sly/#Trace-Dialog Also LispWorks' visual stepper is easier to use than SLY or Slime's. There is also an in-progress portable visual stepper for CL: https://zenodo.org/record/3742759 https://zenodo.org/record/3742759 > time travel stepper ah. Nice job.
- jpmonettas 4y agoNice, thanks for the links. Yeah I don't know how stickers trace code, but FlowStorm tracing debugger takes advantage of the immutable data structures used everywhere and by default in Clojure. You can then instrument entire code bases, run them, and tracing is just a matter of retaining(leaking) pointers of every intermediate expression so the GC doesn't collect them. I don't think this is possible when working with mutable objects, since then only way would be to somehow serialize the objects involved at every step so you can analyze the data later, which is prohibitively expensive in most situations.
- jb1991 4y agoSLIME was used in the early days of Clojure but is long sinced replaced by Cider (also emacs) or other impressive tooling, i.e. add-ons for IntelliJ (like Cursive). I would say there is nothing that SLIME offers that was not replicated or improved upon in Clojure's tooling.
- taeric 4y agoI'm curious what you would count as improved upon?