Предлагаю вашему вниманию список из последних десяти книг, которые я прочитал. Надеюсь, что найдется несколько человек, которые сочтут этот материал интересным. Напоминаю, что я стал намного больше читать после того, как избавился от машины и перешел на общественный транспорт .
Язык программирования D
Александреску A.
В нескольких словах язык программирования D можно описать, как годный, хорошо продуманный C++ с автоматическим управлением памятью ( не на счетчиках ссылок), правильной многопоточностью (модель акторов), нормальным метапрограммированием, элементами функционального программирования и прочим. Также в языке предусмотрены поддержка классической многопоточности с потоками/мьютексами и небезопасные операции типа ручного управления памятью, использования ассемблерных инструкций и тп. Эти небезопасные операции отключаются с помощью атрибута модуля @safe
. В результате получаем правильную Java.
Несмотря на название, книга повествует о языке D2, который имеет существенные отличия от первой версии языка D. Также русскоязычное издание имеет целые параграфы, написанные переводчиками, с описанием новых возможностей языка, которые не были упомянуты в оригинальной книге.
MongoDB в действии
Бэнкер К.
Хорошая книга о MongoDB . Будет интересна как программистам, так и системным администраторам (вопросам администрирования посвящена отдельная глава, плюс есть приложение об установке). Книга написана простым и понятным языком. Возможно, даже слишком понятным. Иной раз совершенно тривиальные вещи разжевываются на протяжении нескольких страниц. С другой стороны, некоторые тонкие моменты оставлены без должного внимания. Например, я так и не смог понять, где в MongoDB работает процесс, отвечающий за перебалансировку данных.
Программирование в Erlang
Чезарини Ф., Томпсон С.
Мне эта книга показалась какой-то больно сложной для восприятия. Не столько из-за Erlang ‘а, сколько из-за самого текста книги. Я не удосужился ознакомиться с оригинальным текстом, так что не могу сказать, это книга такая или переводчики отожгли.
Однако радует полнота изложения. В книге подробнейшим образом описываются и Dialyzer, и Mnesia, и трассировщик dbg , и горячее обновление кода , и взаимодействие с другими языками программирования, и даже wxErlang . Мне кажется, эта книга для тех, кто уже немного знаком с Erlang и хотел бы заполнить пробелы в знаниях.
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
Харпер Р.
Из этой книги я узнал, что SML — это почти как Haskell , только без ленивых вычислений и монад , зато с ссылками и побочными эффектами. Довольно любопытный язык. Жаль, что уже никто на нем не пишет.
Книга легко читается и имеет объем всего лишь около 100 страниц. Как раз для тех, кто хочет разобраться, что это за SML такой. Если прочитаете и проникнитесь, обратите также внимание на книгу «Programming in Standard ML» того же автора. Там материала побольше, страниц на 300. В настоящий момент эта книга находится у меня в очереди на прочтение с низким приоритетом.
Кодеры за работой. Размышления о ремесле программиста
Сейбел П.
Еще одна книга с хорошей идеей. Берем 15 известных программистов, проводим с ними интервью, а затем издаем книгу с распечатками этих интервью. Вот имена некоторых из этих 15 программистов, чтобы вы понимали, о ком идет речь: Дональд Кнут, Кен Томпсон, Джо Армстронг, Саймон Пейтон Джонс, Брэд Фицпатрик.
Книга преисполнена интересными историями, глубокими мыслями и забавными перлами. Хотя попадается и откровенный бред, типа что JavaScript — лучший в мире язык, который наконец-то решил проблему повторного использования кода при помощи Ajax. В любом случае, обязательно прочитайте эту книгу, если до сих пор этого не сделали. Получите невероятное удовольствие.
ANSI Common Lisp
Грэм П.
Именно под впечатлением от этого фолианта я решил попробовать Common Lisp . Хорошая, годная книга. В оригинальном издании содержалось довольно много ошибок, за исправлением которых наши переводчики не поленились проследить. Особенно мне понравилось, что в качестве примеров в книге приводятся решения интересных задач (трассировка лучей и тп).
Удивило, что в книге почему-то нет ни слова о многопоточности. Или об установке библиотек. Вообще, почему авторы книг о языках программирования вечно оставляют этот, возможно, один из самых важных моментов, без внимания?
Learn You Some Erlang for Great Good
Hebert F.
Прекрасный, замечательный учебник по Erlang. Все просто, понятно и приправлено хорошим юмором. Перевода на русский язык нет и не нужно. Читайте только в оригинале!
Огорчает только, что книга не распространяется в формате PDF. Например, чтобы было возможным читать ее в дороге. Однако в интернете можно найти PDF-версии этой книги, скомпилированные на основе интернет-версии . Если решите читать один из этих PDF, обязательно проверьте, что в нем есть все главы.
А какие книги вы читаете?
Дополнение: Очередные десять прочитанных книг