Последние десять прочитанных мною книг

28 января 2013

Предлагаю вашему вниманию список из последних десяти книг, которые я прочитал. Надеюсь, что найдется несколько человек, которые сочтут этот материал интересным. Напоминаю, что я стал намного больше читать после того, как избавился от машины и перешел на общественный транспорт.

Язык программирования DЯзык программирования D
Александреску A.

В нескольких словах язык программирования D можно описать, как годный, хорошо продуманный C++ с автоматическим управлением памятью (не на счетчиках ссылок), правильной многопоточностью (модель акторов), нормальным метапрограммированием, элементами функционального программирования и прочим. Также в языке предусмотрены поддержка классической многопоточности с потоками/мьютексами и небезопасные операции типа ручного управления памятью, использования ассемблерных инструкций и тп. Эти небезопасные операции отключаются с помощью атрибута модуля @safe. В результате получаем правильную Java.

Несмотря на название, книга повествует о языке D2, который имеет существенные отличия от первой версии языка D. Также русскоязычное издание имеет целые параграфы, написанные переводчиками, с описанием новых возможностей языка, которые не были упомянуты в оригинальной книге.

MongoDB в действииMongoDB в действии
Бэнкер К.

Хорошая книга о MongoDB. Будет интересна как программистам, так и системным администраторам (вопросам администрирования посвящена отдельная глава, плюс есть приложение об установке). Книга написана простым и понятным языком. Возможно, даже слишком понятным. Иной раз совершенно тривиальные вещи разжевываются на протяжении нескольких страниц. С другой стороны, некоторые тонкие моменты оставлены без должного внимания. Например, я так и не смог понять, где в MongoDB работает процесс, отвечающий за перебалансировку данных.

Программирование в ErlangПрограммирование в Erlang
Чезарини Ф., Томпсон С.

Мне эта книга показалась какой-то больно сложной для восприятия. Не столько из-за Erlang‘а, сколько из-за самого текста книги. Я не удосужился ознакомиться с оригинальным текстом, так что не могу сказать, это книга такая или переводчики отожгли.

Однако радует полнота изложения. В книге подробнейшим образом описываются и Dialyzer, и Mnesia, и трассировщик dbg, и горячее обновление кода, и взаимодействие с другими языками программирования, и даже wxErlang. Мне кажется, эта книга для тех, кто уже немного знаком с Erlang и хотел бы заполнить пробелы в знаниях.

Hadoop в действииHadoop в действии
Лэм Ч.

Книга доступно объясняет, что такое MapReduce и причем тут Hadoop. Содержит много интересных примеров, есть даже отдельная глава об использовании Hadoop в New York Times, China Mobile, StumbleUpon и проекте IBM ES2. Есть главы, посвященные Pig и Hive, администрированию Hadoop, а также эксплуатации Hadoop в облачных сервисах Amazon’а. Помимо всего этого в книге также приводятся отрывки страшного ООП-кода на Java.

В общем, это действительно исчерпывающая книга о Hadoop. И, кажется, это первая книга издательства ДМК-Пресс, которая не пришла в непотребный вид после первого ее прочтения. То ли это я, умудренный опытом, не раскрывал страницы шире, чем на 90°, то ли книги стали нормальные.

Разработка высоконагруженных системРазработка высоконагруженных систем
(По материалам конференции HighLoad++ 2010-2011)

Эту книгу раздавали на конференции Highload++ 2012. Идея прекрасная. Возьмем записи лучших докладов за последние два года, напечатаем слова докладчиков и вопросы из зала, разбавим слайдами. Книга получилась отличная. Тут и про Erlang, и про базы данных, и про всякие низкоуровневые приемы на C++, и даже про такие извращения, как Node.js. Читается на одном дыхании.

Книжку не получится купить в магазине, но ее уже можно найти в интернетах. Полагаю, в силу очевидных причин, вы даже не преступите закон, если скачаете ее.

Функциональное и логическое программированиеФункциональное и логическое программирование
Сергиевский Г., Волченков Н.

Два лектора моего любимого института МИФИ объединили усилия и написали учебное пособие по функциональному и логическому программированию. Понравилось, что существенная часть книги посвящена теоретическим аспектам ФП и ЛП, а не конкретным языкам программирования. Впрочем, о Haskell, Lisp и Prolog тоже сказано достаточно.

Прологом в результате прочтения книги я что-то не сильно проникся. Наверное, я просто еще не дорос до задач, которые решают с его помощью.

Книга отлично подойдет тем, кто только начинает знакомиться функциональным программированием. Или тем, кто давным-давно с ним знаком, но хотел бы проверить свои знания.

Введение в Standard MLВведение в Standard ML
Харпер Р.

Из этой книги я узнал, что SML — это почти как Haskell, только без ленивых вычислений и монад, зато с ссылками и побочными эффектами. Довольно любопытный язык. Жаль, что уже никто на нем не пишет.

Книга легко читается и имеет объем всего лишь около 100 страниц. Как раз для тех, кто хочет разобраться, что это за SML такой. Если прочитаете и проникнитесь, обратите также внимание на книгу «Programming in Standard ML» того же автора. Там материала побольше, страниц на 300. В настоящий момент эта книга находится у меня в очереди на прочтение с низким приоритетом.

Кодеры за работой. Размышления о ремесле программистаКодеры за работой. Размышления о ремесле программиста
Сейбел П.

Еще одна книга с хорошей идеей. Берем 15 известных программистов, проводим с ними интервью, а затем издаем книгу с распечатками этих интервью. Вот имена некоторых из этих 15 программистов, чтобы вы понимали, о ком идет речь: Дональд Кнут, Кен Томпсон, Джо Армстронг, Саймон Пейтон Джонс, Брэд Фицпатрик.

Книга преисполнена интересными историями, глубокими мыслями и забавными перлами. Хотя попадается и откровенный бред, типа что JavaScript — лучший в мире язык, который наконец-то решил проблему повторного использования кода при помощи Ajax. В любом случае, обязательно прочитайте эту книгу, если до сих пор этого не сделали. Получите невероятное удовольствие.

ANSI Common LispANSI Common Lisp
Грэм П.

Именно под впечатлением от этого фолианта я решил попробовать Common Lisp. Хорошая, годная книга. В оригинальном издании содержалось довольно много ошибок, за исправлением которых наши переводчики не поленились проследить. Особенно мне понравилось, что в качестве примеров в книге приводятся решения интересных задач (трассировка лучей и тп).

Удивило, что в книге почему-то нет ни слова о многопоточности. Или об установке библиотек. Вообще, почему авторы книг о языках программирования вечно оставляют этот, возможно, один из самых важных моментов, без внимания?

Learn You Some Erlang for Great GoodLearn You Some Erlang for Great Good
Hebert F.

Прекрасный, замечательный учебник по Erlang. Все просто, понятно и приправлено хорошим юмором. Перевода на русский язык нет и не нужно. Читайте только в оригинале!

Огорчает только, что книга не распространяется в формате PDF. Например, чтобы было возможным читать ее в дороге. Однако в интернете можно найти PDF-версии этой книги, скомпилированные на основе интернет-версии. Если решите читать один из этих PDF, обязательно проверьте, что в нем есть все главы.

А какие книги вы читаете?

Дополнение: Очередные десять прочитанных книг

Метки: .


Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.