Страницы

Ограничение словаря идентификаторов

Типичное программирование не требует такого богатого набора понятий, какой существует в естественных языках. Можно было бы использовать достаточно ограниченный набор слов для сложносочинённых идентификаторов, что упростило бы их запоминание и использование. Однако при отсутствии контроля над словарём разработчик склонен к использованию более широкого словарного запаса за счёт ненужной(?) синонимизации. Если снабдить средства трансляции дополнительным контролем за словами, используемыми в программе, за счёт ведения общего словаря ограниченного размера, можно было бы получить интересный результат.

Чему ещё может помочь такой инструмент?

  1. Избеганию омонимов и достижению двунаправленной однозначности
  2. Слежению за способами комбинирования слов в иденитификаторах для избегания формирования разных идентификаторов со схожими смыслами
  3. Поддержанию общего набора определений, особо полезного для неологизмов и нераспространённых сокращений
  4. Интернационализации исходных кодов
  5. Создание новых, логически составленных терминов для ясного и, может быть, краткого обозначения.

Наследие в развивающейся системе без раздувания сложности

Прилагательные «совершенный» и «завершённый» имеют разный смысл, но похожи внешне совсем не случайно. По-настоящему завершить можно только совершенное творение, а несовершенное всегда открыто для доработки, хотя бы и по принципу каши из топора. Если технология востребована, то доработки ей не избежать, особенно в изменяющихся условиях. Но если технология лежит в основе других разработок, то это накладывает на сопровождающих обязательства по поддержке наследия.

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

Вездесущее программирование или ПОП

Программирование компьютеров в его привычном понимании — это самый мощный способ взаимодействия с машиной и единственный, позволяющий использовать её любым из возможных для программного обеспечения способов. Но если посмотреть шире, то практически любое взаимодействие с машиной можно назвать программированием, в том числе и взаимодействие с программой, предлагающее лишь однообразный набор реакций на скромный список воздействий.

Строительная аналогия в программировании

Думаю, найдётся мало таких программистов, которым бы не рассказывали про правильный подход к созданию программ через строительную аналогию. Под ней подразумевается, что перед тем, как что-то строить, его сначала нужно спроектировать. При этом под строительством в программировании подразумевается кодирование на языке, а под проектированием — создание высокоуровневой архитектуры. Знаете, почему так происходит? Думаю, из-за того, что те, кто приводят эту аналогию, плохо понимают в строительстве.

Правда не победит. Правда не проиграет

Правда в своей полноте не cможет возобладать в обществе. Для человека правда задана извне и поэтому может быть

  • ресурсоёмкой
  • неинтересной
  • неприятной

И ничего с этим не поделать.

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

  • сколь угодно легкой
  • интересной
  • и приятной

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

Может ли в таких условиях правда победить?