Некоторое время назад взялся за сабж. Я выбрал его именно потому, что слышал очень много отзывов о том, что это «только о программировании» и «ничего лишнего». Я несколько разочарован.
Первое, не самое важное, но тем не менее. Авторы взяли в качестве ЯП scheme, мотивируя это тем, что синтаксис очень прост для освоения новичком. Синтаксис то да, прост, но семантика не так уж и проста, и совершенно непонятно, почему было не взять любое другое подмножество лиспа, или даже бейсика, ведь для демонстрации принципов о которых там рассказывается вовсе не требуется сомнительное «волшебство» замыканий и продолжений. На одном синтаксисе далеко не уедешь, а семантику scheme (до глав о метаяз. абстракции) там не рассматривают вообще, и при этом заявляется, что низкий порог вхождения гарантирован. Это, мягко говоря, неправда.
Но самое главное — там слишком много воды. Для рассмотрения достаточно простых вещей, там берутся сложные, избыточные примеры. Например, главы о банковских счетах. Ведь основная мысль там — проблема разделения ресурса. Нахрена спрашивается было городить левые процедуры, вроде withdraw, get-money, put-money и проч. (названия там другие, но не суть), если для демонстрации идеи достаточно было change-balance и check-balance. Ведь основная проблема - в том чтобы посмотреть, а потом снять, чтобы другой объект не изменил в промежутке между двумя операциями. Вместо того, чтобы концентрироваться на основной вычислительной проблеме, на нас выливают тонны воды, в которой расмотреть основную мысль не очень то и просто.
Баланс только для примера. Вообще, вся книга написана тяжелым избыточным языком. Примеры нарочито переусложнены и перегружены ненужными (для прояснения текущей идеи) свистоперделками.
В связи с этим, хочу спросить, существует ли другая, возможно, более старая даже, книжка о программировании (и только о нем — не о типах, не об особенностях той или иной парадигмы и пр.), но только без демагогии?
UPD Забыл сказать, что я в корне не принимаю такие подходы, как «Структурное программирование», что-то в стиле «Something considered harmful» «не отстрели себе яйца», и языки заточенные под компиляцию. Поэтому подобные вещи не предлагать:)