На что бы вы хотели обратить внимание языковых дизайнеров?

На что бы вы хотели обратить внимание языковых дизайнеров?
На что бы вы хотели обратить внимание языковых дизайнеров? - randytarampi @ Unsplash

Цель этого вопроса не в том, чтобы составить подробный список функций языка программирования, без которых вы не можете жить или которые вы хотели бы иметь в своем основном языке. Цель этого вопроса состоит в том, чтобы пролить свет на аспекты дизайна языка, о которых большинство дизайнеров языков может и не подумать. Итак, вместо того, чтобы думать о языковой функции X, подумайте немного более философски.

Одно из моих предубеждений, и, возможно, оно может быть спорным, состоит в том, что более мягкая сторона проектирования — почему и зачем — во много раз важнее, чем более конкретная сторона. Например, Ruby был разработан с заявленной целью повысить удовлетворенность разработчиков. Хотя у вас могут быть разные мнения о том, получилось это или нет, тот факт, что это было целью, означает, что на некоторые варианты языкового дизайна повлияла эта философия.

Пожалуйста, не публикуйте:

  • Синтаксические пламенные войны. Посмотрим правде в глаза, у нас есть свои предпочтения, и синтаксис важен, поскольку он относится к дизайну языка. Я просто хочу избежать эпических сражений типа emacs против VI (о которых в наши дни многие люди ничего не знают).
  • Комментарии типа «Любой язык, в котором нет функции X, не заслуживает существования». Существует по крайней мере одна причина существования всех языков программирования — хорошая или плохая.

Пожалуйста, опубликуйте:

  • Философские идеи, которые дизайнеры языков упускают из виду.
  • Технические концепции, которые чаще всего кажутся плохо реализованными. Пожалуйста, приведите пример боли, которую это вызывает, и если у вас есть какие-либо идеи о том, как бы вы предпочли, чтобы это функционировало.
  • Вещи, которые вы хотели бы иметь в общей библиотеке платформы, но редко. Один же токен, вещи, которые обычно есть в общей библиотеке, которых вы бы хотели, чтобы не было.
  • Концептуальные функции, такие как встроенная поддержка тестов/утверждений/контрактов/обработки ошибок, которую вы хотели бы, чтобы все языки программирования реализовывали должным образом и определяли должным образом.

Я надеюсь, что это будет веселая и стимулирующая тема.

Обновлено: разъяснено, что я имею в виду под Syntax Flame Wars. Я не пытаюсь избежать обсуждения синтаксиса, особенно потому, что синтаксис является фундаментальной частью разработки языка программирования.

Поддержка Юникода по умолчанию

В наше время программы разрабатываются для использования на международном уровне или с учетом того, что они могут быть использованы на международном уровне. Они должны обеспечивать поддержку своих наборов символов или делать программы, написанные на этом языке, бесполезными.


LetsCodeIt, 6 июня 2023 г., 10:49