СТАТЬЯ |
24.04.03
|
Несколько месяцев назад компания Borland представила «свой вызов Microsoft» — седьмую версию популярного продукта Delphi. Borland пошла даже на такой нетривиальный шаг, как переименование языка программирования, которым отныне является не Object Pascal, а «язык программирования Delphi». Впрочем, это вполне закономерно: в Visual Basic языком программирования является Бейсик, в Visual C, разумеется, Си, а в Delphi был — Паскаль. Как-то не очень логично. Однако на самом деле важно другое: в отличие от Microsoft, которая кардинально перекроила VB (см. статью «Basic форева?»), Borland решила не устраивать революций, а пошла по эволюционному пути. Язык не пострадал — он просто эволюционировал.
Если театр начинается с вешалки, то новая версия ПО — с компонентов, подвергшихся апгрейду. При знакомстве с Visual Studio .NET меня неприятно удивило, во-первых, требование весьма немалого объема памяти (от 64 Мбайт в NT 4.0 до 192 Мбайт в Win2000 Server), а во-вторых, что еще неприятнее, отказ работать в Windows 981. Delphi 7 в этом смысле оказался гораздо терпимее: младшенький из семейства (Delphi 7 Personal Edition) работает на P233 о 48 мегабайтах памяти. По крайней мере, в этих суровых условиях среда реально запускается, а на более мощных (и, главное, обеспеченных памятью) машинах IDE функционирует в нормальном режиме.
рис. 1
Что касается многочисленных нововведений, то мне не хотелось бы пересказывать раздел документации под названием «What’s new», благо в Сети уже есть нормальный перевод2. Поэтому остановлюсь лишь на самых важных и интересных моментах. Как и следовало ожидать, появился целый ряд новых компонентов. Во-первых, новый генератор отчетов — Rave. Помимо удобств, которые обеспечивает визуальный редактор (см. рис. 1), поддерживается вывод во все самые распространенные форматы: обычный текст, HTML, RTF и PDF. В версиях выше персональной можно использовать этот генератор и в CLX-приложениях. Естественно, вывод на печать и предварительный просмотр выше всяких похвал, так что остается надеяться, что Borland будет и дальше развивать Rave, а не изменит ему с новым фаворитом.
рис.2
Следующий момент носит скорее эмоционально-эстетический характер. Теперь с помощью встроенных средств Delphi можно создавать приложения, меню и панели инструментов которых даже в Windows 98 будут выглядеть в духе WinXP (рис. 2).
Среда разработки изменилась сравнительно мало — разве что появилось автозавершение кода для HTML, WML, XHTML и XSL.
Интернет остается основной движущей силой прогресса, поэтому закономерно появились новые средства и инструменты, упрощающие работу с вебом. В Delphi 7 значительно расширен список серверов и клиентов (Internet Direct — Indy), так что теперь создать свой собственный «мини-Апач» (а заодно и FTP, и почтовый сервер с поддержкой IMAP и POP, и серверы IRC, Telnet, Whois… в общем, «много-много в одном») можно буквально на коленке. Кроме того, добавлена поддержка одного из самых популярных веб-серверов — Apache 2.0.
рис.3
Еще одно новшество — мощное средство для создания серверных приложений IntraWeb (рис. 3). При этом серверная часть может быть не только самостоятельным приложением (в виде Windows service), но и модулем для Apache или IIS. Клиентом же выступает браузер — заявлено о поддержке IE, Netscape и Mozilla.
Следующие изменения говорят о взрослении продукта: наконец-то добавился целый ряд серьезных инструментов для разработчиков. Во-первых, появился нормальный UDDI-браузер (Universal Description, Discovery and Integration). Во-вторых, в состав дистрибутива входит ModelMaker, инструмент для разработки, настройки и обслуживания интерфейсов и классов. В-третьих, расширена поддержка XML.
И, наконец, следует упомянуть ставшую уже обязательной поддержку манифеста для Windows XP, так что теперь любое приложение, созданное с использованием Delphi 7, автоматически сможет менять «шкурки» через встроенный в WinXP механизм.
Несмотря на значительные улучшения, существует целый ряд моментов, которые несколько портят общее впечатление. Например, Borland переняла у Microsoft дурную манеру просто так, за здорово живешь, удалять популярные компоненты и модули. Так, в новой версии пострадали старые «отчетные» компоненты, FastNet, сокеты и некоторые компоненты для работы с базами данных. Безусловно, всем им есть более чем достойная замена — только вот тем разработчикам, которые использовали эти компоненты, можно лишь посочувствовать: код придется переписать. Далее: возросла «падучесть» IDE даже в весьма банальных ситуациях, таких как вызов браузера объектов или операции вставки элементов управления из буфера. По-прежнему есть недоработки в IDE — например, нельзя просто открыть текст процедуры или функции, если их код находится не в теле модуля, а во внешнем файле и подключен через {$include …}. Поставляемая документация также не подверглась кардинальным изменениям, в ней остались все старые «болячки». Во-первых, исполнение справочной системы явно устарело: справка поставляется в виде набора HLP-файлов — стандарта весьма преклонного, по компьютерным меркам, возраста. Почему-то более удобный вариант — CHM — игнорируется. Во-вторых, помимо формы страдает и содержание: информационное наполнение практически не изменилось, тема, которая заведомо есть в справке, может быть запросто не найдена через встроенный поиск и т. д.
Если предназначением шестой версии было обеспечение совместимости с Kylix, то седьмая версия несет знамя .NET. Надо сказать, что, несмотря на нетривиальность задачи, специалистам Borland удалось выпустить .NET-компилятор в срок3. Он имеет статус «Preview», тем не менее, ничего плохого о нем сказать нельзя. Хотя сам компилятор первоначально не интегрирован в IDE4, путем несложных манипуляций в командной строке вполне реально получить работоспособный .NET-код. Кроме того, зарегистрированные пользователи Delphi 7 могут скачать обновление Delphi for .NET Preview, включающее предварительную версию VCL .NET5.
Помимо компилятора, доступны и другие весьма полезные возможности: во-первых, можно беспрепятственно импортировать и использовать .NET-сборки (assembly) как обыкновенные COM-объекты6. Верно и обратное, COM-объекты, созданные Delphi, можно будет беспрепятственно использовать в .NET-приложениях.
Во-вторых, добавлены специальные опции компилятора — .NET-специфические предупреждения. Компилятор «просматривает» программу и предупреждает о «потенциально опасных» (unsafe) участках кода. Несмотря на кажущуюся бесполезность, это дает уникальные возможности по отлову «неуловимых» ошибок времени исполнения, когда приложение попросту виснет с ошибкой доступа к памяти.
Каким бы замечательным продукт ни был, человек устроен так, что ему всегда не хватает какой-нибудь мелочи. Для Delphi-программистов такими мелочами стали дополнительные компоненты, расширяющие и без того богатую палитру. Здесь можно сказать, что практически все популярные пакеты совместимы с новой версией и либо вышли уже со специальными настройками и установочными файлами для Delphi 7, либо могут быть установлены в обычном для Delphi 6 порядке. Сказанное касается и самого популярного отечественного пакета RxLib, где последний из релизов RX Library JEDI без проблем ставится на новый Delphi.
В общем, я бы взял на себя смелость утверждать, что продукт удался. Borland успела-таки вскочить в уходящий поезд, не забыв на всякий случай и собственную, конкурирующую с .NET платформу J2EE, что в конечном счете на руку пользователям. Конечно, сидение на двух стульях ни к чему хорошему не приводит, яркие тому примеры — полуживые BDE и CORBA, так и не совладавшие с ADO и COM соответственно. С другой стороны, язык не поворачивается критиковать компанию за постоянные попытки на равных конкурировать с гигантом из Редмонда. Вполне возможно, что если бы не такой технологический прессинг, MS никогда бы не решилась на те революционные шаги, плодами которых все мы (с удовольствием или без) пользуемся.
Дополнительная информация
За дополнительной информацией обращайтесь в компанию Interface Ltd.
INTERFACE Ltd. |
|