If you feel awkward coming to Nim after getting so used to braced languages, 
believe me, after a while you will get used to it and maybe end up preferring 
it in the end.

Discussions about syntax can be important (to provide an extremely arbitrary 
example: Nim doesn't "cheapen" the syntax at the expense of reducing 
abstraction between it and the AST in spite of its AST macros, unlike 
Lisp/s-expressions) but they also tend to run headfirst into superficiality 
(we're not here to see C++ dressed up like Python, the semantics are more 
important than anything else) and subjectivity.

That being said, it helps to understand the philosophy of Python's syntax 
(which Nim borrows from): braces were originally just there to make the 
compiler implementer's job easier. They've since become rationalized to be 
apparently important in conveying where scopes begin and end, but they're not 
the main thing we actually use to demonstrate a scope, which is indentation. 
Why not cut out the stuff we don't really need and use that already-existing 
pattern of indentation to provide the semantic of scope?

Reply via email to