Том Сван. Освоение Borland C++ 5. Киев. "Диалектика". 1996.
Средства разработки программ развиваются небывалыми темпами. Естественно, что книги, описывающие новые инструменты программистов, появляются прежде всего там же, где и сами инструменты, - на Западе. К счастью, информационная индустрия бывшего СССР научилась довольно быстро реагировать на появление западных бестселлеров. Так, в прошлом году, всего через несколько месяцев после выхода в американском издательстве Sams Publishing книги Тома Свана (возможно, правильнее было бы назвать его Суоном) "Освоение Borland C++ 5", киевское издательство "Диалектика" выпустило ее перевод на русский.
Издание объемом 575 с. большого формата предназначено для программистов, хорошо знакомых с языком Си, но не знающих языка Си++; для понимания разделов, посвященных разработке приложений Windows, от читателя требуется знание основ программирования в этой системе.
Книга состоит из 25 глав, объединенных в пять разделов (частей). Первая часть, "Введение" (около 50 с.), содержит общее описание пакета Borland С++ и особенностей его установки, а также знакомит читателя с объектно-ориентированным программированием и языком Си++, в том числе с его отличиями от Си и новейшими расширениями стандарта ANSI.
Вторая часть (около 200 с.) представляет собой углубленное руководство по Си++ - с подробным описанием работы с классами, механизмов наследования, обработки исключительных ситуаций. Здесь же рассматривается использование перегружаемых операторов, файловых потоков, вводится понятие шаблона. Каждая глава заканчивается кратким резюме и набором упражнений на пройденную тему.
Часть третья (около 100 с.) знакомит с библиотекой шаблонов пакета фирмы Borland. Здесь автор подробно рассказывает об итераторах, контейнерных классах и отношениях между ними, приводит примеры реализации ряда стандартных алгоритмов.
Четвертая часть (около 100 с.) посвящена созданию приложений для Windows. Должен сказать, что мне не очень понравилась манера изложения этого материала. Когда речь идет о книге такого рода, то программирование в системе Windows - не менее важная тема, чем язык Си++, и заслуживает отдельного подробного рассмотрения. Между тем основополагающее для Windows понятие событийно-управляемой программы впервые встречается лишь в середине главы "Введение в OWL", и при этом упоминается вскользь, мимоходом. Создается впечатление, что автор адресуется к читателям, уже имевшим дело с предыдущими версиями Borland C++ и писавшим программы для Windows, но в таком случае непонятно, для чего в предшествующих главах так подробно описан язык Си++.
Автор рассказывает о преимуществах использования библиотеки ObjectWindow Library (OWL), однако с самой библиотекой читатель знакомится лишь на отдельных примерах, что может затруднить понимание этого непростого материала. В примерах показаны приемы работы программ с графикой, мышью, меню, диалоговыми окнами, шрифтами TrueType, здесь же вводится понятие библиотеки DLL.
Отдельная глава посвящена разработке приложений для Windows 95. В ней рассматриваются содержащиеся в OWL классы, обеспечивающие работу с графикой, звуком, протоколом TCP/IP, Реестром Windows 95 (почему-то сам Реестр ни разу не назван - описаны лишь функции, связанные с регистрацией программы в системе). Приведены многочисленные примеры, демонстрирующие характерные для Windows 95 функции и элементы пользовательского интерфейса - панели инструментов, списки последних использованных файлов, работа с электронной почтой, многостраничные диалоговые окна, списки и деревья.
В двух завершающих главах раздела, посвященного Windows, описано использование механизма OLE 2.0, включая разработку OLE-контейнеров и OLE-серверов, организацию обмена данными с помощью перетаскивания мышью. К сожалению, мне не удалось найти упоминания о создании многопотоковых программ.
Особый интерес представляет последний раздел книги - "Инструментарий разработчика" (около 150 с.). В нем автор обсуждает работу с проектами в Borland C++, настройку среды разработки с помощью сценариев, оптимизацию программ, создание оверлеев. Отдельные главы раздела посвящены взаимодействию компилятора Borland C++ с такими средствами разработки, как Turbo Assembler, Delphi 2.0, Borland Database Engine, библиотека MFC и Java.
В приложениях приведены таблицы кодировки символов Extended ASCII и ANSI (Windows), перечислены опции компилятора и компоновщика Borland C++, ключевые слова языка, а также операторы Си++ с указанием их приоритетов. Существенным недостатком книги является отсутствие алфавитного указателя - в справочном издании он просто необходим.
В заключение мне хочется в который уже раз посетовать на затянувшееся отсутствие в нашем языке единой нормативной компьютерной лексики, что хорошо заметно на примере рассматриваемой книги. Как следует писать: "пиксель" или "пиксел"? "Броузер" или "браузер"? "Звуковая карта" или "звуковая плата"? "Аплета", "апплет" или "аплет"? Зачем переводить название File Manager как Администратор файлов, когда в русской версии Windows эта программа названа Диспетчером файлов? И стоит ли употреблять слово "хэш" рядом (в одной строке) со словом "хеширование"? Я, разумеется, не претендую на роль законодателя терминологической моды, скажу только, что во многих случаях не согласен с вариантами, предлагаемыми издательством "Диалектика". Часто приходится слышать, что терминологический разнобой и связанное с ним засилье жаргона в прессе - вещи второстепенные, от которых можно запросто отмахнуться, дескать, кому надо, и так все поймут. Но по моему глубокому убеждению, разнобой этот является свидетельством незрелости всей российской компьютерной индустрии, разрозненности и слабости формирующих ее сил. Впрочем, возвращаясь к обсуждаемому изданию, можно сказать, что, несмотря на свои недостатки, оно послужит неплохим, хотя и не исчерпывающим, пособием для тех, что хочет приобщиться к объектно-ориентированному программированию и освоить новейшую на сегодня версию компилятора семейства Borland C++.
Телефон издательства "Диалектика": (044) 261-5643.
Александр Силонов