ПЕРВЫЙ ВЗГЛЯД Delphi версии 2.0 работает в два раза быстрее, чем версия 1.0, и позволяет расширить команду разработчиков
Выпущенный в феврале фирмой Borland International пакет Delphi 2.0 никак не повредит репутации версии 1.0, честно заработанной за счет отличной скорости и четкой дисциплины программирования.
Мы бы рекомендовали любое из трех изданий Delphi 2.0 (их цена составляет от $500 до $2000) для быстрого создания программных продуктов многих типов.
При этом следует отметить, что со времени первого выпуска пакета Delphi прошло меньше года. Borland поставила перед собой большие цели и достигла их - повысила продуктивность разработки, расширила функции для связи с базами данных и увеличила скорость приложений так, что код Delphi 2.0 по скорости выполнения теперь уступает только С++.
32-разрядную версию Delphi можно снова назвать “Выбором аналитика” - вместе с двумя конкурирующими продуктами для быстрой разработки приложений: Visual Basic 4.0 корпорации Microsoft и Clarion for Windows 1.5 корпорации TopSpeed.
Visual Basic остается более удобным инструментом создания приложений для тех, от кого не требуется написание кода, и предоставляет более удобный доступ к тому, что стало первыми шагами Microsoft к созданию сетевого стандарта OLE (связывание и встраивание объектов). Clarion for Windows включает язык, по организации сравнимый с входящим в Delphi языком Object Pascal, а также основанный на данных цикл разработки, облегчающий быстрое создание и реализацию эффектных пользовательских интерфейсов баз данных.
Как удалось Delphi, явившись ниоткуда, меньше чем за год поколебать позиции уже завоевавших популярность инструментов? По утверждению официальных представителей Borland, одна из причин этого в том, что Delphi с самого начала разрабатывался с позиций 32-разрядной архитектуры, и результаты наших тестов подтвердили справедливость их слов.
Освободившись от сегментированного адресного пространства 16-разрядной Windows-среды, Delphi 2.0 выполнил предложенный сотрудниками Тестового центра PC Week Labs независимый от языка эталонный тест Tak в 2,4 раза быстрее, чем версия 1.0 при использовании целочисленных переменных, и более чем в 6,5 раз быстрее, когда были задействованы переменные двойной точности с плавающей запятой.
Таким образом, скорость Delphi 2.0 при выполнении теста Tak с целочисленными переменными оказалась выше, чем у Visual С++ 4.0 корпорации Microsoft, С++ 7.2 корпорации Symantec и даже последней бета-версии компилятора С++ 5.0 самой фирмы Borland. Только С/С++ 10.5 корпорации Watcom International оказался быстрее Delphi 2.0 в этом компактном, но интенсивном тесте на скорость генерированного кода (см. диаграмму эталонного теста).
Впрочем, скорость программы иногда бывает удобнее измерять при помощи календаря, а не секундомера: определяя время, прошедшее с момента выдвижения требования и до создания хорошего самостоятельно разработанного приложения, отвечающего ему. Программа Delphi 2.0 показала себя также хорошо и при определении этого параметра. Ее функции координации коллективных разработок расширены, а взаимодублирование при работе сведено до минимума.
Инструментарий разработки и производительность
Когда Delphi идет в лобовую с Visual Basic корпорации Microsoft и Clarion корпорации TopSpeed, в первом раунде большинства таких соревнований измеряется время, необходимое для создания простого приложения - обычно графического интерфейса с несколькими средствами управления и полями ввода данных и небольшим количеством логики в основе.
Диалоговое окно New Items предоставляет пользователям Delphi 2.0 большой расширяемый и хорошо
организованный набор программных модулей и средств помощи в их создании
При выполнении задач такого рода Delphi 2.0 значительно превосходит эти языки и большинство других конкурирующих программ за счет широкого (и расширяемого) депозитария заранее определенных элементов: от Automation Object или Thread (поток) и вплоть до Windows 95 Logo Application. Как и входящие в пакет Clarion for Windows или, скажем, Visual С++ либо Symantec С++ автоматизированные средства помощи при разработке, системы Dialog Expert и Application Expert пакета Delphi позволили нам легко определить общие черты структуры и внешнего вида программы еще до того, как мы обратились к визуальному инструментарию Delphi для завершения работы.
Использование визуального инструментария - не всегда самый удобный метод. Одна картинка может стоить тысячи слов, но иногда текст бывает легче изменить, поэтому текст является более удобным способом представления исходного кода при контроле версий и в других средствах помощи в разработке. Поэтому многим понравится появившаяся в Delphi 2.0 опция просмотра модулей проекта как редактируемого текста в дополнение к обычному графическому представлению.
Например, вместо двойных щелчков на всех пиктограммах при просмотре таблиц, представленных группой пиктограмм Table, мы просто переключили этот экран модуля данных (Data Module) в текстовый режим и просмотрели список.
Как и инструмент деловой графики, Delphi 2.0 предлагает ряд обычных форматов форм и диалоговых окон, разработчик может расширить их за счет местных стандартов, чтобы добиться единообразия. Нам понравился унифицированный способ, при помощи которого ко всему депозитарию Delphi, в том числе статическим определениям и средствам помощи в разработке Expert, можно было легко получить доступ из пункта New в меню File. Когда это было уместным, из того же диалогового окна New Items можно было обрабатывать даже такие опции, как копирование или наследование элемента (при том что последняя захватывала последующие изменения в депозитарий).
Если говорить о копировании элементов, то один из ключевых моментов в повышении производительности труда разработчиков - это облегчение многократного использования программных модулей, например средств управления OLE. Программа Delphi 2.0 позволила нам легко импортировать любые средства управления OLE, известные нашей тестовой среде Windows 95, и автоматически встраивать их в свой набор, пользуясь при этом методом “перетащи и оставь”.
Однако лидерам Borland, руководящим разработкой Delphi, следовало бы почаще оглядываться назад, поскольку их быстро настигает Optima++ корпорации PowerSoft. Мы протестировали последнюю бета-версию программы, и этот напоминающий Delphi инструмент корпорации PowerSoft для С++ продемонстрировал отличный подход к использованию доступных в средствах управления OLE методов и позволил чрезвычайно легко задействовать их, требуя минимальных затрат на написание кода.
В основе группы редакторов кода и визуальных инструментов пакета Delphi лежит компилятор Object Pascal, в этом выпуске улучшены его возможности определения ошибок и вывода предупреждений. Этот язык по типу Pascal сам по себе обеспечивает уровень защиты от ошибок, превосходящий возможности большинства компиляторов С++. Например, благодаря строгим правилам типизации данных языка Pascal компилятор обнаружил, что мы “случайно” попытались включить в исходный код эталонного теста Tak десятичную точку, и устранил последствия.
Visual Basic также допускает объявление типов переменных, но не требует этого, хотя мы обнаружили, что при отсутствии деклараций типов скорость VB 4 при выполнении теста Tak снижается более чем в два раза по сравнению с самым высоким уровнем производительности. Даже принадлежащий самой Borland компилятор С++ 5.0 не создал предупреждения, когда мы сознательно перепутали типы данных, что также снизило скорость Tak при работе с целочисленными переменными в два раза (Visual С++ 4.0, напротив, предупредил нас о нашей “ошибке”).
В отличие от входящих в Clarion и Visual Basic неполных компиляторов, компилятор Delphi может выполнять низкоуровневую оптимизацию кода, однако единственными вариантами оптимизации являются “on” (включена) и “off” (выключена). Optima++, наоборот, предлагает оптимизацию либо по скорости, либо по размеру.
Delphi даст сто очков вперед всем пакетам,
кроме C++
32-разрядная модернизированная версия выполняет
эталонный тест Tak намного быстрее, чем 16-разрядная
Мы уже говорили о впечатляющей скорости Delphi во всех случаях, когда мы просматривали версии этого продукта (начиная с бета-версии 1.0 в феврале прошлого года). При этом Delphi позволяет эффективно использовать системные ресурсы. Представляя собой независимые .EXE-файлы, Delphi-приложения не требуют громоздких библиотек времени выполнения, что затрудняет распространение приложений на Visual Basic или Clarion. При этом мы обратили внимание, что Optima++ предоставляет разработчику выбор между независимой компоновкой и библиотекой времени выполнения, в каждом случае предлагая лучшее.
Еще одна принципиально важная категория инструментов разработки - инструментарий для генерации запросов к базам данных и отчетов. Даже низкоклассный пакет Delphi Desktop включает удобный инструмент QuickReports, а разработчикам, всерьез связанным с базами данных, потребуется вариант Client/ Server Suite, в который дополнительно входят графический инструмент Database Explorer, SQL-монитор и конструктор Visual Query Buider, а также более гибкий генератор отчетов ReportSmith. Из всех этих инструментов только ReportSmith и QuickReports включены в пакет Delphi Developer ценой в $1000.
БАЗОВАЯ АРХИТЕКТУРА И ПОДДЕРЖКА ОБЪЕКТНОГО ПРОГРАММИРОВАНИЯ
Мы уже отмечали в этом обзоре высокий уровень обнаружения ошибок кодирования (одно из семантических достоинств) языка Object Pascal пакета Delphi. Похоже, этот язык так и не завоюет достойного внимания. Скорее всего, многие организации из-за предполагаемых затрат на переподготовку разработчиков при переходе с Си или Си++ отдадут предпочтение основанной на Си++ программе Optima++ (она выйдет в мае), в результате потеряв ради небольшой кратковременной выгоды возможность значительно сэкономить на написании и поддержке кода.
Как и Си++, язык пакета Delphi предлагает обработку чрезвычайных ситуаций для хорошо структурированных определений и обработку ошибок во время выполнения. Однако в отличие от Си++ Delphi не позволяет переопределять операторы для расширения языка и не включает множественного наследования или шаблонов для обобщения написанного кода. Впрочем, мы допускаем, что большинство разработчиков бизнес-приложений говорят об этих языковых функциях больше, чем их используют.
Модули данных Delphi 2.0 допускают централизованное определение таблиц данных и источноков
данных приложений, которые потом можно использовать при разработке других проектов
Мы не стали бы писать в Delphi драйвер устройства, однако большая часть продукта написана на нем самом: он не такой игрушечный, как Visual Basic, и не так узко специализирован, как Clarion for Windows.
Версия Delphi Client/Server Suite 2.0 готова принять на себя большую нагрузку в крупных организациях и обеспечивает лучшую поддержку коллективных разработок, чем любой из виденных нами наборов инструментария, кроме подготовленного к выпуску пакета Borland С++ 5.0. В это высококлассное издание пакета Delphi включена лицензионная версия системы контроля версий PVCS фирмы Intersolv, и Delphi 2.0 можно сконфигурировать так, чтобы при запуске нового проекта программа открывала определенный локально шаблон из депозитария.
Мы еще не видели среду, которая превосходила бы Delphi по удобству инкапсуляции и многократного использования уже сделанных фрагментов, при этом обходясь без громоздкого дерева классов, которое губит инструменты типа Smalltalk. Если говорить о поддержке ясной картины общей структуры создаваемого приложения, то мы, несомненно, отдадим предпочтение Clarion for Windows: программа Delphi предоставила нам отличную возможность просматривать фрагменты, но она не так, как Clarion, удобна для просмотра целого.
ПОДДЕРЖКА БАЗ ДАННЫХ И ИНТЕГРАЦИЯ РАБОЧЕЙ ОБЛАСТИ
Нас восхитило, как просто при работе в Delphi 2.0 можно абстрагировать таблицы и источники данных. Функция Data Module упрощала индивидуальные приложения и позволяла распределять обязанности по разработке и поддержке между несколькими связанными приложениями.
Delphi также инкапсулирует клиент-серверные элементы типа сохраненных процедур сервера баз данных, при этом последний отображается как тип данных высокого уровня, способный захватить весь набор результатов последовательных операций (в том числе и курсор). Все операции с базами данных осуществляются при помощи 32-разрядного механизма Borland Database Engine, который входит в Delphi 2.0 вместе с богатой библиотекой SQL-драйверов для Oracle, SQL Server, DB2 и других мощных источников данных. Полный набор функций Borland Database Engine позволяет также использовать любой источник данных, если он поддерживается драйвером Open Database Connectivity.
С сетевыми приложениями будет удобнее работать благодаря оценке данных на уровне клиента. Ее можно проводить при помощи словаря данных пакета Delphi, что позволяет снизить загрузку сети.
По возможностям эксплуатации среды Windows 95 Delphi 2.0 оказалась между Visual Basic 4.0 и Clarion for Windows 1.5, но гораздо ближе к первому. Clarion for Windows предлагает доступ только на уровне API и функций утилит для DDE, а Delphi обеспечивает инкапсуляцию классов и заранее определенные шаблоны для создания взаимодействующих приложений. Visual Basic чувствует себя в Windows как рыба в воде, свободно делая то, что для него естественно, но не так легко адаптируется, когда появляется необходимость в чем-то необычном.
КРОСС-ПЛАТФОРМНАЯ ПОДДЕРЖКА
Очень жаль, что эта отличная система разработки дает программистам еще один повод забыть обо всех платформах, кроме Windows. Как и в случаях с Visual Basic, Clarion for Windows и еще не вышедшей Optima++, кажется, что больше деваться некуда. Delphi предлагает полный доступ к таким функциям Windows 95 и Windows NT, как средства управления Windows 95, многосвязность и контроллеры и серверы автоматизации OLE.
Между Object Pascal и правилами конструирования и использования серверов OLE Automation существуют определенные конфликты, но они хорошо задокументированы и проиллюстрированы включенными в Delphi примерами проектов. Работая с Delphi, придется обходиться без удобных средств удаленной автоматизации для разделенных приложений, которые отличают Visual Basic 4.0, однако нам кажется, что многие будут относиться к этой области с подозрением до тех пор, пока не смогут выяснить, чем на самом деле станет сетевое решение OLE.
ПОДДЕРЖКА И ДОКУМЕНТАЦИЯ
Мы легко инсталлировали Delphi на тестовой машине под Windows 95. Система оперативной помощи была вполне адекватна и включала широкий набор примеров и перекрестных ссылок.
Печатные инструкции тоже хорошие, ничего особенного, но вполне достаточно для разработчиков, которые полагают, что лучший способ изучить новый инструмент - читать инструкции в общественном транспорте. В целом печатные и оперативные обучающие материалы показались нам отличными. Delphi также посвящено большое количество материалов в независимых изданиях.
Другие разработчики свято уверены, что учиться лучше всего друг у друга, не доверяя ничему, что предоставляет производитель, и ничему, что уже настолько старо, что даже попало на бумагу. Мы проверили форум Delphi в CompuServe и обнаружили почти 2400 сообщений более чем по 850 темам.
Питер Коффи
ДРУГИЕ ЗВЕЗДЫ
Для многих задач мы бы рекомендовали Delphi, но Visual Basic корпорации Microsoft или Clarion for Windows корпорации TopSpeed предпочтительны для задач, при выполнении которых можно задействовать их сильные стороны
Программируемые пользовательские инструменты
Delphi Client/Server Suite 2.0
Borland International Inc.
Скотс-Вэйли, шт. Калифорния
(800) 233-2444
(408) 431-1000 http://www.borland.com
ДОСТОИНСТВА. Отличная программная основа; интегрированный инструментарий разработки, облегчающий многократное использование кода; быстрые приложения с гибкой поддержкой баз данных.
НЕДОСТАТКИ. Требует знания языка Pascal, что менее распространено, чем знание Basic или Си++; минимальная версия гораздо дороже, чем аналогичная версия Visual Basic.
Visual Basic 4.0 Enterprise Edition
Microsoft Corp.
Редмонд, шт. Вашингтон
(800) 426-9400
(206) 882-8080 http://www.microsoft.com
ДОСТОИНСТВА. Хорошие возможности расширенного использования архитектуры OLE; непрофессиональные разработчики могут приобрести его и легко в нем разобраться; удаленная автоматизация OLE облегчает создание серверов приложений.
НЕДОСТАТКИ. Объекты определяются на уровне OLE, а не основного языка; специальные ограничения на размер структуры данных; медленный исполняемый код и громоздкая DLL времени выполнения.
Clarion for Windows 1.5
TopSpeed Corp.
Помпано-Бич, шт. Флорида
(800) 354-5444
(954) 785-4555 http://www.topspeed.com
ДОСТОИНСТВА. Цикл разработки включает определение баз данных; скорость кода можно сравнить с той, которую обеспечивают полностью компилируемые языки; разработчикам на COBOL и dBASE легко выучить язык.
НЕДОСТАТКИ. Неадекватные функции OLE; требует большой DLL времени выполнения; многие функции требуют кодирования вручную.
РЕЗЮМЕ. Delphi 2.0 сочетает в себе современный богатый основной язык с хорошими возможностями поддержки и эффективный инструментарий, обладающий лучшими чертами и визуальных, и текстовых инструментов кодирования. Язык пакета Clarion for Windows 1.5 также хорош, хотя в нем и нет глубинной объектной архитектуры Delphi, он лучше подходит для разработчиков, чьи приложения основываются прежде всего на структуре лежащей в основе базы данных. Visual Basic 4.0 по мощности программирования не может конкурировать ни с Delphi, ни с Clarion, но это самый простой и доступный инструмент для непрофессиональных разработчиков и останется самым удобным путем перехода к разделенным OLE-приложениям до тех пор, пока не появится полноценный сетевой стандарт OLE.
+-------------------------------------+------------------------+---------------------------+-------------------+
| | Delphi Client/ Server | Visual Basic 4.0 | Clarion for |
| | Suite 2.0 | Enterprise Edition | Windows 1.5 |
| | Borland International | Microsoft Corp. | TopSpeed Corp. |
| | Inc. | | |
+-------------------------------------+------------------------+---------------------------+-------------------+
Инструментарий разработки
+-------------------------------------+------------------------+---------------------------+-------------------+
|Создание начальных прототипов | ОТЛИЧНО | ОТЛИЧНО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Создание запросов и отчетов | ОТЛИЧНО | ОТЛИЧНО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Добавление и улучшение элементов | ОТЛИЧНО | ОТЛИЧНО | ОТЛИЧНО |
|пользовательского интерфейса | | | |
+-------------------------------------+------------------------+---------------------------+-------------------+
Производительность
+-------------------------------------+------------------------+---------------------------+-------------------+
|Скорость обработки | ОТЛИЧНО | ХОРОШО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Интерактивные операции | ХОРОШО | ХОРОШО | ХОРОШО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Использование ресурсов и требования | ОТЛИЧНО | ХОРОШО | ХОРОШО |
|к ним | | | |
+-------------------------------------+------------------------+---------------------------+-------------------+
Лежащая в основе архитектура
+-------------------------------------+------------------------+---------------------------+-------------------+
|Мощность языка программирования | ОТЛИЧНО | ХОРОШО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Контроль версий | ОТЛИЧНО | ОТЛИЧНО | ОТСУТСТВ. |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Поддержка групповых разработок | ОТЛИЧНО | ХОРОШО | ХОРОШО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Мощность депозитария | ОТЛИЧНО | УДОВЛ. | НЕТ ДАННЫХ |
+-------------------------------------+------------------------+---------------------------+-------------------+
Поддержка объектного программирования
+-------------------------------------+------------------------+---------------------------+-------------------+
|Четкость структуры приложения | ХОРОШО | ХОРОШО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Инкапсуляция данных и логики | ОТЛИЧНО | ОТЛИЧНО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Простота идентификации и | ОТЛИЧНО | ОТЛИЧНО | ХОРОШО |
|многократного использования | | | |
|компонентов | | | |
+-------------------------------------+------------------------+---------------------------+-------------------+
Поддержка баз данных
+-------------------------------------+------------------------+---------------------------+-------------------+
|Драйверная поддержка баз данных | ОТЛИЧНО | ХОРОШО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Эффективность использования функций | ОТЛИЧНО | ХОРОШО | ОТЛИЧНО |
|сервера баз данных | | | |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Легкость определения связи с | ОТЛИЧНО | ОТЛИЧНО | ОТЛИЧНО |
|серверами баз данных | | | |
+-------------------------------------+------------------------+---------------------------+-------------------+
ИНТЕГРАЦИЯ РАБОЧЕЙ ОБЛАСТИ
+-------------------------------------+------------------------+---------------------------+-------------------+
|Поддержка API различных приложений | ОТЛИЧНО | ОТЛИЧНО | УДОВЛ. |
|под оригинальной операционной | | | |
|системой | | | |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Возможности импорта-экспорта | ХОРОШО | ХОРОШО | ХОРОШО |
+-------------------------------------+------------------------+---------------------------+-------------------+
Кросс-платформная поддержка
+-------------------------------------+------------------------+---------------------------+-------------------+
|Windows | ОТЛИЧНО | ОТЛИЧНО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Macintosh | ОТСУТСТВ. | ОТСУТСТВ. | ОТСУТСТВ. |
+-------------------------------------+------------------------+---------------------------+-------------------+
|OS/2 | ОТСУТСТВ. | ОТСУТСТВ. | ОТСУТСТВ. |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Unix | ОТСУТСТВ. | ОТСУТСТВ. | ОТСУТСТВ. |
+-------------------------------------+------------------------+---------------------------+-------------------+
Документация и поддержка
+-------------------------------------+------------------------+---------------------------+-------------------+
|Простота инсталляции и изучения | ОТЛИЧНО | ОТЛИЧНО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Справочные материалы | ОТЛИЧНО | ХОРОШО | ОТЛИЧНО |
+-------------------------------------+------------------------+---------------------------+-------------------+
|Помощь производителя | ХОРОШО | ХОРОШО | ХОРОШО |
+-------------------------------------+------------------------+---------------------------+-------------------+