Архивы: по дате | по разделам | по авторам

Мы пойдем другим путем

Архив
автор : Андрей Драница   31.03.2003

Несколько месяцев назад компания Borland представила «свой вызов Microsoft» — седьмую версию популярного продукта Delphi.

 Несколько месяцев назад компания Borland представила «свой вызов Microsoft» — седьмую версию популярного продукта Delphi. Borland пошла даже на такой нетривиальный шаг, как переименование языка программирования, которым отныне является не Object Pascal, а «язык программирования Delphi». Впрочем, это вполне закономерно: в Visual Basic языком программирования является Бейсик, в Visual C, разумеется, Си, а в Delphi был — Паскаль. Как-то не очень логично. Однако на самом деле важно другое: в отличие от Microsoft, которая кардинально перекроила VB (см. статью «Basic форева?», «КТ» #465), Borland решила не устраивать революций, а пошла по эволюционному пути. Язык не пострадал — он просто эволюционировал.

Гардероб

Если театр начинается с вешалки, то новая версия ПО — с компонентов, подвергшихся апгрейду. При знакомстве с Visual Studio .NET меня неприятно удивило, во-первых, требование весьма немалого объема памяти (от 64 Мбайт в NT 4.0 до 192 Мбайт в Win2000 Server), а во-вторых, что еще неприятнее, отказ работать в Windows 981. Delphi 7 в этом смысле оказался гораздо терпимее: младшенький из семейства (Delphi 7 Personal Edition) работает на P233 о 48 мегабайтах памяти. По крайней мере, в этих суровых условиях среда реально запускается, а на более мощных (и, главное, обеспеченных памятью) машинах IDE функционирует в нормальном режиме.

Что касается многочисленных нововведений, то мне не хотелось бы пересказывать раздел документации под названием «What’s new», благо в Сети уже есть нормальный перевод2. Поэтому остановлюсь лишь на самых важных и интересных моментах. Как и следовало ожидать, появился целый ряд новых компонентов. Во-первых, новый генератор отчетов — Rave. Помимо удобств, которые обеспечивает визуальный редактор (см. рис. 1), поддерживается вывод во все самые распространенные форматы: обычный текст, HTML, RTF и PDF. В версиях выше персональной можно использовать этот генератор и в CLX-приложениях. Естественно, вывод на печать и предварительный просмотр выше всяких похвал, так что остается надеяться, что Borland будет и дальше развивать Rave, а не изменит ему с новым фаворитом.

Следующий момент носит скорее эмоционально-эстетический характер. Теперь с помощью встроенных средств Delphi можно создавать приложения, меню и панели инструментов которых даже в Windows 98 будут выглядеть в духе WinXP (рис. 2).

Среда разработки изменилась сравнительно мало — разве что появилось автозавершение кода для HTML, WML, XHTML и XSL.

Интернет остается основной движущей силой прогресса, поэтому закономерно появились новые средства и инструменты, упрощающие работу с вебом. В Delphi 7 значительно расширен список серверов и клиентов (Internet Direct — Indy), так что теперь создать свой собственный «мини-Апач» (а заодно и FTP, и почтовый сервер с поддержкой IMAP и POP, и серверы IRC, Telnet, Whois… в общем, «много-много в одном») можно буквально на коленке. Кроме того, добавлена поддержка одного из самых популярных веб-серверов — Apache 2.0.

Еще одно новшество — мощное средство для создания серверных приложений IntraWeb (рис. 3). При этом серверная часть может быть не только самостоятельным приложением (в виде Windows service), но и модулем для Apache или IIS. Клиентом же выступает браузер — заявлено о поддержке IE, Netscape и Mozilla.

Следующие изменения говорят о взрослении продукта: наконец-то добавился целый ряд серьезных инструментов для разработчиков. Во-первых, появился нормальный UDDI-браузер (Universal Description, Discovery and Integration). Во-вторых, в состав дистрибутива входит ModelMaker, инструмент для разработки, настройки и обслуживания интерфейсов и классов. В-третьих, расширена поддержка XML.

И, наконец, следует упомянуть ставшую уже обязательной поддержку манифеста для Windows XP, так что теперь любое приложение, созданное с использованием Delphi 7, автоматически сможет менять «шкурки» через встроенный в WinXP механизм.


1 (назад)Важно, что под Windows 98 не работает именно среда разработки, а сделанные в ней программы в этой ОС работать будут.
2 (назад) delphiplus.nagano.ru/articles/delphi/ whats_new_in_delphi7.html.

Проблемы
Несмотря на значительные улучшения, существует целый ряд моментов, которые несколько портят общее впечатление. Например, Borland переняла у Microsoft дурную манеру просто так, за здорово живешь, удалять популярные компоненты и модули. Так, в новой версии пострадали старые «отчетные» компоненты, FastNet, сокеты и некоторые компоненты для работы с базами данных. Безусловно, всем им есть более чем достойная замена — только вот тем разработчикам, которые использовали эти компоненты, можно лишь посочувствовать: код придется переписать. Далее: возросла «падучесть» IDE даже в весьма банальных ситуациях, таких как вызов браузера объектов или операции вставки элементов управления из буфера. По-прежнему есть недоработки в IDE — например, нельзя просто открыть текст процедуры или функции, если их код находится не в теле модуля, а во внешнем файле и подключен через {$include …}. Поставляемая документация также не подверглась кардинальным изменениям, в ней остались все старые «болячки». Во-первых, исполнение справочной системы явно устарело: справка поставляется в виде набора HLP-файлов — стандарта весьма преклонного, по компьютерным меркам, возраста. Почему-то более удобный вариант — CHM — игнорируется. Во-вторых, помимо формы страдает и содержание: информационное наполнение практически не изменилось, тема, которая заведомо есть в справке, может быть запросто не найдена через встроенный поиск и т. д.

Поддержка .NET
Если предназначением шестой версии было обеспечение совместимости с 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 (jvcl. sourceforge.net) без проблем ставится на новый Delphi.

Пока не ушел поезд
В общем, я бы взял на себя смелость утверждать, что продукт удался. Borland успела-таки вскочить в уходящий поезд, не забыв на всякий случай и собственную, конкурирующую с .NET платформу J2EE, что в конечном счете на руку пользователям. Конечно, сидение на двух стульях ни к чему хорошему не приводит, яркие тому примеры — полуживые BDE и CORBA, так и не совладавшие с ADO и COM соответственно. С другой стороны, язык не поворачивается критиковать компанию за постоянные попытки на равных конкурировать с гигантом из Редмонда. Вполне возможно, что если бы не такой технологический прессинг, MS никогда бы не решилась на те революционные шаги, плодами которых все мы (с удовольствием или без) пользуемся.


3 (назад) Предупреждение специально для любителей приобретать новинки не у официальных дилеров, а в Митино: подавляющее большинство пиратских CD Borland Delphi 7 не содержат .NET-компилятор. Комплект ПО должен быть как минимум на двух CD: на первом — собственно Delphi 7, на втором — дополнительные компоненты.
4 (назад) Проблема решается путем установки патча, доступного на Borland Community, который интегрирует компилятор в среду разработки.
5 (назад) bdn.borland.com/article/0,1410,29302,00.html.
6 (назад) На самом деле объекты .NET используются не напрямую, а через своеобразную «обертку» CCW — COM Callable Wrapper.

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.