Насколько я понимаю, на самом деле есть только три основных синтаксических элемента, которые были перенесены из C в остальной мир: блоки, обозначенные фигурными скобками, точки с запятой для обозначения концов строк и общие " краткость "стиля.
Упаковка блоков в один символ имеет разумный смысл; Во-первых, это быстрый ввод текста, не занимающий много места на экране (в отличие от пары ключевых слов BEGIN-END). Во-вторых, синтаксис достаточно гибкий, поэтому вы можете отформатировать ваши блоки так, как вам нужно / нужно в особых случаях (чего вы не можете сделать в чем-то вроде Python). Наконец, ваш код может быть несколько разложен чем-то как почтовый клиент, и все еще может быть читаем как людьми, так и компилятором (это единственная реальная проблема, с которой я сталкиваюсь с отступами для блоков в стиле Python).
Почему же фигурные скобки? Я не знаю, каков был исторический прецедент их использования в C (или, более вероятно, BCPL), но я могу рискнуть предположить. На «стандартной» американской клавиатуре не так много парных символов: {} [] () и <> об этом. Если мы хотим упростить жизнь компилятору, нам нужны уникальные символы для BEGIN и END, поэтому используйте что-то вроде | или # для конца блока отсутствует. Из наших пар {} действительно единственная, которая уже ничего не значит - () и [] имеют большой математический багаж (который переводится более или менее напрямую с функциями и массивами) и оба означают <и> среднее все виды вещей. Я бы тоже выбрал {} для блоков.
С новым языком, если вы не используете ключевые слова или отступы, зачем его менять? Легионы программистов привыкли использовать их для обозначения блоков, зачем аннулировать всю эту мышечную память?
Практически тот же аргумент применим к использованию точек с запятой. Использование чего-либо для обозначения конца строки значительно облегчает жизнь компилятору. Использование только одного символа делает жизнь программиста намного проще. Сканируя отдельные символы на клавиатуре, точка с запятой - одна из немногих, которая, математически говоря, ничего не значит. С точки зрения грамматики английского языка, точка (или, возможно, запятая) имеют наибольшее значение, но они уже используются в качестве десятичных знаков. И, если вы немного прищуриваетесь, наличие точки с запятой в качестве терминатора строки имеет достаточно сходное значение, как и в английском. И снова, если вы начинаете новый язык, зачем его менять?
Что касается основной краткости, я бы сказал, что это была единственная, которую вы могли бы сказать, объективно, было хорошей идеей. Чем меньше символов я смогу набрать, чтобы донести идею до компьютера, оставаясь достаточно близко к английскому, чтобы читать, тем лучше.
(Можно утверждать, что большинство языков типа C также заимствуют большую часть словарного запаса ключевых слов, но на самом деле большинство ключевых слов C пришло из более старых языков, таких как ALGOL, FORTRAN и BCPL, и на самом деле - все они (в основном) здравый смысл. И снова, после того, как вы обучили сообщество программистов, что такое «цикл времени», зачем менять имя?)
Я бы сказал, что сегодня любой язык, который не использует синтаксис во многом как C, делает это из-за некоторого фундаментального изменения парадигмы (например, подход Python с отступами). Если вы делаете язык, который работает в основном так же, зачем что-то менять? Ваша целевая аудитория уже может нажать на фигурные скобки своими мизинцами, зачем делать этот конкретный навык бесполезным?
Или, если продвинуться в последнем предложении еще на шаг, если вы пытаетесь продать сообщество программистов на своем новом, меняющем игру языке (Java, C # и т. Д.), У вас будет намного меньше препятствий прыгать, если все ваши клиенты уже знают синтаксис.