Кодеры за работой. Размышления о ремесле программиста
Шрифт:
Сейбел: Если бы вам было 13 лет, вы бы увлеклись программированием - тем, каким оно стало сегодня?
Завински: Трудно сказать. Я не знаю сегодняшних тринадцатилетних, не знаю, как для них выглядит этот мир. Во всем этом стало сложнее разбираться. Нынешний десятилетний мальчишка не станет курочить свой мобильник, чтобы понять устройство микрофона, как я ребенком делал это со своим телефоном. Сегодня уже ничего не починишь самостоятельно.
Думаю, я пришел к программированию благодаря исследованиям вроде этого: снять крышку магнитофона и посмотреть, как крутятся шестеренки. А сегодня есть только наборы LEGO для создания роботов.
Сейбел: С другой стороны, программирование стало гораздо доступнее. Вам уже не нужно осваивать все премудрости ассемблера, прежде чем заставить компьютер делать что-то классное.
Завински: Да. Наверное, современные ребята, которые сегодня учатся программированию, начинают с создания веб-приложений, разработки плагинов для Facebook и тому подобного. Брэд Фицпатрик, создатель Живого Журнала (LiveJournal), - мой друг. LiveJournal родился, когда он просто валял дурака и написал скрипт на Perl, чтобы вместе с друзьями сообщать друг другу что-то вроде “Я собираюсь пообедать”. Все началось с небольшого скрипта на Perl, который он затем поместил на веб-сервер. Вероятно, это направление будет развиваться и дальше.
2. Брэд Фицпатрик
Брэд Фицпатрик - самый молодой из моих собеседников и единственный, кто никогда не жил в мире без Интернета или персональных компьютеров. Родился в 1980 году, очень рано занялся программированием - уже в пять лет стал учиться программировать на самодельной копии Apple II. Когда Брэд был подростком, интернет-революция уже развернулась в полную мощь, и он принял в ней активное участие: в старших классах разработал свой первый коммерческий веб-сайт, а летом перед поступлением в колледж начал работу над популярным сообществом LiveJournal (Живой Журнал).
Работа с Живым Журналом, популярность которого стремительно росла, заставила Фицпатрика освоить трудную науку создания расширяемых веб-сайтов. Попутно он вместе с другими программистами основанной им компании Danga Interactive разработал несколько программ с открытым кодом, таких как memcached, Perlbal и MogileFS, которые сегодня применяются на серверах, обслуживающих самые загруженные в мире сайты.
Фицпатрик - типичный (пусть и добившийся необычайных успехов) программист рубежа двух столетий: его основными языками программирования были Perl и Си, хотя при необходимости он работал и с такими языками, как Java, C++, Python, JavaScript и C#. Так или иначе, с сетями связано почти все, что он программирует, - более совершенная инфраструктура веб-сайта, новые протоколы и ПО для лучшего учета записей при обновлении блогов, свой мобильный телефон на автоматическое открытие гаражной двери во время мотоциклетного заезда.
Мы говорили о том, как это - учиться программировать, когда еще читаешь книжки про Красного щенка Клиффорда, и почему Брэд рад, что остался учиться в колледже, одновременно работая над Живым Журналом, и о том, как он научился не бояться читать чужой код.
Сейбел: Как вы стали программистом?
Фицпатрик: Мой отец работал в компании Mostek, выпускавшей компьютерную память, и был увлечен компьютерами. Он собрал Apple II практически из запасных частей. Помню, как они с мамой месяцами сидели перед телевизором, собирая его по кускам.
Сейбел: Он занимался программированием или разработкой железа?
Фицпатрик: Он инженер-электротехник, а программирование - его хобби. Он научил меня программировать, когда мне было пять лет, и шутил, что я заткнул его за пояс лет в шесть или семь. Мама говорит, что я читал библиотечное руководство по программированию Apple II одновременно с книжками про Красного щенка Клиффорда. Вместо “переменные” я говорил “драгоценные”. Программирование вместе с отцом - одно из первых воспоминаний в моей жизни. Как он затащил меня в кухню, написал на листке бумаги какой-то код и спросил: “Как думаешь, что делает эта программа?” Там было что-то вроде 10 PRINT HELLO, 20 GOTO 10.
Сейбел: Итак, вы начинали с Бейсика?
Фицпатрик: Да, это был Бейсик. Я не мог работать с мышью, графическими режимами с высокими разрешением и цветами, пока один из друзей нашей семьи не познакомил меня с языком Си и не установил для меня Turbo С. Мне было лет восемь или десять. Отец перешел в Intel в 1984, и мы переехали в Портленд. Он участвовал в разработке процессоров i386 и i486. Отец до сих пор в Intel, и у нас всегда новые классные компьютеры.
Сейбел: Программировали ли вы когда-либо на ассемблере?
Фицпатрик: Да, я немного писал на ассемблере для калькулятора, вроде тех калькуляторов Texas Instruments с процессорами Z80.
Сейбел: Помните, чем вас привлекло программирование?
Фицпатрик: Не знаю. Это всегда было весело. Мама выгоняла меня из-за компьютера, выдавала мне купоны для работы за компьютером, лишь бы я шел на улицу поиграть с друзьями. Друзья говорили: “Опять Брэд за компьютером, вот зануда”. А мама: “Иди погуляй”.
Сейбел: Помните первую интересную программу, написанную вами?
Фицпатрик: У нас был принтер фирмы Epson, а к нему прилагались огромные толстые руководства с разделом для программистов в конце. Я писал что-то (еще на компьютере Apple) для рисования графики с высоким разрешением, и когда моя программа заканчивала рисовать линии, узоры или еще что-то, я нажимал Ctrl-C. Все это в фоновом режиме сохранялось в неотображаемом кадровом буфере, после чего я загружал другую свою программу, которая читала изображение с экрана и распечатывала его.
А еще раньше я написал программу, которая позволяла мне печатать, как на пишущей машинке: при каждом нажатии клавиши головка принтера перемещалась, а при нажатии backspace двигалась назад.
Одна из первых моих программ делала примерно следующее: сравниваю значение переменной К со следующим введенным символом. Если К = а, вывожу на экран значение а, если К = b - значение Ь. Я добавил условия для каждой буквы и для большинства знаков препинания. Но в какой-то момент понял: “Стоп, я же могу просто написать: „вывести на экран значение переменной"”, - и заменил 40 строк кода одной. Я подумал: “Черт, это же здорово!” Неплохое обобщение для шестилетнего.