Книжная лавка
Подбельский В.В. Язык Си++: Учеб. пособие. М.: "Финансы и статистика", 1995. 560 с.: ил.

Голуб А.И. С и C++. Правила программирования. М.: "Бином". 272 с.

Сегодня объектом нашего рассмотрения окажутся две книги на одну и ту же, может быть, не самую актуальную, но все же важную тему. Речь пойдет о программировании на Си++. Каких-то три года назад автор этой рецензии преподавал в институте классический Си и собирался, с появлением в аудиториях более приличной техники, перейти к Си++. Однако вскоре преподавательская работа стала сильно напоминать благотворительную деятельность или оказание гуманитарной помощи на общественных началах. Таким образом, единственное, что я могу иногда себе позволить, – это порассуждать о том, что изменилось (или не изменилось) в преподавании языков программирования. Это легко заметить по учебникам.
По Си++ имеется обширнейшая библиография, начиная с фундаментального произведения Б.Страуструпа и заканчивая какой-нибудь брошюрой Урюпинской академии эзотерики и мистики. Тем не менее в этой сфере работа продолжается. Итак, перед нами два разных учебника двух издательств. Далее для краткости мы будем их называть "вариант ФИС" и "вариант "Бинома".
Прежде всего, вариант ФИС представляет собой традиционный и даже классический вузовский учебник для специальностей "Прикладная математика" и "Вычислительные машины". Больше всего напоминает книгу Р.Уинера о Турбо Си ("Мир", 1991), которую я оцениваю достаточно высоко. Устроен учебник тоже классически: программа "Hello, world!", лексические основы языка, скалярные типы и выражения, операторы, адресация в память, функции и ссылки, структуры и объединения, препроцессор, объектно-ориентированное программирование, ввод-вывод, обработка особых ситуаций. Стиль сугубо технический, конспективный, но подробности при этом не исчезают. Материал излагается четко и логично. Особых мудрствований и модных ныне экскурсов в философию В.В.Подбельский себе не позволяет, за исключением главы о неформальном введении в Си++, где он, по-моему, откровенно издевается над ненавистной всем работникам высшего образования Единой Тарифной Сеткой, делая из нее пример простейшей программы. В остальном книга представляет собой очень хороший учебник, правда, со значительным уклоном в DOS (о Windows упоминается лишь в одном месте). Каковы критерии, отличающие хороший учебник от плохого? С преподавательской точки зрения, критерий может быть только один: логичность, возможность проецирования новых знаний на прежние. С этим автор книги, по-моему, справился отлично. Кто изучал обычный Си, легко разберется с Си++. Что же касается тех, кто сразу, без подготовки, приступает к "плас-плас", то тут требуется эксперимент.
Большое достоинство издания ФИС – обширные приложения с описанием стандартных библиотек. После прочтения книги возникает острая ностальгия. Ведь были времена, когда фраза "Рекомендовано Госкомитетом РФ по высшему образованию" и список кафедр-рецензентов не казались чем-то лишним. И непонятно, то ли это последний писк старой системы высшего технического образования, то ли начало ее возрождения (признаемся, не такой уж плохой она была). Осколок разбитого вдребезги, образно выражаясь. Но осколок, вполне заслуживающий места в музее современности, в разделе "Безмолвные герои".
Книга А.И.Голуба (который вовсе не Александр Ильич, а некто Ален И., американец), то есть вариант "Бинома", написана в сугубо американском стиле с шуточками, прибауточками и воспоминаниями о прошлом. Это не учебник в "советском" понимании, а нечто, больше всего похожее на издания типа" 100 способов заработать деньги", "999 принципов процветания", "77 инструкций для менеджера" и так далее. Здесь приводится 161 правило программирования на Си и Си++. Откровенно говоря, я могу сказать следующее: издательство "Бином" в очередной раз продемонстрировало нам новый жанр. Дело в том, что большая часть советов г-на Голуба применима при программировании практически на любом языке "невизуального" типа, и акцент автора в сторону Си, по-моему, просто скромная уступка рекламе (книгу на абстрактные темы никто покупать не будет). Так что у всех "вольных борзописцев" (пользуясь термином некоего Соколова – борзописца, видимо, невольного)есть шанс написать книги на темы "Правила программирования на языке XYZ" (название подставьте сами).
Большинство советов Голуба можно отнести к разряду житейских – вроде того, как оформлять программу, как называть имена и идентификаторы, какие циклы использовать, а какие нет, и далее в том же духе. Зачастую с американским профессором хочется поспорить, но, по-моему, это явный плюс книги. Что касается самих языков Си и Си++, то им посвящены две главы: соответственно седьмая (очень маленькая) и восьмая (колоссальных размеров). Но опять же, многие советы, касающиеся ООП, применимы не только в случае с Си++ Единственное, чего мне не хватало в версии "Бинома", так это подробного разбора еще более земных ситуаций, связанных с особенностями конкретных компиляторов и т.п. Было бы неплохо, если бы небольшую главу г-н Голуб посвятил разным "глюкам" и "кривизне", это каждому приходится тут жить своим умом, гадая, почему это совершенно правильная программа время от времени ведет себя так ужасно. Но, видимо, автор книги решил не опускаться столь низко. В целом же книга заслуживает самого серьезного внимания со стороны программистов среднего уровня и начинающих. Такого на нашем книжном рынке давно не появлялось.
Итак, вот две книги, посвященные одной теме. Но можно ли их представить стоящими рядом на одной полке? Это вопрос. Если вариант ФИС полностью отвечает своему названию и иначе как в раздел "Языки программирования" отнесен быть не может, то вариант "Бинома" все же скорее попадает в группу "Теоретические основы". Однако теорию теперь преподносят в упаковке практических советов, и она тщится быть похожей на простой конспект-учебник Из чего следует заключить, что нынешний программист даже в России стал более прагматичен. Достоевский как-то сказал: "Широк русский человек. Я бы сузил..." Так вот, перед нами ярко выраженный пример почти искусственного сужения кругозора, по крайней мере, русского программиста. Хорошо это или плохол, Бог весть... Наверное, все-таки хорошо. Человек должен заниматься конкретным делом, а не удовлетворять свое профессиональное любопытство за чужой счет. Я задаюсь вопросом' а купит ли средний программист книгу под названием "Правила программирования", не делающую ссылок на популярный язык? И сам себе отвечаю, нет У него нет времени изучать нечто, что не лежит в прямой сфере его интересов. Время – это деньги Поэтому хватит страдать по поводу отсутствия теоретической литературы. Не лучше ли писать книги, подающие высокие теории под маской практических советов?
Обзор подготовлен Сергеем Кизюковым.