Closure was written in 2008. This rationale document is interesting because it promotes VMs as the way of the future. It is interesting to note that since 2008 the industry has gravitated much more back toward compiled systems.
What gives you the impression of the industry gravitating more towards compiled systems?
I see JS/TS going stronger than ever, Java and .NET still very strong and growing, Python again stronger than ever, WASM on the rise.
What's on the "compiled" side, apart from probably Rust making headlines on HN? What are the major products or services written in Rust? What are the unicorns with Rust secret sauce?
C/C++ is still strong, but is it expanding? Is Go even in the "compiled" camp?
These are all growing and strong. My point was that new languages that we see coming out are compiled. Nim and Zig are examples. There's even languages that are a direct answer to "compiled Clojure" such as Carp and Janet, and most directly, Jank.
When was the last time you saw an interpreted language as a new language come out in the last few years?
The only thing that comes to mind is JITs everywhere and maybe that dotnet is trying to do more stand-alone compiling stuff. Other than that, completely agree.
I personally put it in the "compiled" camp, but I've seen understandable arguments that Go has such a thick runtime (GC, IO/fiber scheduling, CSP, reflection), it's almost Java
its a host platform, but a great one? Given that the platform lacks a lot of native features long used by Lisp systems. For example one can work interactively, dump a memory image, copy and restart it later, just continuing the the work. The JVM does not support that. The native object system is not tailored towards incremental change, class loaders are a pain, ...
Big fan of Clojure for sure. But looking at all the cool projects built on WASM, I'm not sure about the bare metal vs VM direction. There are compilers, interpreters, embedded support, interesting sandboxes (RLbox), webGPU. There are use cases from browsers to embedded, and it's a portable assembly language so you can still write with most higher level languages if you like the syntax and take advantage of all these environments to run in. The "browser as OS" idea has been around for a couple of decades now and it keeps moving closer to the bare metal.
There is already clojurescript, not much use for clojure to WASM in the browser. I guess there are or will be JVMs for WASM at the very least. And Clojurescript running on Nodejs or Deno won't be that much of a difference.
With the cloud, Kubernetes, Docker and all the other stuff, I don't think the OS/language-specific VM dichotomy still makes sense.
"Memory and other resource management"
Can people really claim they manage memory and resources with a low-level language when their 30-line YML configured cluster reallocates whole machines at a time?