5 ms·
I use Clojure at work but wow do I miss just about everything about Common Lisp whenever I have to debug anything or want performant code. Being able to be in n
by koito17 3y ago
I use Clojure at work but wow do I miss just about everything about Common Lisp whenever I have to debug anything or want performant code. Being able to be in nested errors and click at any part of the stack to inspect lexical bindings is extremely useful, and more importantly, clicking on an object then pushing M-<RET> to copy it to my REPL is much nicer than what Clojure offers (tap>, which I consider a glorified pretty printer even if you use tools like Portal).
As for performance, well, Common Lisp lets you statically type things, and SBCL can emit really efficient code if you do this. I find it helpful to run DISASSEMBLE on my own code to see what exactly is being emitted and optimize from there. And more importantly, packages like SB-SIMD and Loopus are a god send for any number crunching application.
- Capricorn2481 3y agoYou should look at flowstorm for Clojure. It lets you step through and back from a function and you can send maps to the repl with their functions.
- maxwelljoslyn 3y agoThis nicely summarizes some of my frustrations with using Clojure for my master's thesis. I'm not unhappy with the choice. Clojure allows such a juicy crossover between "everything is a key-value map, mannn" and "If it has :quack key set to true, treat it like a duck" which works really well for entity-component-system game-design-y things. but the development story in Common Lisp ... and my gawd, the CONDITION SYSTEM ... were things that I sorely missed for the last year. and I'm not even that experienced of a CL hacker. It just grew on me so quickly. If only CLOS and the primitive data types in CL played together more nicely than they seem to.
- rmckayfleming 3y agoI know. I've been spending a lot of time with CL, Scheme, and Clojure the past few years, and the ideal Lisp is some combination of them all. There are aspects of each that I miss in the others. CL has the nicest environment and development story (generally speaking). Scheme feels more refined in the small. And although they can be divisive, I really appreciate Clojure's data structure literals.
- rmckayfleming 3y agoCL is the x86 of the Lisps. Successful because of backwards compatibility, but also ugly because of it.
- deleted 3y ago[deleted]
- deleted 3y ago[deleted]
- jabradoodle 3y agoI don't think either language offers a way to send a form to the repl, that is a function of the tooling. This is certainly easy to do with Cider and I imagine the main tooling in other editors is equally competent.
- pjmlp 3y agoYou can kind of do the same as DISASSEMBLE in Clojure. There are some helper projects like https://github.com/Bronsa/tools.decompiler https://github.com/Bronsa/tools.decompiler, and on the OpenJDK JitWatch (https://github.com/AdoptOpenJDK/jitwatch https://github.com/AdoptOpenJDK/jitwatch), other JVMs have similar tools as well. It isn't as straightforward as in Lisp, but it is nonetheless doable.