Кодеры за работой. Размышления о ремесле программиста | страница 3



Эта книга предлагает читателю нестандартный подход к понятию программирования. Она следует традиции, заложенной журналом “Paris Review”, когда-то пославшим двух преподавателей проинтервьюировать романиста Э. М. Форстера; впоследствии все подобные интервью были объединены в сборник “Writers at Work” (Писатели за работой).

Я беседовал с пятнадцатью в полной мере состоявшимися программистами, имеющими большой опыт работы: с такими гениями кода, как Кен Томпсон, создатель операционной системы UNIX, и Берни Козелл, участник первой реализации сети ARPANET; с программистами, сочетающими выдающиеся академические заслуги с невероятными практическими навыками, - Дональдом Кнутом, Гаем Стилом и Саймоном Пейтон-Джонсом; промышленными исследователями - Фрэн Аллен из IBM, Джо Армстронгом из Ericsson, Питером Норвигом из Google; с выпускниками научно-исследовательского центра Xerox PARC Дэном Ингаллсом и Л. Питером Дойчем; с разработчиками ранних версий Netscape Джейми Завински и Бренданом Айком; с участниками проектирования и реализации языков программирования, применяемых сегодня для построения веб-приложений, - тем же Айком, Дугласом Крокфордом и Джошуа Блохом; и наконец с Брэдом Фицпатриком, создателем Живого Журнала (Live Journal) и одним из способнейших программистов эпохи Интернета.

Я расспрашивал каждого из них о программировании: как они научились этому, что открыли, создавая программы, и что думают о будущем программирования. В частности, я старался направить разговор на темы, вечно актуальные для программистов: как нужно проектировать программное обеспечение? как выбор языка программирования влияет на продуктивность и позволяет избегать ошибок? можно ли облегчить выявление труднонаходимых ошибок?

Поскольку однозначные решения всех этих проблем пока не найдены, неудивительно, что ответы оказались довольно разными. Джейми Завински и Дэн Ингаллс подчеркивали важность запуска кода сразу после его написания, а Джошуа Блох говорил о проектировании API и тестов, помогающих кодировать до этапа реализации. Что касается Дональда Кнута, то он поведал, что сделал эскиз полной версии системы компьютерной верстки ТеХ еще до того, как написал первую строку кода. А вот разные мнения относительно языка Си. Фрэн Аллен считает, что язык Си - причина снижения интереса к компьютерным наукам в последние два десятилетия, а Берни Козелл называет Си “самой большой угрозой для безопасности современных компьютеров”. В то же время Кен Томпсон утверждает, что угрозы для безопасности создают сами программисты, а не языки, а Дональд Кнут считает указатели в Си “одним из самых потрясающих усовершенствований в нотации”, виденных им. Некоторые из моих собеседников высмеивали утверждение, будто формальные доказательства корректности помогают улучшить качество программ, но Гай Стил прекрасно проиллюстрировал их силу и в то же время ограниченность возможностей.