I think a newer language, having the boreness of go, the compile speed and maybe comp time of zig and safety of rust will emerge, maybe with lisp syntax.
I think a newer language, having the boreness of go, the compile speed and maybe comp time of zig and safety of rust will emerge, maybe with lisp syntax.
Anyways, here's some hacker news links to other discussions in case you think I'm exaggerating. You can see some hostility exists even in this forum that is built with a lisp variant and run by a company named after a mathematical concept relevant to functional programming.
https://news.ycombinator.com/item?id=20374782
https://news.ycombinator.com/item?id=502074
https://news.ycombinator.com/item?id=9730277
We don't need the "boreness" and human usability of Go anymore. Fast compile times are still nice though.
Lisp syntax doesn't have much value in the age of AI I think. Lisp seems optimized to make it easy to parse, and also easy to hack on the interpreter. I don't think Lisp was ever meant to optimize human readability. The uniformity and minimalism of Lisp makes it easier to learn the syntax though. -- I don't know, maybe I underestimate the value and flexibility of Lisp syntax.
I think the most valuable features of programming languages now are human readability and type systems that give guarantees humans can rely on. Some of the most exciting code AI has written has been in Lean.
secondary impact is structured editing, and maybe it's helping code reading by human brains.
But does it actually have that impact? Being able to represent language constructs within the language doesn’t seem to have much to do with the textual syntax that humans use to input those constructs. Or perhaps you meant it in the sense that when introducing new constructs for humans to use (and not just generating code programmatically), it’s easier to make their syntax “blend in” with existing syntax if there isn’t much of the latter.
> and maybe it's helping code reading by human brains.
Empirically, I’m not convinced that it’s the case.
IME, at least a weak of full-time dedication is needed, with a suitable editor and config, to start grasping this.
there's a large threshold on the way just to configure emacs and structured editing of lisp, in a powerful environment like slime. and only then comes the language itself.
nowadays it could be less, though, with tutorial videos and LLMs to set it up.
Everyone should be using an IR like C# source generators. It's a lot faster to process, more stable and more intuitive because it maps closer to the language semantics instead of surface level syntax. And then you don't need a simple syntax at all.
anything that transforms the source code in a lossy way is an obstacle to that.
Yeah because it's the present. Rust is everywhere now.
Mojo?
The problem with Rust is lack of alternative implementations, like it happens in OCaml and Haskell, which allow for quick development loops, or going for lunch with an heavily optimised build.
> Docker Desktop avoids this problem by forwarding all traffic at user-level via vpnkit, a TCP/IP stack written in OCaml on top of the network protocol libraries of the MirageOS Unikernel project.
https://www.docker.com/blog/how-docker-desktop-networking-wo...
https://ocaml.github.io/ocamlunix/ocamlunix.pdf
And to go back to the 1980s, more broadly than only OCaml,
"Eric Bier Demonstrates Cedar"
https://www.youtube.com/watch?v=z_dt7NG38V4
Or if you prefer bare metal stuff, with hard real time requirements, and somehow more mainstream language,
> Aonix PERC Ultra Virtual Machine supports Lockheed Martin's Java components in Aegis Weapon System aboard guided missile cruiser USS Bunker Hill
https://www.militaryaerospace.com/computers/article/16724324...
> Thales Air Systems Selects Aonix PERC Ultra For Java Execution on Ground Radar Systems
https://vita.militaryembedded.com/5922-thales-execution-grou...
Nowadays Aonix has been integrated into PTC.
https://sourceware.org/glibc/wiki/MallocInternals
Especially relevant anything describing how mmap() and sbrk() are being called.
The matter is not if the language has a GC or not, regardless of the GC algorithm(s) being used, rather what language primitives and standard library features are available to be taken advantage of, when required to do some low level coding.
Here is another set of examples, TinyGo, TamaGo or Oberon for tiny computers.
But nobody should do that, you allocate upfront.
Some of the code also did networking in user space and communicated with other processes by coordinating writes to shared memory.
It’s true that there’s certain system software that you probably can’t write because of the presence of a GC: parts of the operating system, a language runtime, a virtualization toolkit. The category “system software” contains those things but also databases, browsers, and servers.