I guess I'm never to actually “get Lisp” to appreciate its syntax.
>Aside from the prefix ordering, Common Lisp’s syntax is already a bit more elegant because you can set arbitrarily many variables without repeating the assignment operator over and over again:
; Have to type out `=` three times
x = 10
y = 20
z = 30
; But only one `setf` required
(setf x 10
y 20
z 30)
I utterly fail to see the aforementioned elegance, although I certainly can't miss the line where it happens.Having programmed many substantial projects in both worlds, I have to admit that I much prefer S-expressions over any other syntax -- without complicated macros that introduce some sort of keywords or other tricks. With S-expressions, there is basically just one syntax to learn for every construct, so you can focus on the semantics. (I do prefer Scheme's way of dealing with functions, but that's another matter, of course.)
Unfortunately, I otherwise prefer strongly typed systems languages with a strong focus on compile-time, zero cost solutions such as Ada or Rust. My ideal language would be a very fast, statically and strictly typed language with a modern incremental garbage collector that can be switched off and without type inference, but with an S-expression syntax.
However, if such a language existed or I'd develop it on my own, it probably wouldn't gain much popularity... ;-)
Shen is probably the closest you'll get. http://shenlanguage.org
It's strongly typed, but not a systems language, and very much not zero-cost.
There are some systems lisps with no GC. I just wish I could find them...