Really nice writeup. I have been using Racket occasionally for many years and never thought about the UI libraries. Off topic, but I am going to retire next year and would like to settle on a single programming language for recreational and research programming: probably either Racket or Common Lisp, less likely Haskell or Pharo Smalltlalk. Racket is a great ecosystem and community but I have been using Common Lisp for 36 years.
The UI libraries in Racket are pretty interesting in that they use the native UI on whatever platform you happen to be running on. I haven’t seen a lot of larger GUI app examples, but I have to wonder if Racket isn’t a viable option for creating cross-platform apps that don’t have the same compromises as something like Electron.
There was a video language demoed at RacketCon a couple years ago that showed code and video elements working together within the DrRacket IDE. I keep wondering if there’s an opportunity for something akin to macOS / NeXT / GNUStep Interface Builder, but using a Racket DSL to define the UI layouts.
My other Racket daydream is, for data munging the R community has built some impressive DSLs as part of the “tidyverse.” If I had time, I’d certainly spend some time seeing if I couldn’t push further in Racket.
I have a experimental code that converts saved Keras deep learning models to a Racket friendly format, and I wrote a small Racket runtime for running pretrained models. My idea is treating models functionally and mixing in with old-School symbolic AI code. I am having some problems making the runtime efficient enough even using the native matrix libraries.
Although I'm not yet retired, I have been thinking about something similar. When I was younger, I loved learning new languages. Now I find I'm less able to learn so quickly, and I'm more interested in getting things done. I'm interested in building things that are reliable and will last, so Haskell has been interesting to me. However, there is something about Common Lisp and Racket that keeps drawing me back, even though I tend to favor static typing. (Maybe Typed Racket is the answer?) My everyday language right now is Python, but I'm looking for something that feels more solid.
A good question! As a consultant I was required to use Ruby, Java, Haskell, Python, Clojure, Prolog, and Common Lisp. In retirement it seems better to pick one language.
Well, I use Python exclusively at work (machine learning job) and Python is just fine for short scripts using TensorFlow/Keras/PyTorch - but I don’t like Python for general development. I know people who love Python, good for them, but not my taste in a language.