March 21, 2026
Revenge of the Semicolon
No Semicolons Needed
No semicolons? Commenters erupt: line-break drama, Haskell snub, and “format-or-fail” chants
TLDR: A Roto language dev explored how code can work without semicolons, sparking a fierce fight over line breaks and readability. Commenters split between “keep it strict,” “learn from Haskell/Elm,” and “format-or-fail,” showing that tiny punctuation choices can shape how easy—or painful—writing code feels.
A language tinkerer building Roto dropped a deep-dive on how different languages handle code without semicolons—the little punctuation that usually ends a command—and the comments instantly turned into The Indentation Wars. The post shows how Python’s strict whitespace rules can throw errors while languages like Gleam let a math line continue cleanly, and then asks: what’s the least painful way to do this?
The crowd split fast. One camp, led by a blunt “why even support weird broken lines?” vibe, says don’t encourage messy code—keep lines simple and readable. Another camp fired back that the author looked at 11 languages but snubbed Haskell and Elm, the poster children for layout rules, complete with examples proving indentation can be your friend—until it isn’t. Meanwhile, a pragmatic chorus proposed a bold compromise: make the compiler refuse ugly code and ship a friendly auto-formatter to keep everyone in line.
It got spicy. A veteran warned about “classic language design mistakes,” while jokers yelled “bring back semicolons, they never hurt anyone,” and someone declared “ban newlines until morale improves.” Through it all, the Roto dev hasn’t picked a side, but the thread made one thing clear: this tiny punctuation mark is carrying big feelings—and might shape how Roto reads like a human without reading your mind.
Key Points
- •Posted March 18, 2026, the article examines how to make semicolons optional in the new scripting language Roto.
- •It contrasts language behaviors using examples, showing Rust remains unambiguous while Python may error due to whitespace rules.
- •Python’s grammar distinguishes logical and physical lines, allowing explicit (\) and implicit (within (), [], {}, or triple quotes) line joining.
- •Gleam accepts a shown multi-line expression without semicolons and evaluates it correctly, illustrating permissive continuation.
- •The post surveys 11 languages (Python, Go, Kotlin, Swift, JavaScript, Gleam, Lua, Ruby, R, Julia, Odin) to inform Roto’s statement boundary design.