HPUNIX Сайт о ОС и не только!

3-ий десяток прочитанных книжек и журналов

27 июля 2012 - unix
Третий десяток прочитанных книг и журналов

Сейчас я поведаю об очередных 10 книжках (по сути — 9 книжках и одном журнальчике), которые я прочел за последние три месяца. Мои прошлые обзоры литературы вы отыщите здесь: 2-ой десяток, 1-ый десяток.

Третий десяток прочитанных книг и журналов

Типы в языках программирования
Типы в языках программирования
Бенджамин Пирс

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

Для каждой темы поначалу дается теория, а потом приводится реализация на OCaml. Книжка содержит много формул и теорем. Не самое захватывающее чтиво, доложу я для вас.

TAPL — это, безусловно, реальный кладезь познаний для разработчиков языков программирования со статической типизацией. И достаточно никчемная книжка для обычных программистов. Практический энтузиазм TAPL представляет разве что для тех, кто решил стать коммиттером в GHC либо написать собственный небольшой Haskell.

Akka Concurrency
Akka Concurrency
Derek Wyatt

Akka — это библиотека для Scala и Java, позволяющая писать многопоточные приложения с внедрением модели акторов. Как и следовало ждать, очень почти все в Akka нахально слизано с Erlang, включая супервизоры и FSM. Но есть и огромное количество вещей, отсутствующих в Erlang.

К примеру, Akka позволяет заменять отправителя сообщения и подменять реализацию очередей.

По всей видимости, применить опыт программирования на Erlang в Scala не представляется вероятным. К примеру, как я сообразил, в Akka нельзя сделать синхронную посылку сообщений, заблокировав только текущий актор, а не целый поток, обслуживающий этот и другие акторы.

В Scala у нас все есть еще изменяемые переменные (изменяемыми могут быть даже сообщения, передача которых происходит по ссылке!) и одна куча на все потоки. После Erlang код на Scala и Akka смотрится очень уродливо. По этой причине (ну и, вообще-то, ряду других) я решил пока забить на Scala.

Хотя в целом Scala — неплохой язык. Фактически тот же Perl 6, только лучше.

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

После «Programming in Scala» Одерски, где расхваливается статическая типизация языка, весело следить, как создатель то и дело хвалит динамическую природу сообщений в Akka, которая позволяет писать таковой гибкий и обычный код. В книжке много внимания уделяется тестированию кода, что есть очень отлично, но иногда утомляет.

Etudes for Erlang
Etudes for Erlang
J. David Eisenberg

Третий десяток прочитанных книг и журналов

Об этой книжке я вызнал благодаря Erlanger.ru. Тонюсенькая книжечка, представляющая собой сборник задач для изучающих Erlang. Приблизительно на третья часть состоит из кода ответов.

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

Начальный код книжки лежит на гитхабе. На веб-сайте O’Reilly можно прочесть онлайн-версию. Там же за 5 баксов можно приобрести PDF-версию книжки, если лень самому собирать ее из исходников.

Programming Erlang: Software for a Concurrent World (2nd edition)
Programming Erlang (2nd edition)
Третий десяток прочитанных книг и журналов
Joe Armstrong

Благодаря этой книжке я вызнал об Erlang много нового. Скажем, я не знал про tuple modules. Либо о том, что оператор ++ можно использовать в паттерн матчинге.

К собственному стыду я даже не знал, что в REPL можно использовать сочетания Ctr+A и Ctr+E для перехода в начало и конец строчки соответственно. Мелочи, естественно, но знать такие вещи полезно.

Кроме остального Джо ведает о том, как воспользоваться rebar, как писать веб-приложения с внедрением Cowboy, также о новеньком типе map, который должен показаться в Erlang R17, с BIF’ами для преобразования в/из JSON. Книжка увлекательная и читается совсем не сложно.

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

Практика функционального программирования, выпуск 1
Практика многофункционального программирования, выпуск 1

Решил прочесть все выпуски ПФП. Журнальчики — это не совершенно книжки, но тоже литература. Притом, по неким показателям, к примеру, интересности и количеству страничек, журнальчики могут дать фору многим книжкам.

В этом выпуске мне больше всего приглянулись выборка литературы по многофункциональному программированию, перевод статьи про моноиды, также статья о том, как использовать в собственной работе функциональное программирование, если для тебя посчастливилось писать на Java.

Общие воспоминания от журнальчика самые что ни на есть положительные. Буду читать его далее.

Гибкие методологии разработки
Гибкие методологии разработки
Борис Вольфсон

Третий десяток прочитанных книг и журналов

Бесплатная PDF-книга маленького объема на российском языке. Представляет собой нечто вроде конспекта по гибким (agile) методологиям разработки — Scrum, XP и т.д..

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

Книжка хороша. Создатель, безусловно, молодец!

RabbitMQ in Action: Distributed Messaging for Everyone
RabbitMQ in Action: Distributed Messaging for Everyone
Alvaro Videla, Jason J. W. Williams

