Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.




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.


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.


"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."

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.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: