[HN Gopher] Guile 3.0.10 now ships with support for parens-optio...
       ___________________________________________________________________
        
       Guile 3.0.10 now ships with support for parens-optional syntax
       (wisp)
        
       Author : Y_Y
       Score  : 30 points
       Date   : 2024-09-12 11:50 UTC (4 days ago)
        
 (HTM) web link (www.draketo.de)
 (TXT) w3m dump (www.draketo.de)
        
       | bheadmaster wrote:
       | I always liked Guile because 1) it is a Scheme, 2) it is
       | maintained under the umbrella of the GNU Project and 3) it is the
       | system language of GNU Guix.
       | 
       | 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.
        
       | jacknews wrote:
       | Kill it with fire.
       | 
       | 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.
        
         | azaras wrote:
         | In practice, it is not so hard. I have been using Python for
         | decades, and there is no problem.
         | 
         | 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.
        
         | bitwize wrote:
         | I believe it was Chris Okasaki who discovered that the thing
         | that helped neophyte programmers go from not getting it to
         | getting it in terms of blocks and scopes was semantic
         | indentation.
         | 
         | 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.
        
       | kazinator wrote:
       | Problem is, any project now that can declare a dependency on
       | 3.0.10 or higher can easily use this.
       | 
       | 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.
        
         | whartung wrote:
         | Does Racket suffer from this? Doesn't Racket support a bunch of
         | different syntax and such?
         | 
         | (Mind, I'm a curmudgeon when it comes to this, I don't even
         | like the mixing and matching of [] and ().)
        
       | dreamcompiler wrote:
       | Bitching about parentheses in Lisp is like bitching about house
       | cats having claws. Parentheses in Lisp are a feature, not a bug.
       | They enable a great deal of Lisp's power.
       | 
       | 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.
        
       | oakpond wrote:
       | Surprised to see so much hostility towards Wisp. I find it very
       | clean and elegant. It won't cover every situation (sometimes it's
       | just cleaner with parens), but it allows you to fall back to
       | parens when needed! It's just really well thought out imho. I've
       | used Wisp in a moderately large project and wouldn't hesitate to
       | do it again if I had the chance.
        
       ___________________________________________________________________
       (page generated 2024-09-16 23:01 UTC)