Rambler's Top100 Service калинин.ru / комментарии / книги /  << 16.08.00 >>

C++: библиотека программиста

    Иллюстрация
    Обложка книги.
    Обложка книги.

Первая глава этой книги так и называется: "Зачем нужна еще одна книга о C++?" и начинается со следующих слов:

  Цитата
 

По последним данным на рынке продается по крайней мере 2 768 942 книги о C++, не говоря уже о всевозможных курсах, обучающих программах, журналах и семинарах с коктейлями. И все же в этом изобилии наблюдается удручающее однообразие. Просматривать полку книг о C++ в книжном магазине ничуть не интереснее, чем литературу по бухгалтерии. В сущности, все книги пересказывают одно и то же и отличаются разве что по весу и количеству цветов в диаграммах и таблицах. По моим подсчетам, 2 768 940 из них предназначены для новичков, ориентированы на конкретный компилятор или представляют собой справочники по синтаксису C++.

Честно говоря, не знаю, почему я купил в свое время эту книгу... все дело в том, что год или два назад, листая несколько книг по C++ в книжном магазине, я решил больше не покупать литературы по этому языку программирования, если только среди авторов нет Бьерна Страуструпа ;) И все-таки книга Джеффа Элджера привлекла мое внимание прежде всего тем, что ее оформление напоминало купленную незадолго до того "Perl cookbook", которая мне очень понравилась. Первым делом я натолкнулся на текст, процитированный выше, а потом по содержанию с удивлением понял, что эту книгу я куплю, несмотря на громадное количество бумажного хлама, находящегося на моих книжных полках.

Половина книги посвящена рассмотрению различных видов указателей --- от "умных", до "гениальных"; целая часть под названием "Управление памятью" рассказывает о том, как эффективно бороться с различными проблемами, возникающими при работе с "кучей", даны алгоритмы сборки мусора и уплотнения памяти. В общем, вся книга посвящена реальному использованию C++ для написания красивых программ. В принципе, это единственная книга на русском языке, в которой рассматриваются такие проблемы.

Книга написана чрезвычайно живым языком, причем не таким "живым", как "Основы CORBA", а действительно легким и непринужденным. Читается практически как интересный приключенческий роман ("про мушкетеров" ;) ). Очень много фактов, относящихся к проблемам, связанным с традиционными ошибками программистов (единственная книга, в которой описана ошибка, возникающая при преобразовании указателя на потомка к указателю на предка через void*).

Практически вся книга --- источник превосходнейших цитат. Но мне хочется процитировать начало завершающей главы:

  Цитата
 

Вы открыли последнюю главу книги. Если до сих пор вы ее не отбросили --- примите мои восхищение и сочувствие. Вероятно, я на всю жизнь отбил у вас вкус к любым реальным проектам, кроме программ управления ядерными реакторами и полетов на Марс.

Я сомневаюсь, что найдется программист на C++, кому эта книга окажется совсем уж бесполезной. Мне кажется, что даже начинающим программистам стоит заглянуть в нее, хотя бы для того, что бы краем глаза посмотреть на действительно профессиональный подход к программированию на C++. Из некоторых недостатков стоит отметить то, что в книге рассматривается диалект языка в его "достандартном" состоянии, но это нисколько не умаляет достоинств. Сделать соответствующую поправку совсем несложно.

Резюме

Если раньше, когда меня спрашивали, что надо прочитать по C++, я рекомендовал только "Язык программирования C++", то теперь обязательно добавляю, что после его прочтения и реального применения C++ в своих проектах, следует обязательно ознакомится с этой книгой. Фактически, среди книг по C++ на русском языке, книга Джеффа Элджера не имеет аналогов и конкурентов. Настоятельно рекомендую купить --- не пожалеете даже в том случае, если все приемы, описанные в книге, для вас не новы..

Кстати сказать, в одной из конференций видел примерно следующую фразу, относящуюся к книге Элджера: "автор попытался сделать из C++ Smalltalk". В принципе, в этом есть некоторая доля истины.


