21 comments

[ 2.8 ms ] story [ 48.8 ms ] thread
Racket is a fun language. My university uses the bundled teaching languages for first year CS courses. Some people really hate it, and others silently like it.
Lisp is its own meta-language, and Racket is even more meta. It's a language construction kit, essentially.
What is the use case for this?
Racket is awesome. Really fun language and a good lisp for learning.

Still have core memories of doing assignments in Racket with the Dr. Racket IDE

The big news here is that Racket now can run threads in parallel. While there were ways to get parallelism before (like places), this is much more lightweight and familiar. Anything that expands the areas where Racket is viable is good news to me since I like writing stuff in Racket.
I first experimented with Lisp back in the mid-80’s, and have returned to it time and again—not as a language for serious projects, but just as a way of learning new techniques and new ways to think about writing software. I’ve tried using Racket on a number of occasions going back to way before it was called that, and something about the software just puts me off. Perhaps I could get past that if I stuck with it, but I just can’t see myself writing a large project using Racket.
Delimited continuations as a programming construct were somewhat of interest when I learned about them, but not even my university discussed them.

I don't think I ever had a colleague that even ever heard of the concept, let alone applied it. Of the "smart people", they typically only have heard of plain continuations, if you are lucky.

The debugger in Racket was useful when I used it years ago.

Unfortunately, it's kind of difficult to beat an entire planet cranking out libraries in other languages as many interesting programs are written for an ecosystem; if 90% of your project is building FFIs to make something work, perhaps you can better just choose the language of fools dun jour.

I don't think Scheme is the most academic language, today. Such honor would go to a language supporting a computable version of homotopy types, which I would guess only 1000 people in the world would be capable of using assuming production grade implementations (of which none exist).

Bogdan Popa has quite a bit of interesting information about Racket on his blog.

https://defn.io/

I look forward to using the new threading.

I've wanted to try racket a few times but always found the "IDE" to be really unintuitive, clunky and weird. What gives? Is that by design or is it just that nothing better has been created so far?
Speaking of lisp, if I wanted to use a lisp nowadays, what would be the best choice, common lisp, clojure or some scheme implementation?
Racket of course!

More seriously, there is no one ‘best lisp’.

What you use depends on the needs of the project. That might mean Racket, Guile, Clojure, SBCL or something else. It all depends on what you need to do.

Common Lisp. It's the hacker-est Lisp with a thriving hacker-est community.
I love Racket. Just for fun, I wrote a Racket book, read online: https://leanpub.com/racket-ai/read

For Scheme languages I recommend Racket or Gerbil. Racket is great for beginners since the IDE is pretty good and the standard libraries and contributed libraries are good. Gerbil is good for systems programming. network utilities, etc.

I just bought your book. Thanks for writing it. I look forward to reading it!
https://youtu.be/LXhsutNKhec?si=OTC6sn5GNp1-ZxqU

Racket is only hard if it's not your first language. Kids can also learn it.

Very impressive video. This is making me want to start my daughter out on scratch or Racket when the time comes.

His keyboard sounds amazing too. Buttery smooth pearls.

I want to thank Go for popularizing coroutines. Seems like every language now has adopted it and I love that.
Only for the newer generation.

Besides the sibling comment, we already knew them from Solo Pascal and Modula-2 among other 1980's languages.

Co-routines were a famous way to simulate paralelism when you only got a single CPU.

Btw reading Racket documentation is a pleasure each time, both visually and intellectually. So great effort
For all lisp lovers tackling concurrency and parallelism, a reminder there's also LFE - a lisp for Erlang VM. Which happens to have solved all these issues decades ago. LFE was created by one of the Erlang co-creators. https://lfe.io