Такой стиль я стал воспринимать как высокомерное программирование. Высокомерное программирование — это разновидность практики программирования. Она совершенно отлична от многих разновидностей глупой или плохой работы, с которой мы так часто встречаемся. Высокомерное программирование — это эгоцентричное программирование, программирование с завышенным чувством собственной значимости.
Я думаю, что есть по крайней мере три подвида высокомерного программирования: эгоцентрическое, ленивое и претенциозное. Классической разновидностью является эгоцентрическое программирование. Для этой формы высокомерного программирования характерна некая отстраненность от мира, которая, вероятно, отражает социальную замкнутость таких разработчиков. Программисты могут настолько углубиться в задачу, настолько укрыться в своем уголке программной вселенной, что способны полностью забыть о существовании других программ и программистов.
Ленивая форма высокомерного программирования отражает стремление избежать тяжелой работы. Конечно, проще быть высокомерным и ленивым, чем заниматься сложными проблемами совместимости кода с сетями, или анализировать ошибки при вводе, или уважительно относиться к пользователю. Легче считать, что ваша программа работает одна на отдельной машине.
И наконец, есть высокомерие претенциозности. Это чрезвычайно сложный код, написанный исходя из того, что авторы все знают лучше, чем пользователи. Такие программы отбирают у пользователей контролирующие функции и лишают их возможности выбора. На самом деле высокомерно сложный код написать труднее, чем простой эгоцентрический, и еще сложнее, чем высокомерно ленивый код, но результат получается тот же самый. Во всех трех разновидностях высокомерного программирования продуктами являются приложения, которые говорят слишком громко, распространяют себя по всему диску, занимают все экранное пространство и отнимают все ресурсы операционной системы.
Невоспитанные драйверы
Возьмем одного из лидеров производства принтеров. Устройства, выпускаемые этой компанией, являются одними из самых надежных. То же самое можно сказать о встроенном программном обеспечении. Увы, их драйверы совсем другой породы. Эти драйверы поставляются с предупреждением о том, что их нельзя устанавливать в Windows таким же образом, как любые другие принтеры — словно они хотят сказать: «Мы особенные». Да уж, конечно, особенные! Один из релизов программы инсталляции, разработанной этой компанией, заменил менеджер печати Windows на свою версию, даже не сказав при этом хотя бы формального «с вашего позволения».
Более поздние релизы все так же продолжали настаивать на своей собственной процедуре установки, которая в некоторых случаях даже не носила стандартного имени Setup или Install. После установки программа показывает автопортрет принтера размером с четверть экрана при каждом выполнении задания на печать, хотя вам уже известно, что именно происходит, или вы просто не хотите знать об этом — например, когда другой компьютер из одноранговой сети инициирует печать на вашем общем принтере. Эта цветистая бесполезная картинка огромных размеров мешает ходу ваших мыслей и заслоняет экран до тех пор, пока вы не убираете ее принудительно. После чего вы пытаетесь разобраться, где вы были до этого. Ну, так вот, о чем же я говорил до того, как меня так грубо прервали? А, ну да, о высокомерном программировании.
Окно сообщения подобного рода вызывает раздражение, как будто вся система предназначена для драйвера принтера. Такой драйвер ведет себя так, словно это единственная интересная программа в системе, как будто вы больше всего хотите видеть именно эту громадную пиктограмму, напоминающую вам о том, какой принтер вы купили. Собаку можно воспитать, друга можно попросить говорить потише, но это программное обеспечение совершенно невозможно научить хорошим манерам. С ним нельзя справиться, даже если принтер стоит на столе, и вы можете видеть мигающий индикатор и слышать шум лазеров.
Если принтер был подключен через распределитель и в нем заканчивалась бумага, драйвер выдавал сообщение «принтер не отвечает», которое нельзя было убрать. Программисты никогда не думали, что вам может понадобиться что-то еще, кроме их принтера — единственного центра печатной вселенной. Этот принтерный драйвер был настолько эгоистичным, что крутился в жестком цикле, ожидая ответа принтера, в то время как Windows работала со скоростью черепахи.
Читать дальше
Конец ознакомительного отрывка
Купить книгу