-- Leo's gemini proxy

-- Connecting to yujiri.xyz:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini; lang=en

yujiri.xyz

Software

Braceless body in semicolon languages is bad design


In C, Javascript, and Zig, conditions of `if` and `while` statements always have to be wrapped in parentheses, while in Rust and Go, they don't. It's because in C, Javascript and Zig, the *body* of such a statement *doesn't* have to be wrapped in braces, if it's only one line, and there has to be a way for the parser to tell the separation between condition and body. In these languages the syntax is: `if (condition) body`, while in Rust and Go the syntax is `if condition { body }`.


What Rust and Go do here is better, for two reasons:


The braceless body is a mistake hazard. It's common that you write an if statement with a one-line body and then later add a second line to the body; if you didn't include the braces before, it's easy to forget to add them now and get a bug. I've met people who insist that you should always include braces anyway for this reason.


Parentheses around conditions that themselves end with parentheses result in stacks of parentheses that are hard to read.

-- Response ended

-- Page fetched on Mon May 20 16:50:18 2024