Введение
Введение
Если не считать работу, проделанную Адой Лавлейс — аристократкой XIX века, которая придумала программы для так и не законченной «Аналитической машины» Чарльза Бэббиджа, — компьютерное программирование как область человеческой деятельности появилось совсем недавно: Конрад Цузе представил свой электромеханический компьютер Z3, первую работающую вычислительную машину общего назначения, в 1941 году, всего 68 лет назад. И всего 64 года прошло с тех пор, как шесть женщин — Кей Антонелли, Джин Бартик, Бетти Холбертон, Мартин Мельцер, Фрэнсис Спенс и Рут Тейтельбаум, — служивших в американских «вычислительных войсках» и составлявших вручную баллистические таблицы, были привлечены к созданию программ для ЭНИАК — первого электронного цифрового компьютера общего назначения. Среди ныне живущих многие — старшие представители поколения «бэби-бума»[1] и все родители «бэби-бумеров» — увидели свет, когда в мире не было ни одного программиста.
Теперь, разумеется, все иначе. Программисты заполонили все вокруг. Согласно данным американского Бюро трудовой занятости, в 2008 году в США примерно один из каждых 106 работников — всего более 1,25 млн человек — был разработчиком программного обеспечения или инженером-программистом. Это не считая профессиональных программистов за пределами США, студентов и программистов-любителей, а также тех, кто официально занимается чем-то другим, но тратит сколько-то времени — порой даже много времени — на то, чтобы подчинить компьютер своей воле.
И хотя написанием программ занимались и занимаются миллионы человек, хотя миллиарды, даже триллионы строк кода уже написаны, кажется, будто само понятие «программист» непрерывно уточняется с течением времени. Все еще идут споры о том, к какой области относится программирование — к математике или к инженерной деятельности. Ремесло, искусство или наука? Конечно же, идут споры, зачастую ожесточенные, по поводу лучших способов программирования: Интернет полон сообщений в блогах и форумах, посвященных тому или иному способу написания кода. Книжные магазины набиты книгами о новых языках программирования, новых методах, новых попытках осмыслить задачи программирования.
Эта книга предлагает читателю нестандартный подход к понятию программирования. Она следует традиции, заложенной журналом «Paris Review», когда-то пославшим двух преподавателей проинтервьюировать романиста Э. М. Форстера; впоследствии все подобные интервью были объединены в сборник «Writers at Work» (Писатели за работой).
Я беседовал с пятнадцатью в полной мере состоявшимися программистами, имеющими большой опыт работы: с такими гениями кода, как Кен Томпсон, создатель операционной системы UNIX, и Берни Козелл, участник первой реализации сети ARPANET; с программистами, сочетающими выдающиеся академические заслуги с невероятными практическими навыками, — Дональдом Кнутом, Гаем Стилом и Саймоном Пейтон-Джонсом; промышленными исследователями — Фрэн Аллен из IBM, Джо Армстронгом из Ericsson, Питером Норвигом из Google; с выпускниками научно-исследовательского центра Xerox PARC Дэном Ингаллсом и Л. Питером Дойчем; с разработчиками ранних версий Netscape Джейми Завински и Бренданом Айком; с участниками проектирования и реализации языков программирования, применяемых сегодня для построения веб-приложений, — тем же Айком, Дугласом Крокфордом и Джошуа Блохом; и наконец с Брэдом Фицпатриком, создателем Живого Журнала (Live Journal) и одним из способнейших программистов эпохи Интернета.
Я расспрашивал каждого из них о программировании: как они научились этому, что открыли, создавая программы, и что думают о будущем программирования. В частности, я старался направить разговор на темы, вечно актуальные для программистов: как нужно проектировать программное обеспечение? как выбор языка программирования влияет на продуктивность и позволяет избегать ошибок? можно ли облегчить выявление труднонаходимых ошибок?
Поскольку однозначные решения всех этих проблем пока не найдены, неудивительно, что ответы оказались довольно разными. Джейми Завински и Дэн Ингаллс подчеркивали важность запуска кода сразу после его написания, а Джошуа Блох говорил о проектировании API и тестов, помогающих кодировать до этапа реализации. Что касается Дональда Кнута, то он поведал, что сделал эскиз полной версии системы компьютерной верстки ТеХ еще до того, как написал первую строку кода. А вот разные мнения относительно языка Си. Фрэн Аллен считает, что язык Си — причина снижения интереса к компьютерным наукам в последние два десятилетия, а Берни Козелл называет Си «самой большой угрозой для безопасности современных компьютеров». В то же время Кен Томпсон утверждает, что угрозы для безопасности создают сами программисты, а не языки, а Дональд Кнут считает указатели в Си «одним из самых потрясающих усовершенствований в нотации», виденных им. Некоторые из моих собеседников высмеивали утверждение, будто формальные доказательства корректности помогают улучшить качество программ, но Гай Стил прекрасно проиллюстрировал их силу и в то же время ограниченность возможностей.
Кое с чем, однако, согласны все. Так, почти каждый настаивает на важности написания хорошо читаемого кода; большинство считают самыми трудноуловимыми ошибки в коде с параллельными вычислениями; никто не думает, что все проблемы программирования решены, — многие все еще ищут новые пути к разработке программного обеспечения с помощью автоматического анализа кода, улучшения организации совместной работы программистов или путем использования (или создания) более эффективных языков программирования. Однако практически все согласны, что вездесущие многоядерные процессоры серьезно повлияют на процесс разработки программ.
Эти разговоры отражают состояние данной области на определенном этапе, и, конечно, отдельные вопросы, затронутые в книге, с течением времени станут представлять лишь исторический интерес. Но даже в такой молодой области, как программирование, история сможет многому нас научить. Кроме того, думаю, все поднятые в книге темы раскрывают глубинный смысл того, что же такое разработка программного обеспечения, как мы можем лучше создавать его и что будет полезно программисту сегодня и через несколько поколений.
В заключение о названии книги: мы назвали ее «Кодеры за работой» по аналогии с уже упомянутой серией «Писатели за работой» журнала «Paris Review» и книгой «Founders at Work» (Учредители за работой) издательства Apress, которая применяет к основанию технологической компании примерно тот же подход, какой эта книга пытается применить к компьютерному программированию.
Я пониманию, что «кодирование» — лишь часть более широкого понятия «программирование». И всегда верил, что нельзя быть хорошим кодером, не являясь при этом хорошим программистом, или быть хорошим программистом, не являясь хорошим проектировщиком, общительным и думающим человеком. Разумеется, на страницах книги поднимаются все эти, а также многие другие вопросы. Не сомневаюсь, что обсуждения, которые вы собираетесь прочитать, прекрасно это отражают. Приятного чтения!
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
ВВЕДЕНИЕ
ВВЕДЕНИЕ Русскому народу история отвела роль первопроходца. На протяжении многих сотен лет русские открывали новые земли, обживали их и преображали своим трудом, отстаивали с оружием в руках в борьбе с многочисленными врагами. В итоге русскими людьми были заселены и
4.1 ВВЕДЕНИЕ.
4.1 ВВЕДЕНИЕ. Шаг вперед, два шага назад и новое мышлениеМы не можем избавиться от прошлого, от нашей истории. Это — наши узы человеческие. Всю жизнь мы, советские люди, изучали главы коммунистической библии, ветхие и новые заветы, основополагающие труды Владимира Ленина,
ВВЕДЕНИЕ
ВВЕДЕНИЕ Однажды мне сказали, что бывший танкист-гвардеец Иван Аверьянович Старостин, к которому я ходил записывать фронтовые истории, встречался с Лидией Андреевной Руслановой, что слушал её концерт в 1943 или 1944 году. Иван Аверьянович прошёл всю войну от Ржева до
Введение
Введение Всеволод Михайлович Гаршин, любимый писатель русской интеллигенции восьмидесятых годов, — одна из самых трагических фигур эпохи безвременья, черной эпохи всемогущего ханжи и мракобеса Победоносцева и его венценосного покровителя, тупого жандарма Александра
Введение
Введение Обычные суждения о Свифте. – Портрет Свифта. – Пылкость и рассудительность. – Надгробная надпись на его могиле. – Saeva indignatio и virilis libertas как основные черты его характера, деятельности, произведений.Кто не читал, по крайней мере в дни детства и юности,
Введение
Введение Биографические сведения о Данте очень и очень скудны. Главным источником и пособием для биографа гениального творца «Божественной Комедии» являются прежде всего собственные его сочинения: сборник «Vita Nuova» («Новая Жизнь») и его великая поэма. Тут можно
ВВЕДЕНИЕ
ВВЕДЕНИЕ В этой книге предпринимается попытка проследить пути компьютерного андеграунда и воссоздать, основываясь на реальных фактах, картину киберпанк-культуры. Это причудливая смесь современнейших технических знаний с моралью изгоев. Как правило, в книгах о
ВВЕДЕНИЕ
ВВЕДЕНИЕ Я написал эту книгу.Зачем?На этот простой вопрос нет простого ответа. Многие подумают: кому могут быть интересны события, даже не совсем банальные, жизни одного человека во время самой кровопролитной в истории человечества войны, в которой было убито 50 миллионов
ВВЕДЕНИЕ
ВВЕДЕНИЕ Искусство — это та могучая сила, которая во все времена объединяет народы в их общем стремлении к прекрасному. Иногда искусство воплощается в монументальных творениях, как правило, безымянных, иногда в произведениях, созданных одним творцом, таким, как Рубенс,
Введение
Введение Первые слова – это слова благодарности тем людям, которые помогали мне в работе над этой книгой и вдохновляли на труд. Это, прежде всего, мои учителя, и, в первую очередь, И. Ф. Бэлза, блестящий исследователь творчества М. А. Булгакова, выдающийся исследователь
Введение
Введение Посмертный успех Стига Ларссона и его цикла «Миллениум» достиг беспрецедентного уровня, а мировые тиражи его книг исчисляются миллионами. Пришло время воздать должное жизни и работе этого интересного, отважного, но склонного к саморазрушению человека.
Введение
Введение Биография Бэкона не будит в душе нашей никаких возвышенных чувств, не вызывает ни умиления, ни благоговения. Мы проникаемся только холодным почтением к его умственным силам и стараемся отдать ему справедливость за оказанные человечеству услуги. Услуги эти
Введение
Введение Немного найдется писателей, которые оказали бы такое глубокое и плодотворное влияние на своих современников, на монархов и государственных деятелей, на последующие поколения и даже на положительное законодательство почти всех стран Европы, какое, несомненно,
Введение
Введение «Ничто я не люблю так, как процесс воспоминаний и сами воспоминания», – написал в 1984 г. Жак Деррида, повествуя о своем близком друге, умершем незадолго до этого, философе Поле де Мане. В то же время Деррида признался: «Я никогда не умел рассказывать истории». Эти
ВВЕДЕНИЕ
ВВЕДЕНИЕ Семейными династиями в царской дипломатии никого не удивить — особенно много их появилось в XIX веке, и особенно часто мы их встречаем среди остзейских немцев[1]. Но чтобы целое семейство дипломатов — и каких! — появилось уже во времена и при жизни Петра I, да ещё