ЗАМЕТКИ ИЗ ЛАБОРАТОРИИ
Новые пакеты Symantec и Watcom различаются подходами к инструментальным средствам
Последние версии систем разработки на Си/Си++ корпораций Symantec и Watcom International, модернизированные для Windows 95, отражают различия в представлении их создателей о реальных нуждах разработчиков мультиплатформного ПО.
Используя средства просмотра пакета Symantec С++ 7.2, можно запустить многотредовый отладчик с интегрированными средствами
Symantec С++ 7.2 отличается от предыдущей версии 7.0 глубоко интегрированной средой и рядом изменений, резко повышающих производительность. Правда, эта версия не предназначена для разработчиков, создающих свои продукты для OS/2 или NLM-модулей (NetWare Loadable Module).
В отличие от продукта Symantec пакет Watcom С/С++ 10.5 поддерживает обе эти платформы, а также DOS и Windows. Кроме того, он генерирует хороший код. Однако при тестировании в PC Week Labs его слабо интегрированные инструментальные средства неправильно выполняли некоторые функции. Поэтому для разработчиков, использующих в основном Windows API, сильные стороны инструментария Watcom не смогут компенсировать его дефекты.
Версия 7.0 пакета Symantec С++ установила новые стандарты всеобъемлющей объектно-ориентированной поддержки разработки на Си++, за что и была отмечена знаком “Выбор аналитика” (в обзоре PC Week). В версию 7.2 (цена $399), поступившую в продажу в конце осени, вошли средства, позволяющие повысить производительность выполнения таких традиционных задач, как редактирование исходного текста. Это дает возможность пакету Symantec занять достойное место в гонке инструментов разработки, несмотря на сильную конкуренцию со стороны Visual C++ 4.0 Developer Studio корпорации Microsoft.
В версию Watcom С/С++ 10.5, выпущенную в конце лета (цена $350), добавлена отсутствовавшая в версии 10 совместимость “в основном” с Windows 95. Однако в отличие от Си++ корпорации Symantec пакет Watcom C/C++ 10.5 не отвечает требованиям к полноценному продукту для Windows 95, обязанному иметь такие возможности, как автоматическая деинсталляция. В 10.5 предусмотрена “родная” для Си++ функция обработки исключений, позволяющая этому пакету догнать другие компиляторы, в которых она уже есть. В число других нововведений Watcom C/C++ 10.5 входит поддержка OS/2 Warp 3.0 корпорации IBM и Windows NT 3.5.
Средства разработки
В пакете Symantec С/С++ 7.0 была применена новинка - возможность выполнять синтаксический анализ исходного текста еще до начала его компиляции, что позволяло создавать чрезвычайно информативные экранные отображения и даже давало возможность пользователям выполнять графическое редактирование связей иерархии объектов. Но по сравнению с Visual C++ 4.0 Developer Studio система Symantec, хотя она на голову выше Watcom, выглядит все же не такой уж совершенной.
Инструментарий Watcom С/С++ для Windows, включая многопотоковый отладчик, оказался плохо интегрированным
Как отмечалось в обзоре, посвященном Visual C++ 4.0, мы все же предпочитаем модель именованных представлений (named views), при которой графическое представление разнообразных задач, выполняемых во время разработки, вызывает свое сочетание типов, размеров и положений окон. Некоторые разработчики могут отдать предпочтение менее специализированным и более тесно интегрированным графическим представлениям и инструментам Microsoft, даже если для достижения максимальной эффективности Visual C++ требуется большее экранное пространство.
Symantec С++ 7.2 включает новые возможности создания сценариев для редактора, использующие расширенную версию Symantec BASIC. Мы установили, что функцией написания сценариев пользоваться неудобно, а интерфейс содержит гораздо больше слоев, чем в пакете KEdit компании Mansfield Software Group.
Среда написания сценариев системы Symantec действительно облегчает анализ и изменение макрокоманд, однако не упрощает задачу создания новых. (Пакет C++ 5.0 фирмы Borland International, выпуск которого намечен на начало года, обещает обеспечить пользователей средствами написания сценариев.)
Часто разработчики предпочитают пользоваться какой-либо одной программой редактирования текстов. Разумно, чтобы производители компиляторов сделали все возможное, чтобы они могли выбрать свой любимый редактор. Watcom прибегла к такому подходу в отношении пакета С/С++ 10.5. Если пользователя не устраивает редактор VIW, включенный в инструментарий Watcom, он может выбрать любой редактор из главного меню File и сделать его используемым по умолчанию.
Мы чуть было не лишились возможности оценить редактор Watcom С/С++ VIW: после его начальной установки на нашу машину, работающую под Windows 95, и 16-, и 32-разрядная версии прекращали загрузку, показав табличку с уведомлением об авторских правах.
Эта табличка перекрывала окно с сообщением об ошибке, которое и само по себе было очень туманно сформулировано.
Служба технической поддержки Watcom определила, что продукт другого производителя использовал переменную среды окружения с тем же именем, что и VIW.
Мы сталкивались с похожими проблемами в ранних версиях Watcom из-за того, что они чрезмерно полагались на строки задания маршрутов установки и имена переменных окружения, а это приводило к повышенной “хрупкости” процесса инсталляции и высокой вероятности ошибок.
Однако, когда VIW заработал, он продемонстрировал современный стиль и привлекательность, новаторское использование методов “перенеси и оставь” при задании раскраски элементов синтаксиса, шрифтов и организации строки состояния. Не имея функции составления сценариев, VIW тем не менее обеспечивал автоматическую поддержку синтаксиса языков Си, Си++ и Фортран и предлагал такие полезные возможности, как эмуляция редактора vi и автоматическое сохранение файла с установкой интервала времени.
Кроме редактирования исходного текста, создание прикладного ГИП также зависит от инструментов более высокого уровня для разработки его визуальной составляющей. Версия Watcom 10.5 включает Visual Programmer корпорации Blue Sky Software - утилиту для генерации кода с использованием библиотеки Microsoft Foundation Classes. Watcom предлагает пользователю версии MFC 3.0 и 2.5 (для 32- и 16-разрядных приложений соответственно) вместо поставляемой с Visual C++ 4.0 библиотеки MFC 4.0. Пакет Symantec включает более позднюю и лучше поддерживающую Windows 95 версию MFC 3.2.
Подобно VIW, Visual Programmer не до конца интегрирован с внешней оболочкой среды Watcom. При выполнении тестов на нашей машине прокрутка утилиты Blue Sky периодически разрушала оболочку Watcom.
Как уже отмечалось в предыдущих обзорах, система Watcom, работая на платформе OS/2, ведет себя совершенно иначе, поскольку в этом случае она использует лицензированные у IBM инструменты, а не более привлекательные и мощные средства, предусмотренные для разработчиков приложений под Windows.
Symantec, наоборот, включает в себя хорошо интегрированный набор редакторов на базе OLE 2.0 для работы со шрифтами, растровыми графическими изображениями, пиктограммами, меню и другими ресурсами, а также широкие возможности настройки таких действий, как генерация идентификаторов ресурсов. Большинство разработчиков будут обрадованы наличием семейства функций автоматической поддержки разработки Express, предназначенного для генерации “каркаса” приложения и расширения классов MFC или инкапсуляции элементов управления Visual Basic.
Производительность
Для оценки производительности была использована тестовая программа Tak. При генерации кода применялись самые сильные (из имеющихся) оптимизации для Pentium. В режиме с целыми переменными компилятор Watcom 10.5 показывал результаты, на 14% и 30% превышавшие показатели Visual C++ 4.0 и Symantec C++ 7.2.
Нас удивило, что при использовании переменных двойной точности с плавающей точкой Watcom не только работал на 19% слабее компилятора Microsoft, но и оказался в хвосте у Symantec C++ 7.2 и Borland C++ 4.51 (см. диаграмму).
Производительность Symantec C++ 7.2 на тесте Tak с целыми переменными была на несколько процентов выше, чем у версии 7.0. При использовании переменных двойной точности с плавающей точкой версия 7.2 работала в 2,2 раза быстрее своей предшественницы. Очевидно, в новой версии фирма Symantec кое-что “подтянула”.
Мы не проводили серьезного тестирования производительности компоновщика. Однако Symantec C++ 7.2 содержит новую 32-разрядную реализацию на языке ассемблера своего уже и так достаточно скоростного компоновщика, что может оказаться полезным при выполнении крупных проектов.
Другие выводы
Последние версии компиляторов Watcom и Symantec поддерживают обработку исключений в Си++ и информацию о типах времени выполнения. Однако ни один из продуктов не включает такие возможности, как введенные в Visual C++ 4.0 множественные пространства имен, позволяющие улучшить координацию больших проектов.
Продолжают увеличиваться давние расхождения между Watcom и Symantec в поддержке конкретных платформ. Symantec ориентируется на 16- и 32-разрядные DOS, Win16 и Win32. Она также поставила отдельный компилятор для Macintosh, который стоит $399 - куда дешевле опции кросс-платформной разработки для Macintosh (цена $1999), предложенной в дополнение к Visual C++ 4.0.
Пакет Watcom поддерживает DOS и Windows, а также OS/2 Version 1.x, 32-разрядную OS/2, Novell NLM и AutoCAD Development System.
Оба продукта выпущены на CD-ROM. Symantec C++ 7.2 легко инсталлируется, но переполняет меню Windows 95 Start, буквально заполняя экран рядами пиктограмм.
Подпрограмма установки пакета Watcom отличалась достаточно высокой гибкостью и хорошим выбором операций по умолчанию, но отказалась довести инсталляцию до конца, поставив нас перед необходимостью сделать несколько завершающих операций вручную.
ПИТЕР КОФФИ