Я часто получаю подобные вопросы; то есть вопрос "компилятор может решить, что эта вещь отсутствует, так почему это требуется?" Вот еще один пример такого рода вопроса:
C # с использованием констант в статических классах
Как я отмечал в этом вопросе, в основном у нас есть три варианта в этой ситуации. Сделайте лишний текст обязательным, сделайте его необязательным или сделайте его незаконным.
У каждого свой недостаток.
Недостатком этого является то, что у вас возникает ненужная избыточность в языке.
Недостатком того, чтобы сделать его необязательным, является то, что вы путаете людей, которые думают, что между этими двумя формами должна быть разница. Кроме того, вы усложняете работу анализатора, восстанавливающего ошибки; это процветает на избыточности. И вы потенциально усложняете добавление новых языковых возможностей в будущем, потому что более «синтаксическая область» уже востребована.
Недостатком того, чтобы сделать его незаконным, является то, что вы затем делаете "гочу", где пользователь должен помнить, что о, да, я должен ставить парены здесь, но не здесь.
У предложенной функции лучше иметь преимущество, которое окупается за недостаток. Самым маленьким недостатком, как мне кажется, является первый: сделать это необходимо. Другие варианты, которые я хотел бы иметь, это оправдывает недостатки, и я не вижу здесь ни одного.