четверг, 26 января 2012 г.

Питер Сейбел "Кодеры за работой"



Аннотация

Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Берни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Джейми Завински, Саймона Пейтон-Джонса, Питера Норвига, Дугласа Крокфорда, Джошуа Блоха, Брендана Айка, Джо Армстронга, Брэда Фицпатрика, создателя Живого Журнала, и других.
Все они "подсели" на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.
Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.

Хорошая книга, для медленного чтения, по главе в день. Автор своё дело знает и почти везде где надо интервьюируемых дожимает, но некоторые места все же так и хочется откомментировать :)

Джейми Завински
...мы всегда выпускали версии под все платформы одновременно. Это решение они тоже считали глупым: "У 90% пользователей версии под Windows, так что мы сосредоточим усилия на работе версии под Windows, а позже портируем ее под остальные платформы". Так поступали многие компании, потерпевшие крах. ... Если вы действительно хотите выпускать кроссплатформенное решение, то разрабатывать всё нужно одновременно. А портирование приводит к паршивому результату на второй платформе.
...
Была и еще одна книга, которую все считали величайшим трудом своего времени: "Design Patterns". По-моему, отстой. Там учили программировать методом "вырезания и вставки".
Copy-paste идиом программирования . Есть такое подозрение, что "Design Patterns" ему Рабинович по телефону напел :))

Брендан Айк
Объектно-ориентированное програмиирование, шаблоны проектирования - это не для меня. Я так и не купил книгу Эриха Гаммы.
...
У меня страшная аллергия на всякого рода эзотерические решения, шаблоны проектирования, доступные немногим. Питер Норвиг, работая в Harlequin, сказал о том, что шаблоны проектирования - всего лишь дефекты в вашем языке. Возьмите язык получше!
Вот здесь хотелось бы по конкретнее. Есть, например, протокол, реализованный как State-машина на C++, берем более лучший язык и? состояния-то и переходы между ними ни куда не делись... Или более лучший - это со встроенной State-машиной? Непонятно...

Джошуа Блох
- Есть ли книги, которые должен прочесть каждый программист?
- Разумеется, "Design Patterns", хотя я отношусь к ней не совсем однозначно. Она дает общий для всех словарь. И в ней масса хороших идей. С другой стороны, мешанина стилей и языков.
Мешанины языков не заметил, а вот написана отвратительно, факт. Сейчас лучше брать сразу "Паттерны проектирования" Фрименов и Со

Джо Армстронг
Некоторые говорят: "Хотите знать, что делает программа? Читайте код". Думаю, это непрофессиональный подход. Код показывает мне, что программа делает, а не то, что она должна по идее делать. Код - это решение задачи. Если нет спецификации или какой-либо документации, приходится догадываться о задаче по решению. Догадка может быть неверной. Я хочу иметь объяснение - в чем состоит задача.
Вот это - Я хочу иметь объяснение - в чем состоит задача - отлить в граните и сбрасывать на каждый флейм про то нужны или нет комментарии.

Саймон Пейтон-Джонс
Самый угнетающий момент в жизни программиста - когда сталкиваешься с чужим кодом или, еще хуже, со своим и не находишь сил его переделать. Это угнетает.
Со своим - это да :(

Гай Стил
Если язык не умирает, он растет. Он всегда испытывает давление - нужны изменения, люди хотят изменить свой инструмент, чтобы он лучше решал их сегодняшние задачи, а не те, которые были у них лет пять назад.
Как и любая программа - пока жива, просят что-то поменять, как только замолчали - значит померла, никто больше не использует.

Берни Козелл
Впервые попробовав Java - еще совсем молодой тогда язык, - я сказал себе: "А, еще один язык, призванный помочь посредственным программистам встать на путь истинный, ограничивая их". Но, возможно, сейчас это и правильно.
...
Наверное, Си - идеальный язык для по настоящему хороших системных программистов, но увы, его много используют и программисты похуже, а не стоило бы.
...
После этого на планерках они спорили со мной: "Почему вы жалуетесь, что я прописал глобальные переменные здесь, что я делаю то-то и то-то, что вам не нравится моя структура подпрограмм? Программа же работает?"
Их удивлению не было предела, когда я отвечал: "Конечно, программа работает. Вас взяли сюда именно потому, что вы умеете писать работающие программы. Написание программ - чисто ремесленный навык, и у вас он есть. А теперь вам нужно научиться программировать."
Как я до сих пор никому не дал в лоб за вот это Программа же работает?, просто поражаюсь :) своему ангельскому терпению

Дональд Кнут
Я узнал очень много нового, пока работал над этим проектом. В частности узнал, как много ресурсов вашего мозга съедает разработка ПО. Это оказалось намного более сложным заданием, чем я ожидал. Я не мог одновременно преподавать на полную ставку и полноценно заниматься разработкой ПО. Но я мог преподавать на полную ставку и полноценно заниматься написанием книг; ПО же требовало невероятного внимания к мельчайшим деталям. Мой мозг был забит только программным обеспечением, так что я не мог думать ни о чем другом.
Про съедение мозга дедушка Кнут заметил архиверно :(

Ну и отдельное спасибо товарищам maniac, Алёна C++ и sergeyteplyakov, которые сделали так, что книгу битком набитую программистским жаргоном можно без содрогания (и даже более того) читать на русском.

Комментариев нет:

Отправить комментарий