RabbitMQ — это сервер для обмена сообщениями меж приложениями. На 1-ый взор может показаться, что «кролик» решает задачку, которая достаточно изредка встречается на практике. Но по моему опыту в том либо ином виде этот шаблон встречается практически везде.

Моя книжная полка

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

Это — что касается RabbitMQ. Что все-таки до самой книжки, она мне не очень приглянулась. 1-ые страничек 100 были достаточно увлекательными, а позже началось какое-то высасывание материала из пальца.

В одной книжке намешано администрирование, программирование на Erlang, Python и PHP, также настройка плагина, добавляющего к RabbitMQ веб-интерфейс. Есть подозрения, что книжку можно было сделать в 2-3 раза короче.

Purely Functional Data Structures
Purely Functional Data Structures
Chris Okasaki

Традиционная книжка Криса Окасаки по многофункциональным структурам данных. Благодаря ей сейчас я понимаю, как в Erlang работает модуль queue. Книжку можно приобрести в электрическом виде за 39$.

Фактически весь материал книжки содержится в одноименной диссертации, которая свободно доступна в сети.

Материал достаточно сложен для восприятия. Много матанов. Крис употребляет язык программирования SML (смотрите-ка, чтение Харпера окупилось!). В конце книжки есть приложение, содержащие перевод кода на Haskell. Огромную часть книжки я читал на искосок.

Есть подозрения, что многофункциональные структуры данных намного увлекательнее выдумывать, чем читать о готовых решениях.

Третий десяток прочитанных книг и журналов

Если для вас захочется прорешать все упражнения из книжки, вы отыщите единомышленников в перечне рассылки okasaki russian study group. А в этом репозитории проходят работы над русским переводом книжки.

Искусственный интеллект: стратегии и методы решения сложных проблем
Искусственный ум: стратегии и способы решения сложных заморочек
Дж. Люгер

Мой 1-ый подход к этой книжке состоялся около года вспять. Тогда я прочел 1-ые две сотки страничек, после этого отложил книжку в сторону. Сейчас вот возвратился и решил добить.

Поиск на графах, клеточные автоматы, генетические методы, нейронные сети, исчисление предикатов, машинное обучение, представление познаний, осознание естественного языка, также программирование на Lisp и Prolog — все в одной книжке. По каждой теме приводится обеспеченный перечень дополнительной литературы для желающих поглубже погрузиться в тему. Есть упражнения, большая часть из которых очень занимательны.

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

Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages
Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages
Bruce A. Tate

Об идее книжки нетрудно додуматься по ее наименованию. Вступление написано Джо Армстронгом, что само по себе уже многообещающе.

Выборку языков программирования, применяемых в книжке (Erlang, Scala, Prolog, Ruby, Io, Clojure, Haskell), я одобряю. В особенности любопытно было поглядеть на Clojure. Для каждого языка приводится куцее интервью или с создателем этого языка, или с активным юзером.

Читать такие вещи всегда любопытно.

Некие утверждения создателя несколько непонятны. Периодически печалят затянувшиеся аналогии, что мол Erlang похож на Агента Смита, а Clojure — на магистра Йоду. Обзоры языков достаточно поверхностны.

III. Продолжим (политики и мир) Part 3

Кое-какая информация из книжки уже успела устареть. Но невзирая на эти недочеты книжка очень отменная.

Я вот что думаю. После чтения рецензий на три 10-ка книжек, вы хорошо так ознакомлены о моих вкусах/интересах. Что бы вы порекомендовали мне почитать?

Похожие статьи

  • Очередные 10 прочитанных книжек

    Данная заметка содержит короткие рецензии на 10 книжек, прочитанных мною за последние два месяца. В большей степени это были книжки о многофункциональном программировании, PostgreSQL и Git. Со перечнем из...

  • Последние 10 прочитанных мною книжек

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

  • Эволюция применяемых языков программирования

    На написание этой статьи меня вдохновили заметки На чём пишете? Дениса Филонова и Эволюция применяемых языков Даркуса. В их создатели вспоминают, как они начинали программировать, какие языки прогр...

  • Интернационализация в Yesod

    А тем временем работы над русским переводом книжки «Developing Web Applications with Haskell and Yesod» идут с обезумевшой скоростью. В этой заметке я предлагаю вашему вниманию предварительный вариант перевод...

  • Обзор планшета ViewSonic ViewPad 7

    Если вы смотрите за мной в Twitter, то сможете держать в голове, как не так давно я что-то там писал про семидюймовый планшет от ViewSonic. Итак вот, не так давно сотрудник 1-го из моих родственников отдал мне на пару дн...

Теги:
Рейтинг: +5 Голосов: 182 1550 просмотров
Комментарии (0)

Нет комментариев. Ваш будет первым!

Найти на сайте: параметры поиска

Windows 7

Среда Windows 7 на первых порах кажется весьма непривычной для многих.

Windows 8

Если резюмировать все выступления Microsoft на конференции Build 2013.

Windows XP

Если Windows не может корректно завершить работу, в большинстве случаев это

Windows Vista

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