суббота, 25 декабря 2010 г.

"Пионеры программирования"

Дочитал наконец купленную ещё в сентябре книгу "Пионеры программирования". Это перевод вышедшей около полутора лет назад на английском "Masterminds of Programming". Формат её довольно занятен - это сборник интервью с авторами некоторых языков программирования. Да, английский вариант названия более корректен - пионерами мало кого из участников можно назвать.

Интервью сильно различаются между собой. Кто-то предаётся воспоминаниям, кто-то рассказывает практически о всей своей карьере, кто-то с увлечением рассказывает о планах (проработать 30 лет в этой богом проклятой отрасли и сохранить надежду на что-то - это по-моему подвиг). Многие философствуют на тему судьбы информатики и языков программирования... Журналисты аккуратно корректирую тему, в целом не могу оценить их работу ни как очень хорошую, ни как очень плохую. Наверно это как раз то впечатление, которое они хотели оставить. Мне как юному инженеру естественно в первую очередь были интересны рассказы о проектировании и реализации языков. Хотя что-то и на философские рассуждения я что-то становлюсь с годами падок. Тем более что технари умеют при случае сопроводить их логикой и результатами безжалостных экспериментов.

Всего в книге 26 интервью о 17 языках. Для порядка расскажу о некоторых наиболее запомнившихся.

Начинается книга с интервью Бьёрна Страуструпа. Надо сказать, я что не очень люблю C++, последнее время можно даже сказать активно не люблю. Но он всё-таки автор мастер обоснования, к концу главы я абсолютно чётко понимал что именно таким язык должен быть и иначе никак. На самом деле дядька вызывает уважение упорством и бесконечной изобретательностью в решении проблем. Из философии у него ряд интересных мыслей о проблемах образования. Большинство инженеров готовят как учёных. Оказывается дипломник, который впервые видит настоящего коллегу-программиста и живой проект обычное дело не только у нас.

Неожиданно мне очень понравилось интервью Чака Мура, автора Forth (вообще не представляю как он выглядит). Затрудняюсь выделить какие-то особые его мысли. Просто странное совпадение мироощущения, профессиональных приоритетов с моими собственными. Идея о важности глубокой модульности программ и близости их компонентов к мыслительным образам... В общем советую читать.

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

Ещё однозначно стоит упомянуть Брэда Кокса, одного из авторов Objective-C. Судя по поднимаемым им проблемам, он, в отличии от большинства опрашиваемых, годы после создания своего языка провёл не в уютной исследовательской лаборатории, а в самой гуще кровавого безумия энтерпрайза. Кажется как архитектор и немного менеджер. Он отмечает целый ряд грустных вещей в отрасли и как может предлагает решения. Во-первых это глубокое непонимание между академическими и промышленными организациями, отсутствие фундаментального решения насущных проблем и усердные раскопки в экзотических областях. Говорит он и о том, что разработка даже очень больших систем в даже очень серьёзных компаниях продолжает оставаться делом полукустарным. Отсутствует технология, отсутствуют доверие и как следствие глубокое разделение обязанностей. Ситуация, когда одни и те-же компании при создании продуктов занимаются всем от архитектуры процессора до формочек остаётся нормой. Кокс приводит замечательную аналогию с древними строителями, которые сами добывали глину и жгли кирпичи. Ведь и правда бегают архитекторы с мастерками!

Можно немного повинить авторов за то, что в книгу не попали по крайней мере три языка и человека, о которых очень хотелось бы услышать. Это Джон Мак Карти, автор LISP, языка до сих пор вызывающего бури эмоций как у стариков, так и у третьекурсников. Это Никлаус Вирт, пожалуй единственный человек сужающий, а не расширяющий языки. Ну и Дениса Ритчи тоже можно было привлечь, всё-таки популярнейший язык.

Не берусь подводить итог прочитанному - очень много различных взглядов не только на методы работы но и саму природу проблемы разработки языка да и программирования вообще. Но могу однозначно сказать что её прочтение стоит потраченного времени. А то и многократно окупается если вы также любите сложные задачи и красивые решения.