Hacker News new | ask | show | jobs
by gavinhoward 1121 days ago
Notes on paper are for humans.

Programming languages are for humans and machines. Machines do better with braces. (I've written lexers for both.)

Also, try to write an automatic formatter for a whitespace-delimited language; if your indentation is wrong, your logic is wrong, whereas with a brace language, if your indentation is wrong, you run a formatter, and it's all golden.

1 comments

A parser is something you write once and then it's done, so it shouldn't be the deciding factor. And parsing indentation-based languages is not that hard, just replace indents and dedents with a special token.

In a brace-based language, if your braces are wrong, your logic is wrong. How is that better? At least a mistake in indentation is much easier for a human to spot.

Run the formatter, and the brace-based mistake is easy to spot too.
So what's the point of having braces if you're going to use indentation anyway?
To do more things with the source than just compile it.
And how do braces and semicolons help you with that?
Exactly what I mentioned above: source formatting is just one of the things you can do with braces and not significant whitespace. [1]

Also, forget a brace in your program, just one, and the compiler can tell.

Forget one indentation? No dice.

And while braces can break things too, editor settings can make it much easier to break things with significant whitespace. [2] [3]

Also, refactoring. [4]

Editor stuff. [5]

[1]: https://news.ycombinator.com/item?id=3296782

[2]: https://medium.com/@rwxrob/significant-whitespace-is-still-t...

[3]: https://news.ycombinator.com/item?id=24854090

[4]: https://lobste.rs/s/yyuo7f/significant_whitespace_good_bad#c...

[5]: https://lobste.rs/s/yyuo7f/significant_whitespace_good_bad#c...