xeno_by (xeno_by) wrote,
xeno_by
xeno_by

Искусство

Программирование - это, несомненно, искусство.

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

На взгляд неспециалиста программирование тривиально и выражается собственно в кодировании (аспект №2 из вышеописанного списка), но это неполное понимание. Также неполно и понимание многих ремесленников, для которых задача №1 превращена в рутину гайдлайнами разработки софта и популярными фреймворками, задача №2 тривиализирована разработчиками одного из мейнстримных языков программирования, а задача №3 решена Чарльзом Бэббиджем. Такие взгляды, конечно, имеют право на существование, но создают иллюзию того, что в программировании (не в дизайне UI или юзабилити, а в самом программировании) нет ни субъективности, ни эстетики.

Как наиболее изящно организовать элементы, составляющие программу? Как максимально выразительно описать для компьютера эти элементы и их поведение? Стоит ли довольствоваться современными компьютерами или, может быть, стоит обучить их пониманию новых концепций? Этот небольшой (и, к тому же, неполный) список проблем убедительно показывает глубину программирования.

Да, за две сотни лет наука computer science далеко продвинулась в ответах на эти вопросы, но все же ни один из этих вопросов не имеет полного и объективного ответа, ибо нет метрики, позволяющей объективно оценить и проранжировать ответы на эти вопросы. В то же время, слова "изящно", "выразительно", "обучить", содержащиеся в постановке проблем, явно указывают на наличие в программировании эстетического начала.

Программирование - это, несомненно, искусство.
Tags: wetware
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 1 comment