The obvious way to extend statements to multiple lines is to have a continuation character like C's \ or matlab's ... . Also, when a statement is incomplete and a newline is reached, that can also imply continuation, although this forces a coding style that you may not want to force.I prefer semi-colons and marking blocks with braces because it feels explicit and unambiguous. The statement will not end without something that marks the end of it, and blocks begin and end in only one way that is indisputable; considering things like JavaScript's optional semi-colons, which sometimes results in a different expression if you ended the line with a semi-colon and without, I say that when people consider line endings to terminate statements, it isn't always clear how it should be handled. If the statement is long enough that I should break it into two lines, how do I bring it to the next line without accidentally marking the end of the statement, and how do I do it in a way that the compiler is guaranteed not to misunderstand my intention? If the answer is add more whitespace, then chances are, I won't use the language unless someone pays me. Everyone has a different style, and languages that try to dictate how many spaces I must use in order for it to have syntactic significance rub me the wrong way.
Indentation is good. The language absolutely requiring it, I don't know about that.
Perl's There's More Than One Way To Do It motto is a language problem. It means no one has intuition about what Perl code looks like. After all, there's more than one way to do anything. This makes it hard to read code written by other people, or even your past self. And since programmers often spend more time reading code than writing code, that's a big failing.but I tend to believe that giving programmers the choice is best. If a programmer isn't following appropriate conventions then they're not doing their job -- its a people problem, not a language problem.
Now I'm not saying a language should not be flexible generally, but in this case the redundant indication of statement termination and code blocks is undesirable. A reasonable alternative could be to allow both: make semicolons optional, unless you have multiple statements per line.