Первый взгляд
Optima++ корпорации Powersoft получает высокие оценки за скорость и удобство и использует стандартный язык
Разработчики, страстно желающие получить уровень продуктивности, обеспечиваемый инструментами быстрой разработки приложений (RAD - Rapid Application Development), не привязываясь к закрытому языку, не смогут найти лучшего средства создания приложений под Win32, чем Optima++ корпорации Powersoft.
Пакет начального уровня Optima++ Developer 1.0 ценой $199, поставки которого начались в мае, представляет собой первый компонент будущей трехуровневой линии продуктов. Он соединяет легкость конструирования пользовательского интерфейса Visual Basic с легкостью задания и проверки соединений с базами данных Clarion for Windows и значительно превосходит Delphi по скорости операций с интенсивным использованием процессора.
В Optima++ Developer отсутствует поддержка многопользовательских клиент-серверных систем, которую будет обеспечивать пакет среднего класса Professional; в нем также нет системы управления репозиторием Object Cycle (поддерживающей групповую разработку) и высокоскоростных драйверов баз данных для пяти популярных серверов, имеющихся в пакете высокого класса Enterprise.
Powersoft вступает в игру с высокими ставками, в которую в настоящее время играют Delphi фирмы Borland International, Visual Basic корпорации Microsoft и Clarion for Windows корпорации TopSpeed, и ее первый ход - это сильный ход. Присоединяясь к этим конкурентам в качестве обладателя звания "Выбор аналитика", Optima++ полностью реализует потенциал, который Тестовый центр PC Week Labs ранее отмечал в ее бета-версии.
Предлагая возможности, сравнимые или превосходящие самые сильные стороны конкурирующих средств быстрой разработки приложений, Optima++ привлечет многих разработчиков, которые раньше пренебрегали инструментами RAD как инструментами второго сорта. Используемый в Optima++ язык - это не ограниченный или закрытый диалект, а впечатляющая реализация стандартного языка Си++, достойная репутации компилятора корпорации Watcom International (который стал частью арсенала Powersoft, когда она приобрела Watcom).
И поскольку цена Optima++ Developer учитывается (с помощью купона на получение скидки) при последующей покупке любого из его старших братьев, у разработчиков будут все основания начать изучение Optima++ сейчас и добавить более мощные возможности позднее, когда летом этого года будут выпущены остальные компоненты линии продуктов Powersoft.
Больше, чем смесь
Optima++ представляет собой больше, чем просто объединение сильных сторон авторитетных конкурентов вокруг зрелого компилятора C++ (впрочем, даже если бы продукт на этом остановился, это все равно было бы неплохо). Optima++ также открывает важные новые возможности, предлагая интуитивные средства, которые помогают определять сложные схемы поведения, отличающие реальное приложение от легковесной демонстрационной программы конструктора пользовательского интерфейса.
Например, Optima++ напоминает Watcom VX-REXX for OS/2, внося удобство операций "перетащи и оставь" не только в разработку макета интерфейса, но и в написание кода. Она позволяет разработчику просматривать на экране Справочную карточку (Reference Card) для любого заданного компонента пользовательского интерфейса, содержащую список поддерживаемых этим компонентом методов с возможностями легкого поиска, и при перетаскивании метода мышью вставляет скелет кода для желаемого метода в окно редактирования кода.
Графический конструктор форм (справа) и Reference Card вставляют
скелет кода прямо в редактор исходных текстов Optima++, до
минимума сокращая ввод текстов вручную
Многие конструкторы ГИП, использующие технологию "перетащи и отпусти", часто говорят о своей объектной ориентированности, пока объекты представляют собой что-то столь же конкретное, как кнопка или панель прокрутки на экране, но за кулисами их абстракции рассыпаются. Не так ведет себя Optima++. Она определяет абстрактные типы данных, скрывающие многие сложности нижележащих уровней, которые часто оставляются в качестве "препятствий для разработчика".
Например, тип данных WChar позволяет разработчикам легко манипулировать с символьными данными в среде, использующей символьные данные ANSI или Unicode. Для символьных строк класс WString даже сам осуществляет преобразования; например, можно использовать метод SetAnsiText, чтобы присвоить текст строки, а затем воспользоваться методом GetUnicodeText для извлечения преобразованных данных.
Мы долго рылись вокруг краев этих и других абстракций, ища признаки шизофрении, но обнаружили, что подход Optima++ демонстрирует случай хорошо приспособленных множественных личностей. Эта среда является объектно-ориентированной там, где это полезно, но совместима с традиционными идиомами Си и Си++ там, где можно надеяться найти эти знакомые соглашения.
В ситуациях, когда разработка и тестирование кода достигают критического уровня сложности, Optima++ поддерживает разработчика, давая ему среду редактирования и отладки, отличающуюся использованием поразительно новаторских и продуктивных проектных решений.
Например, мы привыкли к средам, которые предлагают окно с сообщениями об ошибках компиляции, связанное с редактором исходных текстов, так что двойной щелчок на сообщении об ошибке переносит нас прямо к соответствующей строке кода. Но Optima++ опережает этот подход на целое поколение: когда она находит ошибку компиляции, сообщение появляется прямо в окне исходного текста, помещается перед неверной строкой, выделяется цветом и снабжается характерной пиктограммой на левом поле.
Сообщения об ошибках при компиляции появляются непосредственно
в окне редактирования исходных текстов (вверху в центре), и можно быстро
выяснить их причину (внизу)
Когда мы исправили ошибку и заново откомпилировали файл, сообщения от предыдущей попытки исчезли, а если наши исправления были неполными или приносили столько же вреда, сколько пользы, в других местах появлялись новые сообщения.
Как и среда корпорации Symantec, Optima++ позволяет разработчику рассматривать код по частям или как целое. Легко изменяемый параметр задает, следует ли открывать новое окно редактора для каждой отдельной процедуры обработки события или показывать эту процедуру в контексте прочего кода.
Симпатичный штрих второго режима (режим "Большой редактор") - это защита кода, автоматически генерируемого Optima++ (например, объявление класса, которое открывает определение экранной формы), от случайных изменений. Такой код выделяется серым цветом и не может быть изменен. Если точка вставки редактора попадает в такую область, в строке состояния внизу окна появляется сообщение Read-only line (строка только для чтения), а при любой попытке туда что-либо ввести раздается писк.
Редактор исходных текстов Optima++ продолжает устанавливать новые стандарты и в том, что касается его использования для управления отладкой. Характерные пиктограммы и быстро запоминающиеся операции с мышью позволяли нам легко устанавливать точки остановки, задавать выражения для слежения и эффективно осуществлять пошаговое выполнение в ходе сеанса отладки.
Когда наш код функционировал так, как мы хотели, мы построили окончательную версию программы. Она продемонстрировала скорость, которую можно было бы ожидать от лежащего в основе системы компилятора Watcom C/C++. Мы не обнаружили признаков того, чтобы его тормозил груз библиотеки классов Optima++.
И в нашей собственной текстовой консольной реализации, и в разработанной Powersoft элегантной версии с графическим интерфейсом наш тест производительности Tak продемонстрировал такую же или большую скорость, что и код, сгенерированный автономным компилятором Watcom. Это делает Optima++ лидером по целочисленной производительности в тесте Tak среди всех компиляторов для всех языков, которые мы тестировали.
Однако Optima++, как и сам компилятор Watcom C/C++, пришла к финишу позади компиляторов Microsoft, Symantec и Borland в случае с версией Tak, использующей переменные и арифметику двойной точности с плавающей точкой.
Optima++ в отличие от автономной системы разработки Watcom C/C++ не дает желанной гибкости (или ошеломляющего бремени выбора в зависимости от отношения), обеспечиваемой множеством разных параметров оптимизации в этом продукте. Используя Optima++, можно лишь выбрать оптимизацию по скорости, размеру кода или отключить любую оптимизацию.
Продукт предлагает привлекательный набор вариантов развертывания приложений. Простое диалоговое окно, которое легко вызывается из окна менеджера проектов с множественными целями, предлагает параметры, управляющие размером исполняемого файла.
Разработчик может выбрать статическое связывание, что устраняет необходимость распространения вместе с .EXE-файлом продукта файла DLL (библиотека с динамическим связыванием) Optima++ (не требующего отчислений от продаж), но увеличивает размер .EXE-файла и время связывания в процессе разработки. Другие параметры диалогового окна разрешают обнаружение и удаление неиспользуемых виртуальных и/или невиртуальных функций, за исключением целей, которые сами являются DLL-файлами.
Показывай, куда ты идешь
Менеджер проектов Optima++ оказался одним из лучших среди тех, которые мы видели, когда нужно было показать, где мы переопределили установки параметров проекта для конкретных файлов. Рядом с именем каждого файла, для которого были локально изменены параметры, появлялась звездочка. Если мы изменяли параметры по умолчанию, у нас была возможность применить эти новые значения ко всем файлам, для которых в это время были заданы специальные параметры. Мы ощущали, что контролируем все гораздо лучше, чем при использовании, например, средства управления проектом в среде Borland C++.
Optima++, как и системы Symantec C++ и Microsoft C++, предлагает первоклассные инструменты просмотра, позволяющие рассматривать структуру проекта с точки зрения классов и объектов, а также с точки зрения файлов и целей. Он не обладает возможностями реконструкции, доступными в системах, которые включают интуитивные средства для разбора существующего набора файлов и определения общей структуры приложения еще до того, как исходные тексты откомпилированы, но он оказывает огромную помощь в начале работы над проектом в среде Optima++.
Как и Borland Delphi и Microsoft Visual Basic, Optima++ включает мощный механизм доступа к базам данных. В нашем случае это Sybase SQL Anywhere, который и сам по себе является первоклассным продуктом. Утилита Optima++ ODBC Administrator делает конфигурирование простым до тривиальности.
Разрабатывать приложения, управляемые данными, так же просто благодаря графическому инструменту Query Editor (редактор запросов), эффективно использующему возможности пользовательского интерфейса Windows 95, а также режиму Database Dialog (диалоговое окно базы данных) в Optima++ Form Wizard, который проводит через необходимые для этого шаги. Разработчик обладает полными возможностями просмотра кода на SQL, генерируемого автоматическими инструментами, и легко может проверить запрос на реальных данных перед тем, как принять результат.
Когда разработчик впервые открывает упаковку Optima++, первой его реакцией может быть ужас от веса единственного массивного руководства, которое поставляется вместе с CD-ROM. Но не бойтесь. Совсем не нужно - повторяю, не нужно - читать или даже пролистывать этот том из 943 страниц размером с библию, чтобы выполнять с помощью продукта полезную работу.
В действительности это вводное руководство, руководство по работе с продуктом, технический справочник и дополнение по C++, которые просто оказались переплетены вместе, или из которых, по крайней мере, легко можно было бы выбрать группы последовательных глав и заново переплести их под этими названиями. Разработчик, который сделает глубокий вдох, установит продукт и изучит главы 1 и 2, будет совершенно свободно чувствовать себя с Optima++ до того, как приступит к более сложному материалу в последующих главах.
Даже те, кто ранее использовал только Си, смогут быстро переключиться на Optima++ благодаря трем вводным главам по Си++ и завершающему книгу приложению, посвященному библиотеке классов Си++, разумеется, не считая средств, помогающих в объектной разработке, которые делают Optima++ заметным вкладом в рынок инструментов разработки Windows-приложений.
Питер Коффи
Методика тестирования
Тестовый центр PC Week Labs тестировал средства, входящие в Optima++ Developer 1.0 корпорации Powersoft, и скорость сгенерированного ею кода на рабочей станции Micron P90PCI фирмы Micron Electronics на основе 90 МГц Pentium, оборудованной 16 Мб ОЗУ и работающей под Windows 95.
Как и во всех случаях, когда мы тестируем средства разработки с помощью нашей версии теста производительности Tak, результаты в этом случае соответствуют самому агрессивному возможному уровню оптимизации. Мы также построили примеры проектов, которые поставлялись с Optima++, обучающие проекты из документации и наше собственное приложение, выполнявшее тесты производительности Tak и сообщавшее результаты.
OPTIMA++ ВЫХОДИТ ВПЕРЕД БЛАГОДАРЯ СКОРОСТИ C++
Лежащий в основе системы компилятор Watcom обеспечивает высокую производительность
Данные приведены в проходах теста Tak за секунду; более длинные полоски указывают на более высокую производительность
SCOREBOARD
+--------------------------------+-----------+-----------+-------------+-----------+
| | OPTIMA++ | DELPHI |VISUAL BASIC | CLARION |
+--------------------------------+-----------+-----------+-------------+-----------+
|Создание первоначального | A | A | A | A |
|прототипа | | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Создание запросов и отчетов | A | A | A | A |
+--------------------------------+-----------+-----------+-------------+-----------+
|Добавление и настройка | A | A | A | A |
|элементов пользовательского | | | | |
|интерфейса | | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Скорость обработки | A | A | B | A |
+--------------------------------+-----------+-----------+-------------+-----------+
|Интерактивные операции | A | B | B | B |
+--------------------------------+-----------+-----------+-------------+-----------+
|Использование и требования к | A | A | B | B |
|ресурсам | | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Мощность языка программирования | A | A | B | A |
+--------------------------------+-----------+-----------+-------------+-----------+
|Управление версиями | Нет | A | A |Нет данных |
| | данных* | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Поддержка групповой разработки | Нет | A | B | B |
| | данных* | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Мощность репозитория | Нет | A | C |Нет данных |
| | данных* | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Ясность структуры приложения | В | B | B | A |
+--------------------------------+-----------+-----------+-------------+-----------+
|Инкапсуляция данных и логики | А | A | A | A |
|управления | | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Легкость идентификации и | А | A | A | B |
|повторного использования | | | | |
|компонентов | | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Поддержка драйверов баз данных | В | A | B | A |
+--------------------------------+-----------+-----------+-------------+-----------+
|Эффективность использования | А | A | B | A |
|функций работы с сервером баз | | | | |
|данных | | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Легкость определения соединений | А | A | A | A |
|с сервером баз данных | | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Поддержка API взаимодействия | А | A | A | C |
|между приложениями в | | | | |
|операционной системе | | | | |
+--------------------------------+-----------+-----------+-------------+-----------+
|Возможности импорта и экспорта | В | B | B | B |
+--------------------------------+-----------+-----------+-------------+-----------+
|Поддержка платформ Windows | В | A | A | A |
+--------------------------------+-----------+-----------+-------------+-----------+
|Поддержка других платформ |Нет данных |Нет данных | Нет данных |Нет данных |
+--------------------------------+-----------+-----------+-------------+-----------+
|Легкость установки и изучения | А | A | A | A |
+--------------------------------+-----------+-----------+-------------+-----------+
|Справочные материалы | А | A | B | A |
+--------------------------------+-----------+-----------+-------------+-----------+
|Поддержка производителя | В | B | B | B |
+--------------------------------+-----------+-----------+-------------+-----------+
*Возможности планируется включить в версии Optima++ высокого класса, которые должны выйти летом этого года.
Optima++ Developer 1.0
Powersoft Corp.
Analyst’s Choice
DELPHI CLIENT/SERVER SUITE 2.0
Borland International Inc.
Analyst’s choice Обзор: PC Week/RE, № 18/96, с.48
VISUAL BASIC 4.0 ENTERPRISE EDITION
Microsoft Corp.
Analyst’s choice Обзор: PC Week/RE, № 20/95, с. 40
CLARION FOR WINDOWS 1.5
TopSpeed Corp.
Analyst’s choice
СИЛА И СЛАБОСТЬ
Optima++ Developer 1.0
Powersoft Corp., подразделение Sybase Inc.
Конкорд, шт. Массачусетс (800) 395-3525
http://www.powersoft.com
+ Превосходная интеграция; новаторские инструменты, ориентированные на создание компонентов; великолепная скорость выполнения; открытый язык.
- Небольшое число режимов оптимизации; отсутствует разбор перед компиляцией; громоздкое руководство; предназначен только для платформ Win32.
Delphi Client/Server Suite 2.0
Borland International Inc., Скотс-Вэйли, шт. Калифорния (800)233-2444; (408) 431-1000
http://www.borland.com
+ Превосходный фундамент теории проектирования ПО; интегрированный набор инструментов разработки, позволяющий с легкостью использовать код повторно; быстрые приложения с гибкой поддержкой баз данных.
- Требует навыков программирования на языке Паскаль; цена пакета начального уровня довольно высока.
Visual Basic 4.0 Enterprise Edition
Microsoft Corp., Редмонд, шт. Вашингтон
(800) 426-9400; (206) 882-8080
http://www.microsoft.com
+ Быстрый путь к приложениям, использующим специальные возможности OLE; привлекателен для непрофессиональных разработчиков; облегчает распределенное проектирование.
- Объекты определяются на уровне OLE, а не в самом языке; произвольные ограничения на размер структур данных; медленный исполняемый код и объемная DLL-поддержка во время исполнения.
Clarion for Windows 1.5
TopSpeed Corp., Помпейн-Бич, шт. Флорида
(800) 354-5444; (954) 785-4555
http://www.topspeed.com
+ В цикл разработки интегрировано определение баз данных; скорость выполнения кода может конкурировать с полностью компилируемыми языками; язык легко изучать разработчикам, использовавшим COBOL или dBASE.
- Недостаточная поддержка OLE; требует большой DLL-поддержки времени исполнения; многие функции требуют написания кода вручную.
РЕЗЮМЕ
Хотя Optima++ Developer 1.0 корпорации Powersoft представляет собой лишь пакет начального уровня в трехуровневой линии продуктов, которая должна быть завершена в течение лета, он уже бросает вызов производителям конкурирующих средств быстрой разработки приложений, которым теперь нужно не отставать от него по скорости и оправдать использование закрытых языков, поддерживаемых менее интегрированными наборами инструментов. Delphi 2.0 фирмы Borland, Visual Basic 4.0 корпорации Microsoft и Clarion for Windows 1.5 корпорации TopSpeed сохраняют преимущество, обусловленное использованием более легко читаемых языков, чем Си++, однако помогающие при создании кода инструменты Optima++ повышают продуктивность, устраняют проблемы, вызываемые склонным к ошибкам синтаксисом Си++, и ускоряют эффективное использование готовых программных компонентов.