Кодеры за работой. Размышления о ремесле программиста - [2]

Шрифт
Интервал

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

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

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

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

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

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

В заключение о названии книги: мы назвали ее “Кодеры за работой” по аналогии с уже упомянутой серией “Писатели за работой” журнала “Paris Review” и книгой “Founders at Work” (Учредители за работой) издательства Apress, которая применяет к основанию технологической компании примерно тот же подход, какой эта книга пытается применить к компьютерному программированию.

Я пониманию, что “кодирование” - лишь часть более широкого понятия “программирование”. И всегда верил, что нельзя быть хорошим кодером, не являясь при этом хорошим программистом, или быть хорошим программистом, не являясь хорошим проектировщиком, общительным и думающим человеком. Разумеется, на страницах книги поднимаются все эти, а также многие другие вопросы. Не сомневаюсь, что обсуждения, которые вы собираетесь прочитать, прекрасно это отражают. Приятного чтения!

1. Джейми Завински

Лисп-хакер[2], один из первых разработчиков Netscape и владелец ночного клуба, Джейми Завински (Jamie Zawinski, JWZ) принадлежит к той избранной группе хакеров, которых узнают как по настоящим именам, так и по трехбуквенным инициалам.


Рекомендуем почитать
«Мы жили обычной жизнью?» Семья в Берлине в 30–40-е г.г. ХХ века

Монография посвящена жизни берлинских семей среднего класса в 1933–1945 годы. Насколько семейная жизнь как «последняя крепость» испытала влияние национал-социализма, как нацистский режим стремился унифицировать и консолидировать общество, вторгнуться в самые приватные сферы человеческой жизни, почему современники считали свою жизнь «обычной», — на все эти вопросы автор дает ответы, основываясь прежде всего на первоисточниках: материалах берлинских архивов, воспоминаниях и интервью со старыми берлинцами.


Последовательный диссидент. «Лишь тот достоин жизни и свободы, кто каждый день идет за них на бой»

Резонансные «нововзглядовские» колонки Новодворской за 1993-1994 годы. «Дело Новодворской» и уход из «Нового Взгляда». Посмертные отзывы и воспоминания. Официальная биография Новодворской. Библиография Новодворской за 1993-1994 годы.


О чем пьют ветеринары. Нескучные рассказы о людях, животных и сложной профессии

О чем рассказал бы вам ветеринарный врач, если бы вы оказались с ним в неформальной обстановке за рюмочкой крепкого не чая? Если вы восхищаетесь необыкновенными рассказами и вкусным ироничным слогом Джеральда Даррелла, обожаете невыдуманные истории из жизни людей и животных, хотите заглянуть за кулисы одной из самых непростых и важных профессий – ветеринарного врача, – эта книга точно для вас! Веселые и грустные рассказы Алексея Анатольевича Калиновского о людях, с которыми ему довелось встречаться в жизни, о животных, которых ему посчастливилось лечить, и о невероятных ситуациях, которые случались в его ветеринарной практике, захватывают с первых строк и погружают в атмосферу доверительной беседы со старым другом! В формате PDF A4 сохранен издательский макет.


Дедюхино

В первой части книги «Дедюхино» рассказывается о жителях Никольщины, одного из районов исчезнувшего в середине XX века рабочего поселка. Адресована широкому кругу читателей.


На пути к звездам

Из этой книги вы узнаете о главных событиях из жизни К. Э. Циолковского, о его юности и начале научной работы, о его преподавании в школе.


Вацлав Гавел. Жизнь в истории

Со времен Макиавелли образ политика в сознании общества ассоциируется с лицемерием, жестокостью и беспринципностью в борьбе за власть и ее сохранение. Пример Вацлава Гавела доказывает, что авторитетным политиком способен быть человек иного типа – интеллектуал, проповедующий нравственное сопротивление злу и «жизнь в правде». Писатель и драматург, Гавел стал лидером бескровной революции, последним президентом Чехословакии и первым независимой Чехии. Следуя формуле своего героя «Нет жизни вне истории и истории вне жизни», Иван Беляев написал биографию Гавела, каждое событие в жизни которого вплетено в культурный и политический контекст всего XX столетия.