Ada, at least, uses begin...end in part because it prevents certain kinds of errors. In its syntax you have to specify
what you are ending, reducing the risk of invalid matches and increasing the likelihood of the error report system guessing correctly what you
intended. E.g.:
if X > 0 then
Y := 0;
end if;
Curly braces are shorter, but a close curly brace will match
any open curly brace. Such is the nature of trade-offs.