It's a tradeoff. The cost of having an explicit "end" is a few extra 
characters that you have to type, and an extra line of code at the end of 
each block.  On the other hand, the benefits include less error-prone 
cut-and-paste (as Stefan mentioned), the possibility of automated 
reformatting of code (e.g. think emacs indent-region or gofmt), and 
flexibility in writing one-liners (e.g. "try foo() end").

I think the metaprogramming facilities in Julia also favor the choice of 
explicit block delimiters.  In Julia, code can also be a symbolic 
expression, simply by surrounding it with :(....) or quote ... end, and 
whitespace sensitivity within symbolic expressions seems like it would get 
annoying quickly

Probably this should be in the Julia FAQ or Manual, since our inexplicable 
rejection of the holy whitespace seems to be the first thing that every 
Python programmer asks about.  (If you hate typing extraneous characters, 
the colons in Python must drive you bonkers.)

(People who like maximum terseness in a practical programming language 
should take a look at J.   The J examples on 
RosettaCode<http://rosettacode.org/wiki/Category:J>are pretty amazing.)

Reply via email to