- Есть разные соглашения. Соглашения в математике, логике и прикладных науках и соглашения в IT. Первые намного старше.
- Научные языки созданы для того, чтобы сделать жизнь их пользователей более удобной. Пользователь рассматривается как ученый, который может время от времени реализовывать какой-то алгоритм или проверять какую-то теорию без необходимости изучать что-то действительно новое. Таким образом, языки для ученых ДОЛЖНЫ быть составлены в соответствии с не IT-стандартами. Потому что они не предназначены для использования айтишниками. Они соответствуют ДРУГИМ стандартам, и это хорошо из-за целевой аудитории. Поскольку хороший пользовательский интерфейс программного обеспечения, а язык - это пользовательский интерфейс программного обеспечения, должен выполняться на основе потребностей пользователя, а не кодера.
- Наши ИТ-стандарты являются отраслевыми стандартами. Это индустрия. Наука это не индустрия. Ученые гордятся этим. И они неохотно переняли бы что-нибудь из нашей практики в свою. И им вообще не нравятся стандарты. И никто не любит иностранные стандарты. Таким образом, если кто-то создаст научный язык, который будет соответствовать стандартам ИТ, он вряд ли будет хорошо продаваться из-за неприязни к целевой аудитории, даже если это будет объективно более удобно.
И даже если мы будем судить только по стандартам ИТ ... Извините, какие стандарты вы имеете в виду? Вы пытались написать прогу в APL или SNOBOL? Эти два языка, ИМХО, САМЫЕ мощные в соответствующих областях (подсчет и строки). Но синтаксис ОЧЕНЬ странный (и эффективный). Чтение строки кода APL может занять несколько дней. С другой стороны, такая линия - серьезный кусок SW. Вы вернетесь в Матлаб со слезами облегчения.
Что касается "=", у многих людей есть проблемы, которые нужно привыкнуть, что это не равенство, а назначение. Кстати, в Паскале это равенство и присваивание ": =".
И вы действительно думаете, что == для равенства более естественно? Напротив, смешивание = и == является НАИБОЛЕЕ распространенной ошибкой в программировании на C, это происходит очень часто даже в современных IDE с их автоматическим управлением.
Про индексирование от 1 - это единственное естественное. Когда вы были ребенком, вы выучили стихи и песни, где вы сосчитали: один, два, три ... А не 0,1,2 ... В школьной математике мы учились, что отсчет начинается с 1, а этот 0 не относится к натуральным / счетным числам. Только с определением функций приходят неестественные индексы. В конце концов, 0 был изобретен через много тысяч лет после того, как наш предок поднял палец вверх.
«0-старт» было проще реализовать, и сразу после появления в Си он попал в ИТ-практику. Но в Фортране, первом языке, используется 1-индексирование. То же самое с другими языками доиндустриальной эпохи.
И да, я прочитал статью Dyjkstra о естественности отсчета на основе 0. И совершенно не согласен с его аргументацией. Для музыкантов это естественно. И даже 0 энтузиастов, которые создают компиляторы C и Java, считают строки кода, начинающиеся с 1!