Guile 3.0.10 now ships with support for parens-optional syntax (wisp)
draketo.de
draketo.de
Wisp may be contraversial, especially in elitist Lisp crowds, but IMO it makes lisp more readable by using the de-facto standard Lisp indentation as Python-esque semantic whitespace.
If you really are allergic to parentheses the proper solution is to use a different language, not to mutilate Lisp by having its claws removed.
There is a psychological difference between "I can add wisp to my Guile project and write in it" and "I can count on Guile supporting wisp out of the box", and that difference will cause the insane whitespace nonsense to run rampant in Guile codebases.
Also, as of today, you're no longer a fully competent Guile developer if you don't know how to read and maintain wisp.
(Mind, I'm a curmudgeon when it comes to this, I don't even like the mixing and matching of [] and ().)
That dream got closer to reality with Guile 2.0 and its multi-language "compiler tower" which already supports ECMAScript and a subset of Emacs Lisp. But Scheme is Guile's native tongue, so you don't have to learn how to use those in order to be a "fully competent Guile developer", and you wouldn't have to learn Wisp either.
I remember reading an article about wisp and being compared to (and writer saying is better than) python.
However, seeing it now ships with it -- sure, I am a little concerned about it. It opens the door for for mixture of code when searching for libraries or general scripts to use... now some of these might be in wisp.
A lot of this does not concern me (now) but I do understand the frustrations.
makes me wonder if the GNU Guix config files will start to have a mixture of syntax?
On the other end -- I dont think this is as big of deal as it seems. Guile is designed to support different languages like this. If you have a project.. pick your syntax.. have fun.
semantic-whitespace is the worst idea since ideas, or at least since null. Cut and paste, or just moving code blocks around, doesn't work smoothly, there's no way to check the semantics other than the formating, it's difficult to judge the correct indent level many lines away, etc, etc.
Use actual delimiters to signify meaning, then auto-format to demonstrate the semantics are what you expect. A kind of double-entry book-keeping for coding.
The same is true for YAML, which is not perfect for communicating among machines but is more accessible for human input/output communication. A good pattern is what Kubernetes does; it shows and reads YAML to/from humans and uses JSON and GRPC for proper machine-to-machine communication.
Lisp's parens were originally a convenience notation for McCarthy's idea of lists, but not intended as something people actually code in. For most programmers they are, as they say in the Rust community, not very ergonomic.
Semantic indentation is a win, and will be good for the Lisp family. Embrace change or get left behind.
I don't believe a word, and it's not my experience, the indentation doesn't need to be semantic at all. Meanwhile cut&paste, which is heavily used when learning is broken, it's hard to match up indentation levels lines apart, and even tabs-vs-spaces is suddenly a thing again.
"Embrace change or get left behind."
Don't be ridiculous.