3 ms·
It depends. Common Lisp is like C++ in that it’s a big multi-paradigm language. It supports functional, imperative, and object oriented programming out of the b
by User23 4y ago
It depends. Common Lisp is like C++ in that it’s a big multi-paradigm language. It supports functional, imperative, and object oriented programming out of the box. And thanks to macros libraries can add basically any paradigm you like to that list. Logic programming is one example. To me it feels like the lispiest Lisp. There is a large variety of libraries available. Many implementations can produce well optimized native code. Common Lisp is my personal go-to Lisp. If you want to learn Lisp for personal growth I believe it’s the best choice. There are jobs out there too.
Clojure is a good choice if the JVM is an option. You get access to the entire Java ecosystem. It’s been years since I’ve worked in Java land, but my understanding is the JVM is pretty fast now too. I like Clojure and it’s the only Lisp I’ve ever been paid to work in. I already knew Java, so my Common Lisp experience made it extremely easy to pick up. If you want to write Lisp professionally it’s not your only choice, but it could be the best.
Scheme is more focused on functional programming. I’ve only ever used it for studying computing science. I don’t know much about Racket, but at a glance it looks like a kind of Scheme++.
As far as I know, GNU Emacs is the most popular editor for all of the above. It’s largely written in Emacs Lisp, but the core and parts where performance is critical are C. Racket does come with its own editor, DrRacket, so maybe Racket users use that? I don’t know if it’s written in Racket but I’d suppose it is.
Incidentally, it’s my understanding that the Nyxt browser team intends to add full editing support at some point. If so, it will be a kind of web focused Emacs, which sounds interesting.
- gus_massa 4y agoThe original version of DrRacket was written in C, but it has been rewritten in Racket a long time ago. https://github.com/racket/drracket https://github.com/racket/drracket I use a mix of DrRacket, WinEdt and Geany (with more color in the matched parenthesis).