"DSLs in action" и "Concurrent programming in java"
Набег студентов, лето и смена работы в который раз привели этот блог к глубокому запустению. Ну да попробую исправится. Для начала расскажу о паре книжек, прочитанных мной за последние полгода (стыдно, стыдно, стыдно, 180 дней и всего сотен 5 страниц).
Итак, первая это "DSLs in action", пролежавшая, кстати, в очереди на прочтение без малого год. Начинается она довольно вяло, где-то на 100 странице было уже неслабое желание бросить. Введение полно рассуждениями на тему места DSL, их экономической целесообразности и классификаций. Не чтобы это было совсем не нужно, но ИМХО такие вещи должны быть в конце. Падать на читателя уже, так сказать, замотивированного дойти до конца. Ну да хватит о грустном.
По мере появления конкретных примеров и расширения списка языков в которых автор пробует свои силы книга быстро приковывает внимание. Очень похоже на руководство по Scala, о котором я писал ранее, вторые две трети пролетают заметно быстрее первой одной. Перед читателем предстаёт захватывающая карусель из техник ФП, дизайна собственно языков, метапрограммирования и всё это в нескольких вариантах на разных языках.
Автор без сомнения проделал огромную работу готовя примеры и выбирая подход к решению каждой задачи. Книгу стоит прочитать даже людям совершенно не интересующимся DSL просто полюбоваться многообразием современных языков и тем диапазоном техник программирования который они предлагают.
Вторая книга которую я осилил за последнее время это небезызвестная "Concurrent Programming in Java". Наверно не стоит лишний раз её описывать, тем более, что даже на русском отзывов более чем достаточно, могу точно сказать что мне она без сомнения пошла на пользу.
Ктоме того замечу, что по контенту она практически не пересекается с прочитанной ранее "Java Concurrency in Practice". Если в гниге Lea рассматриваются в первую очередь примитивы многопоточности, в том числе и пути их реализации, то Goetz концентрируется на корректном их применениии в коде приложений. И естественно последний оперирует util.concurent как данностью. В общем можно заключить, что книги стоит читать обе, наверно даже в любой последовательности.