Какие характеристики заставляют программистов воспринимать язык как красивый? - PullRequest
4 голосов
/ 18 сентября 2010

Мне кажется, что некоторые языки обычно считаются более красивыми, чем другие. Похоже, это относится ко всем парадигмам программирования. Существуют ли какие-либо абстрактные / парадигмальные характеристики, которые заставляют программистов считать язык красивым?

Изменить: Если вы считаете, что нет консенсуса, пожалуйста, не стесняйтесь высказать свои собственные взгляды

Ответы [ 5 ]

6 голосов
/ 18 сентября 2010

То, что я считаю красивым, - это концептуальный минимализм или, точнее, ортогональный набор нескольких примитивов общего языка ...

в отличие от многих менее мощных необходимых функцийописывать почти одно и то же, постоянно обращаясь к особым случаям. Например,

Haskell - это всего лишь некоторый синтаксис вокруг трех примитивов с невероятно маленькой системой типов (просто значения, обобщенные элементы, конструкторы, классы типов), которая охватывает все настолько мощным образом, что, возможно, ни один другой общий язык не может достичь.Понятие значения «снова» охватывает все - данные, функции, объекты (как совокупность значений), ...

Классический VB с другой стороны имеет даже больше, чем Пять встроенных циклов .Существует разница между значениями и функциями, простыми данными и объектами, ... и целым почти без какой-либо возможности написания общего кода.

4 голосов
/ 19 сентября 2010

Вот мой список:

  1. Быть максимально лаконичным и в то же время читаемым.
  2. Имея как минимум несколько особых случаев, странные правила, которые вы "просто должны знать", насколько это возможно.
  3. Создание правильного, безопасного способа наиболее очевидным, наименее многословным и наиболее читаемым способом.
  4. Упрощение решения проблем на очень общем уровне.Это частично идет рука об руку с (2).Если вам нужно рассматривать особые случаи везде, то ваши «универсальные» решения не очень универсальны.
  5. Позволяет создавать абстракции, которые достаточно эффективны, чтобы их можно было использовать везде, а не только в коде, который не нуженБыть быстрым.
  6. Избегать обработки встроенных типов как можно более «специальными».Если встроенные типы могут это делать, то пользовательские типы должны это делать.
4 голосов
/ 18 сентября 2010

Универсальных правил красоты не существует.Красота в глазах смотрящего - у каждого свое представление о красоте.

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

3 голосов
/ 18 сентября 2010

В программном обеспечении наблюдается общая тенденция к языкам и языковым функциям, которые более декларативны .В настоящее время большинство языков все о как , а не о что .Цикл for указывает, как именно вы хотите, чтобы код вел себя, но не указывает, чего вы хотите.

Для меня прекрасный язык - это тот, который позволяет мне быть декларативным, но не лишает возможностиоптимизировать.Чем больше выразительных вы можете быть в коде, тем лучше.

2 голосов
/ 18 сентября 2010

Я думаю, что это должно быть несколько похоже на естественный язык. Причина: человеческий мозг, кажется, подключен, поэтому изучение естественных языков легко. См. Также Нативизм , и особенно Хомский . Это немного экстремальные взгляды, но, скорее всего, в этом есть доля правды.

...