Книга Брайана Кернигана «Время Unix. A History and a Memoir»
чтобы нанять хороших специалистов, убедиться,
что у них есть интересные темы для разработки,
понаблюдать за ними, а потом отойти.
Пару месяцев назад, просматривая книжные новинки, я обратил внимание на книгу под названием «Время Unix. A History and a Memoir». Одно то, что это книга по истории софтостроения, было бы достаточно, чтобы я ее купил, а тут еще и автор книги — Брайан Керниган. У нас в России он известен как один из авторов учебника по языку Си, написанного в соавторстве с Деннисом Ритчи — автором языка языка Си. Но помимо этого достижения Керниган является одним из программистов, работавших в Bell Labs в том числе и над операционной системой Unix в 1970-х годах. Правда, не над ядром этой операционной системы, но, например, он был соавтором языка AWK, предназначенного для обработки текста (AWK — это сокращение из первых букв фамилий авторов, «K» обозначает «Kernighan»). Разумеется, проигнорировать книгу, в которой рассказывается о легендарной операционной системе от лица непосредственного участника тех событий, я не мог. Кстати, на тему истории Unix-подобных операционных систем я когда-то давно писал пост История UNIX-систем.
А теперь о самой книге. Сразу скажу о ее главном недостатке — она быстро заканчивается, в ней всего чуть больше 200 страниц, а написана она настолько легким и веселым языком, что время за ее чтением пролетает незаметно. В то же время приятно, что технические подробности написаны аккуратно, хоть и упрощенно, поскольку книга не является технической документацией и предназначена для широкого круга читателей. При этом небольшие куски кода в книге присутствуют, а автор, как бы извиняясь за это, в начале глав иногда предупреждает, что если вас не интересуют технические подробности, то можете пропустить пару абзацев. В итоге книга получилась не только историческая, но и немного техническая. Например, там рассказывается, как появились конвейеры (pipes) в Unix, что по изначальной задумке Дуг Макилрой предложил добавить возможность соединять между собой программы не просто в линейную последовательность, а это соединение должно было быть разветвленным, что-то вроде сетки. Но было непонятно, как описывать такое соединение.
Основной временной интервал, который охватывает книга — это конец 1960-х — начало 1980-х годов, а потом коротко говорится о последующих операционных системах, которые были созданы вне стен Bell Labs, но на основе Unix. Эта книга рассказывает о софте и людях, которые его писали. Многие разделы посвящены отдельным утилитам, входящим в состав Unix (например, grep, sed, awk, make), а также тем, кто их разрабатывал и с какой целью, как потом развивались эти программы. Очень заманчиво Керниган описывает рабочую атмосферу, которая царила в Bell Labs. Это прям идеальное место для работы, когда тебе платят зарплату за то, что ты занимаешься тем, что интересно тебе, и не нужно писать оправдательные бюрократические отчеты о том, почему именно этим ты занимаешься. От подобных исследований Bell Labs получала множество патентов.
Что особенно понравилось в книге — это огромное количество фотографий, как старой техники, так и людей, о которых рассказывается. Такой «галереи славы» не хватает во многих исторических и библиографических книгах. Не знаю кто как, а я лучше запоминаю героев книг, когда есть их портреты.
Как вы уже, наверное, поняли, книга мне понравилась. Было интересно прочитать про то, как создавались в 1970-х годах программы, которые используются до сих пор. Да и почитать про известных ученых и разработчиков было любопытно. Например, в книге упоминаются Денис Ритчи (создатель языка Си), Дик Хэмминг (код Хэмминга, расстояние Хэмминга), Кен Томпсон (оказывается, кроме всего прочего он участвовал в создании языка Go, а в начале 1990-х годов приезжал в Россию, чтобы полетать на самолете МиГ-29), Бьерн Страуструп (создатель C++) и многие другие.
Заодно книга позволяет неплохо прокачать знания того, кто какую технологию предложил. Например, из этой книги я узнал, что кодировку UTF-8 создали Кен Томпсон и Роб Пайк в 1992 году, когда разрабатывали операционную систему Plan 9, в которой использовался Unicode.
Или вот, например, сейчас заглянул в Википедию, чтобы поподробнее почитать про Plan 9 и увидел эмблему этой операционной системы (см. ниже). Эта картинка мне сразу напомнила маскот языка Go. Причем и там, и там в разработке участвовал Кен Томпсон. Как вы думаете, это совпадение?
В общем, всем любителям истории техники и особенно истории IT, книгу всячески рекомендую.
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
Leave a comment