Первый взгляд

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++ повышают продуктивность, устраняют проблемы, вызываемые склонным к ошибкам синтаксисом Си++, и ускоряют эффективное использование готовых программных компонентов.

 

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