Все
Отредактировано:20.01.11 13:38
Программирование – как искусство
(и в шутку, и всерьез)...
О природе компьютерного программирования споры не утихают почти с самого момента осознания его как особого рода человеческой деятельности. На этот счет есть два распространенных мнения.
[I]Первое: программист должен обладать склонностью к разгадыванию головоломок и любить хитроумные уловки.
Второе: программирование есть не более чем та или иная оптимизация эффективности вычислительного процесса. [/I]
Свои взгляды по этому вопросу излагали едва ли не все классики программирования. Дональд Кнут утверждал программирование как искусство, понимая под этим то, что можно писать по-настоящему красивые и изящные программы, настаивая, что "составление программ сродни сочинению стихов или музыки".
Итак, все началось с поста Алексея, где предлагалось выстроить логическую цепочку от Байрона к программированию, а кончилось обобщением более серьезным, что [U]написание программ сродни написанию стихов[/U].
С Байроном и программированием ответ был найден достаточно быстро... Дочь поэта, леди Ада Лавлейс, считается первой женщиной-программисткой. Абстрагировавшись от Ады, удалось найти еще два интересных решения задачи:
Байрон -> стихи -> арабское "байт" (стихи) -> байт единица сохранения информации в компьютерах –> программирование
Байрон -> Don Juan (поэма) -> Маньяк -> MANIAC (компьютер)-> Джан фон Нейман -> программирование
(хотя переход "Don Juan -> Маньяк" видится не точным. Но зато красиво в целом, поэтому - принимается! )
Так вот, в момент составления логической цепочки выяснилось, что программирование воспринимается со стороны весьма прозаично:
"Программирование - это всё-таки чисто рутинная работа по описанию алгоритма специально придуманными символами. Конечно, и стихи зачастую пишутся подобным образом, особенно поздравления по случаю пришествия памятных дат. Но я бы скорее сравнил написание стихов с поэзией алгоритмизации задачи, особенно на ранних стадиях этого процесса".
И вот с этим захотелось не согласиться.
Мое мнение, программирование - благородное ремесло, проявление творческого начала и средство развития души. Ни больше, ни меньше. (смеюсь)
Вот есть в программировании нечто малодоступное и весьма удивительное для посторонних – это КРАСОТА. Качество программы легко оценить, и оценивается в процессе работы. Но, пожалуй, лишь сам программист знает, насколько красиво или не очень то, что он сотворил. Конечно, можно утверждать, что этого "никто не видит"...
что важен "результат"... что изнанка, недоступная пользователям, не очень-то и важна...
И тем не менее, это показатель.
Чем квалифицированнее, чем опытнее программист, тем совершеннее его детище. Программу можно написать, используя тысячу команд, а можно - лишь сто... Можно продумать алгоритм, который будет более гибким и совершенным, и потребует меньших временных затрат исполнения. Будет более понятен. Удобен. КРАСИВ. Вот оно это слово!
Красота – это человеческое в программировании. И понимание красоты ставит программиста в то же отношение к созданной им программе, как поэта к своему творению.
Думается, что терпение, смирение, истина, красота, мудрость, интуиция – без всякого преувеличения, свойственны программисту вполне.
Попробую это доказать.
Все программирование основано на ИСТИНЕ. Это подтвердит любой программист отлаживающий новую программу.
Как и поэту, улавливающему истину интуитивно, безошибочно чувствующему фальшь, программисту в работе необходима ИНТУИЦИЯ. В результате связь с Вселенским Разумом ставится на профессиональные рельсы.
Блуждания в эмпириях Бессознательного в поисках нужного ключа в коде и постепенного осмысления полученного ответа весьма роднит поэта с программистом. Не только Менделеев видел во сне свою таблицу. Искать вдохновения в решении задачи часто приходится в сферах тонких и зыбких, но результат этого вполне материален. (смеюсь)
В программировании мы сталкиваемся с ЧУДЕСАМИ. Подчас невольно забываешь, что в мире программирования нет места абсурду, что все осмысленно и имеет свою причину. Чудеса случаются, и это уже воспринимается, как должное. Природа этих чудес вполне объяснима, и все же должно пройти немало времени после того, как работая над программой, исследуя причины и связи, наблюдая и делая выводы, ища дефекты, и устраняя их, программист выдаст сакраментальную фразу: "Чудес не бывает!"
Бывает. Программисты встречаются с ними на каждом шагу, планомерно устраняя и исправляя ошибки: неправильно написанный код... дыра в программном обеспечении... не до конца продуманный алгоритм... и - начинает происходить то, что невозможно в принципе. Популярная фраза Зеленого из "Тайны Третьей Планеты": "Что у нас плохого?" - это сюда, к программистам. (вздыхаю)
Главные качества, что даются трудом, опытом и временем программисту - это СМИРЕНИЕ и ТЕРПЕНИЕ.
Почему программа не работает, как требуется? Потому, что так написана. Программист тестирует программу, вчитывается в нее, ищет и, наконец, находит ошибку.
(продолжение в комментариях)
* первая женщина-программист, красавица Ада Лавлейс, дочь поэта Байрона