Every lisp variant is a bit different. Racket, Clojure, and Common Lisp are all excellent. Read a bit about the compromises and dip your toes in one and see if it sticks.
Racket has more didactic origins but I’m given to understand its a good albeit slow general purpose Lisp. Common Lisp is basically the kitchen sink programming language and with a good compiling implementation like SBCL it’s possible to write high performance code. Clojure is the Lisp that you’re most likely to get paid to write. It’s as performant as any JVM hosted language.
I like Racket, but it is also a kitchen sink Scheme. It has a ton of features: GUI framework, drawing (although it's slow), event spaces, places, futures, OOP, mixins, traits, macros, #langs, etc. It can get quite complex very quickly. I have mainly used it as a Scheme.
Re:I Still ‘Lisp’ (and You Should Too)
by umanwizard on Monday February 20, 2023 @07:45AM
(#34867568)
> It’s as performant as any JVM hosted language.
Surely not true if you write it idiomatically using the standard “purely functional” collections.
No, but it offers a lot of escape hatches to get closer to Java-level performance: transients, mutable fields with deftype, atoms, transducers to minimize intermediate sequences, type-hinting, Java interop, etc.
I've seen Clojure sped up to within 20% of Java's speed, at the cost of very un-Clojure-y code.
Yeah, scheme will do. Racket especially since it has all things to get you started. Once comfortable, try dipping into proper CL like SBCL and then decide on a small self-designed project with a clear goal in mind. That way you'll see the struggles or lack of.
Re:I Still ‘Lisp’ (and You Should Too)
by abudabi123 on Sunday February 19, 2023 @08:14PM
(#34863799)
Look at the two files in Kandria: ai.lisp, water.lisp.
File through the Elite source code. Do tut.txt in Arc.
Picture ten billion things and ChatGPT-X, Lisp interacting.
It really depends on what runtime you're targeting. If you're targeting the JVM, CLR or Javascript then you might want to check out Clojure. It'll let you interoperate with libraries in each of those environments, which you'll find useful.
If you're looking to create a stand-alone executable and have C/C++ libraries you'd like to use then SBCL or Racket may be more useful to you.
I started with Common Lisp and PG's online book On Lisp. http://www.paulgraham.com/onlisp.html
Re:I Still ‘Lisp’ (and You Should Too)
by kettunen on Tuesday February 21, 2023 @08:55AM
(#34881155)
Personally I feel that Scheme (Racket or some other implementation) is in many ways better language compared to e.g. Common Lisp. Simpler and more intuitive (at least IMO) compared to Common Lisp which is in scale of Java or C++ when it comes to the size of the standard/language. This can be of course explained due to the nature of Common Lisp and how its, according to its standard's author, more about politics than art, since when Common Lisp was being planned they needed to accomodate many features from many different Lisps before it. But despite that, when it comes to real-world code, in my own experience, Common Lisp and especially SBCL takes the cake.
Racket has easily the size & complexity of Common Lisp.
With Racket?