Версия для печати


  Ссылки по теме:
Бъерн Страуструп
   Язык программирования C++, 3 издание.
  Рядом в разделе:
Java 2: руководство разработчика (22.08.00)
   Я решил, что мне нужна книга по Java тогда, когда появилось требование что-то написать на этом языке более серьезное, чем рисование...   >>>>
Алгоритмы: построение и анализ (11.08.00)
   Эту книгу ждали, по-моему, пару лет. При этом ее никто не рекламировал, не предлагал заказать в интернет-магазине до выхода как новое...   >>>>
  Рядом по дате:
Серпико / Serpico, 1973 (17.08.00)
   Фильм основан на книге Питера Мааса, которая, в свою очередь, описывает реальные события из жизни полицейского. Экслер, например, в своих "субъективных...   >>>>
Функция gets() (15.08.00)
   Функция gets(), входящая в состав стандартной библиотеки C, имеет следующий прототип: char* gets(char* s); Это определение содержится в . Функция предназначена...   >>>>
  Содержание:
Заглавная страница
Мой блог
Мое резюме
Дайджест
Программирование
   C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
TeX
Просто так
Студенческое
Туризм
  Байки
Фотографии
Комментарии
   Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
Благодарности
Форум
Хронология
 
  В этом разделе:
High Perfomance Computing, second edition. (05.07.01)
   Название книги можно перевести как "Высокопроизводительные вычисления" и эта тематика в русскоязычной литературе не освещена совсем. Традиционно считается, что самой важной...   >>>>
Плагиат (19.06.01)
   В последнее время мне стало казаться, что с моим сайтом что-то не в порядке. Вроде, текст есть, живые люди тоже иногда...   >>>>
TCP/IP Illustrated, volume I. The Protocols (22.04.01)
   И опять, книга, о которой мне хочется рассказать, насколько мне известно, отсутствует в русском переводе. Тем не менее, в разделе сетевого...   >>>>
Decline and Fall of the American Programmer (28.02.01)
   Эдвард Йордон является одним из самых известных специалистов в области создания больших программных систем. Широко известна его нотация, предназначенная для структурного...   >>>>
Unix internals: the new frontiers (03.12.00)
   Хочу сразу же предупредить, что эта книга, насколько мне известно, в переводе на русский язык не существует, поэтому прошу прощения, если...   >>>>
Операционная система Unix (31.10.00)
   Unix получил очень широкое распространение в современном компьютерном мире. При этом, даже если большая часть домашних компьютеров работает под управлением операционной...   >>>>
Язык UML, рукводство пользователя (29.09.00)
   UML (Unified Modeling Language, унифицированный язык моделирования) является еще одной популярной аббревиатурой, которой очень часто пользуются, не понимая того, что за...   >>>>
Содержание раздела полностью...
   Примерно в тоже время
Серпико / Serpico, 1973 (17.08.00)
   Фильм основан на книге Питера Мааса, которая, в свою очередь, описывает реальные события из жизни полицейского. Экслер, например, в своих "субъективных...   >>>>
Функция gets() (15.08.00)
   Функция gets(), входящая в состав стандартной библиотеки C, имеет следующий прототип: char* gets(char* s); Это определение содержится в . Функция предназначена...   >>>>
Хронология полностью...
   Содержание
Заглавная страница
Мой блог
Мое резюме
Дайджест
Программирование
  C&C++
Сети
Unix
Алгоритмы
Оптимизация
Соревнования
Отвлеченно
XML
TeX
Туризм
  Байки
Фотографии
Комментарии
  Книги
Web-ресурсы
Фильмы
Интернет
Программное обеспечение
Жизнь
Студенческое
Просто так
Благодарности
Форум
Хронология
© 2000-2008, Andrey L. Kalinin
mailto:andrey@kalinin.ru
Rambler's Top100