Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста
- Название:Кодеры за работой. Размышления о ремесле программиста
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2011
- Город:Санкт-Петербург
- ISBN:978-5-93286-188-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста краткое содержание
Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они “подсели” на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.
Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.
Кодеры за работой. Размышления о ремесле программиста - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Сейбел:На каком-то этапе вы также работали и над почтовым клиентом, да?
Завински:Когда мы работали над версией 2.0, Марк зашел в мой отсек и сказал: “Нам нужен почтовый клиент”. Я ответил: “Отлично, я уже работал над почтовыми клиентами”. Я тогда жил в Беркли и несколько недель почти не появлялся в офисе - сидел часами в кафе и набрасывал что-то, пытаясь выяснить, чего же хочу от почтовой программы. Я делал списки, что-то из них вычеркивал, думая, когда же приду к чему-нибудь. Как должен выглядеть пользовательский интерфейс?
И вот я вернулся на работу и стал писать код. Потом Марк снова зашел и сказал: “Мы тут взяли еще одного парня, он занимался почтовыми клиентами. Будете работать вместе”. Это был Терри Вейссман, просто фантастический человек - мы прекрасно сработались. И совсем в другом ключе, по сравнению с работой над броузером на ранней стадии.
Мы совсем не кричали друг на друга. Просто не представляю, как можно было так работать, да и вообще, работал ли так хоть кто-нибудь еще. Мы распределили свою работу следующим образом. Я делал набросок дизайна и начинал понемногу писать код, и раз в несколько дней мы смотрели на список задач и говорили друг другу: “Я буду работать над этим. - А я над этим”. И расходились.
Мы сохраняли код в репозитории и встречались снова. Он говорил: “Ладно, я с этим разобрался, а ты что делаешь?!” - “Работаю вот над этим”. - “Хорошо, тогда я займусь вон тем”. Так мы в некотором роде делили задачи между собой, и все шло превосходно.
Бывали и разногласия. Я предложил добавить фильтрацию на уровне папок, поскольку у нас не было времени сделать это как следует. Он сказал: “Нет-нет, я правда думаю, что мы должны сделать все как надо”. А я: “Да у нас же нет времени!” Но он все сделал той же ночью.
Еще кое-что: мы с Терри виделись редко - он жил в Санта-Крус, я в Беркли. До работы нам было ехать примерно одинаково, но с разных сторон. А поскольку по работе нам нужно было общаться только между собой, то мы договаривались так: “Если ты согласен, чтобы я не приезжал, то и я согласен, чтобы ты не приезжал”. - “Давай”.
Сейбел:Вы вдвоем много переписывались по электронной почте?
Завински:Да, постоянно. Это было еще до эры мгновенных сообщений (Instant messenger, IM) - сейчас, конечно, мы бы прибегли именно к ним, потому что постоянно слали друг другу электронные письма. И переговаривались по телефону.
Итак, мы выпустили версию 2.0 с почтовым клиентом, хорошо принятую пользователями. Потом мы работали над версией 2.1, и я уже начал думать, что работа подходит к концу, но это оказался один из случаев, когда мы так и не смогли выпустить версию с первого раза. Мы с Терри были уже на полпути, когда зашел Марк и сказал: “Мы покупаем такую-то компанию. И там разрабатывают почтовый клиент, похожий на ваш”. Я ответил: “Да, хорошо, но у нас уже есть такая программа”. Он пояснил: “Понятно, но мы растем очень быстро, и нам все труднее нанимать на работу хороших людей. Иногда можно их нанять, купив другую, хорошо знакомую компанию”. - “Ладно. Чем они будут заниматься?” - “Работать над вашим проектом”. - “Черт, тогда я займусь чем-нибудь другим”.
И как только Netscape купила эту компанию (которая называлась Collabra), нас с Терри отдали под их руководство. Эта компания выпускала почтовый клиент, во многом очень похожий на наш, за исключением того, что он работал только под Windows и потерпел полный крах на рынке.
А потом им крупно повезло - их купила компания Netscape. После чего Netscape передала бразды правления этой компании. Но вместо того чтобы отвечать только за почтовую программу, они оказались во главе всего подразделения по разработке клиентской части. Мы с Терри работали над Netscape 2.1, когда это произошло и начался процесс переписывания. Тогда стало понятно, что Netscape 3.0 будет выпущен слишком поздно, и наша версия 2.1 превратилась в версию 3.0, потому что нужно было выпустить на рынок основную версию.
А потом версия 3.0, над которой они начали работу, стала версией 4.0, которая, как вы знаете, стала одной из самых больших неудач в области программных разработок. Главным образом это и погубило компанию. Она умирала долго, но это было неотвратимо. Процесс переписывания был инициирован новоприобретенной компанией, которая ничего особенного не добилась, пренебрегла всей нашей работой и нашими достижениями, а сразу же начала страдать синдромом второй системы и потянула нас ко дну.
Они полагали, что, оказавшись у руля, просто обязаны поступать по-своему. Но когда они делали это по-своему в своей компании, они провалились. И когда люди, добивавшиеся успеха, говорили им: “Послушайте, правда, не используйте C++, не используйте потоки”, они отвечали: “О чем вы говорите? Вы ничего не понимаете”.
Именно такие решения, как отказ от C++ и использования потоков, позволили нам выпустить продукт вовремя. Другой важной составляющей было то, что мы всегда выпускали версии под все платформы одновременно. Это решение они тоже считали глупым: “У 90% пользователей установлена Windows, так что мы сосредоточим усилия на работе версии под Windows, а позже портируем ее под остальные платформы”. Так поступали многие компании, потерпевшие крах. Если вы собираетесь выпускать кроссплатформенный продукт, то история показывает, как именно не следует поступать. Если вы действительно хотите выпускать кроссплатформенное решение, то разрабатывать все нужно одновременно. А портирование приводит к паршивому результату на второй платформе.
Сейбел:Версия 4.0 создавалась с нуля?
Завински:Ну, не то чтобы совсем с нуля, но в итоге они переписали каждую строку кода. И использовали C++ с самого начала. Я боролся против этого изо всех сил и, черт возьми, был прав. Все стало распухать, появились проблемы с совместимостью, потому что когда пишешь на C++, невозможно прийти к согласию, какие именно 10% языка можно безопасно использовать. Кто-нибудь говорит: “Мне нужны шаблоны”, а затем выясняется, что нет двух компиляторов, которые реализуют шаблоны одинаково.
А когда весь опыт написания кода говорит о том, что мультиплатформенный код означает работу и под Windows 3.1, и под Windows 95, вы даже не представляете, насколько это важно. Поэтому разработка версии под UNIX (к счастью, это была уже не моя проблема) стала настоящим кошмаром, как и разработка версии для Мака. Это означало, что стал невозможным выпуск под старые версии Windows, такие как Win16. Пришлось сокращать количество поддерживаемых платформ. Может быть и пришло время так поступить, но причины были ни к черту. В этом не было необходимости.
Может показаться, что это мой горький, сугубо личный взгляд на вещи, будто мы с Терри создали великолепную штуку и теперь наказаны за свой успех, а в качестве наказания нами управляют идиоты. То время в Netscape стало несчастьем для меня. Начался период, когда я оставался в компании, ожидая, когда Netscape перейдет в другие руки.
Читать дальшеИнтервал:
Закладка: