265
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 23 May 2024
265 points (91.5% liked)
Programmer Humor
19623 readers
1 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 1 year ago
MODERATORS
I don't get why people hate semantic whitespace. The whitespace would be there anyway, and if anything it's easier to read as long as you avoid 15 nested if statements, and you're not using a dynamically typed abomination like python.
S-expressions are a hack because the Lisp devs didn't know how to make an actual compiler, and instead had the users write the syntax tree for them. (For legal reasons I am being facetious).
In all honesty, I can understand the reason people love s-expressions, but to me they're just unreadable at a glance.
Semantic whitespace is awful because whitespace (something that you can't actually see) has meaning in how the program runs. Braces
{
}
for scopes gives you the ability to easily tell at a glance where a scope ends. Whitespace doesn't allow for that. Especially, especially when you can accidentally exit a scope (two new lines in a row with Python) and it's not actually an error (Pythons global scope). Yeah formatters and linters make this less of an issue but it sucks... Languages with legible symbols for scoping are significantly easier to reason about, seeend
symbols in Lua.Just for anyone thinking you are serious; https://en.wikipedia.org/wiki/M-expression I love how S-expression existed.
And for anybody thinking of implementing M-expressions, look at Wolfram Mathematica, which is the only popular M-expression-oriented language. It turns out that high-level graph-rewriting semantics are difficult to make efficient! (If you want to try, you might also want to look at GHC or other efficient graph-rewriters to see what the state of the art is like outside Planet Wolfram.)
I literally can't see whitespace, it gives me headaches looking for it. With brackets, I can get bracket matching in my IDE.