25 августа 2009-го года был выпущен релиз очередной версии Embarcadero RAD
Studio. Как и предыдущая, новая RAD Studio 2010 включила в себя три полноценных
продукта, предназначенных для разработки программного обеспечения - Delphi
2010, C++ Builder 2010 и Delphi Prism 2010. В данном обзоре
речь пойдет, прежде всего, о Delphi 2010. C++ Builder использует тот же самый
IDE и практически ту же самую библиотеку классов, что и Delphi, поэтому
акцентировать внимание на нем я не вижу смысла. Delphi Prism, напротив, является
относительно новым (впервые увидел свет в прошлом году) и очень интересным
продуктом, и, как мне показалось, он достоин отдельного обзора.
В рамках многочисленных конференций, проводящихся компанией Embarcadero в
преддверии выпуска нового продукта, было анонсировано сразу несколько проектов:
- Weaver - очередная версия Delphi;
- Delphi X - кроссплатформенная Delphi, поддерживающая Windows, Linux и
MacOS; - Chromium - основной упор будет сделан на качество;
- Commodore - реализация 64-битной версии Delphi и C + + Builder.
Давайте, однако, определимся, с чем мы имеем дело в текущем релизе.
Из анонсов не совсем понятно, в каком виде, собственно, компания планирует
реализовывать вышеперечисленные проекты. Но очевидно, что Delphi 2010 это
реализация проекта Weaver. Собственно, выставляемые на открытое бета
тестирование версии продукта имели именно такое рабочее название. Вероятнее
всего, реализации Delphi X и Commodore станут попросту дополнениями проекта
Weaver. Возможно, разработчикам будет предоставляться альтернативный компилятор.
К сожалению, более точной информации мне пока найти не удалось.
Если говорить непосредственно о Delphi 2010, то сразу можно отметить
немаловажный момент - поддержка Microsoft Windows 7. На этот раз, команда
разработчиков оказалась готова к выходу новой операционной системы заранее.
Уместно вспомнить, что полноценная поддержка Windows Vista и ее нововведений,
появилась только через год, после выхода этой ОС.
Таким образом, Delphi 2010 может работать на одной из следующих ОС:
- Microsoft Windows 7;
- Microsoft Windows XP Home or Professional (SP3);
- Microsoft Windows VistaTM (SP1);
- Microsoft Windows Server 2003 (SP1) или 2008.
Также для работы IDE требуется Microsoft Internet Explorer 6.0 SP1 или более
поздний, и рекомендуется установить все доступные обновления операционной
системы.
Кроме этого, для работы необходимы следующие программные продукты:
- Microsoft .NET Framework 2.0 SP1 Redistributable Package (или более
поздней версии); - Microsoft Visual J# version 2.0 Redistributable Package;
- Microsoft Data Access Components (MDAC) 2.8;
- Microsoft Core XML Services (MSXML) 6.0;
- Language Pack for MS .NET Framework 2.0.
Все вышеперечисленное включено в установочный пакет Delphi и необходимо лишь
для работы IDE. Для работы программ, написанных на Delphi, эти компоненты не
требуются.
Минимальные требования к аппаратной части остались примерно такими же, как и
в предыдущей версии:
- 3,5 Гб свободного дискового пространства, и еще около 0,5 Гб для
разворачивания временных файлов; - Intel Pentium или совместимый процессор, 1.4GHz ГГц минимум (2GHz+
рекомендовано); - 1GB RAM (2 GB рекомендовано).
По традиции, установка производится с помощью on-line инсталлятора. Впрочем,
на официальном сайте Embsrcadero доступен и iso-образ установочного DVD диска.
На этот раз для ознакомления предоставляется 30-и дневная триальная версия Rad
Studio.
Варианты распространения RAD-Studio 2010 не изменились (все те же три
редакции Profesional, Enterprice и Architect). И стоимость продуктов осталось
примерно той же.
Перед тем, как перейти непосредственно к рассмотрению Delphi 2010 в действии,
стоит отметить колоссальную работу, проделанную для того, что бы выпустить
действительно качественный продукт.
Так в период с начала календарного года до даты выхода релиза, исходя из
данных отчетов, были исправлены 2537 ошибок в Delphi (из которых 781 была
найдена пользователями и бета-тестерамии опубликована на Quality Central). Для
C++ Builder 730 и 198, соответственно. Насколько я понимаю, были исправлены и
баги, имевшие место в предыдущих версиях.
Тем не менее, отдельные баги, в частности связанные с использованием
национальных символов в коде программ, все же остались.
Если посмотреть на список нововведений, то Delphi 2010 вряд-ли можно назвать
революционной, хотя отдельные нововведения достойны внимания. Вместе с тем,
некоторые блоггеры отмечают, что Delphi 2010 - самая быстрая IDE семейства
Delphi на сегодняшний день. Но обо всем по порядку.
Инсталляция Delphi и C++ Builder заняла 25 минут. Еще столько же заняла
установка документации к новому продукту. При установке на чистую ОС (в моем
случае Windows Vista 64-bit) никаких недоразумений не возникло. Если же у вас
уже установлены какие-либо продукты из состава RAD-Studio 2009, то новая версия
может быть развернута только при наличии сервис-паков в составе предыдущей.
Разработчики несколько изменили внешний вид нового продукта. Имеется в виду
преображение логотипов, заставок и другой внешней атрибутики. Вероятно, компания
Embarcadero решила таким образом подчеркнуть, что отныне это полностью их
продукт.
Наибольшее количество функциональных изменений в новой версии продукта
касаются IDE.
Здесь, прежде всего, следует упомянуть IDE Insight. Я бы это определил как
навигатором IDE. Нажав F6 или Ctrl+ "." вы увидите на экране окно с древовидным
списком, элементы которого соответствуют ключевым пунктом меню. Таким образом,
по мнению разработчиков, вам не придется запоминать ни горячие клавиши, ни
расположение искомого элемента в меню. Все на виду, грамотно расположено,
работает фильтрация (это удобно в тех редких случаях, когда вы точно знаете, как
называется то, что вы ищете). Лично меня данная функциональность не особо
впечатлила. Я и так знаю, где располагается то, с чем я постоянно работаю. А вот
начинающим кодерам, возможно, это новшество будет полезно.
Вторым, если не по значимости, то по частоте упоминания, изменением в IDE,
стала возможность привести Delphi к "классическому виду".
Старый внешний вид (как в Delphi 7) и современный (как в Visual Studio) давно
стал предметом споров пользователей Delphi. Действительно, для многих
адаптироваться к IDE образца 2004 го года было довольно тяжело. В Delphi 2010
наконец-то появилась возможность вернуть палитру компонентов на привычное место
в верхней части экрана. Хотя теперь, когда большинство пользователей уже
отказались от Delphi 7, это выглядит не совсем логичным. Ниже вы можете увидеть
результаты одного из опросов на тему популярности версий Delphi.
Следующее, на что стоит обратить внимание – новая система поиска в редакторе
кода. Больше всего она визуально напоминает строку поиска в FireFox. Конечно,
искать налету, не вызывая модальное окно значительно удобнее. К тому же
появилась поддержка регулярных выражений.
Диалог поиска в файлах остался модальным. Но добавилась возможность
использовать маску файла и указать директорию для поиска.
В принципе, если говорить об IDE, то можно отметить доработку многих
диалогов, а так же появление во многих из них дополнительных опций. Например,
можно отключать сворачивание кода (Code Folding) или завершение кода (Code
Completion).
Некоторые изменения претерпел и редактор кода. В частности, появилась
возможность автоматически форматировать код. К сожалению, форматировать можно
только модули, входящие в состав проекта. Что, опять же, на мой взгляд, не
совсем логично. Зато, форматирование - полностью настраиваемое и количество
опций – весьма внушительное. Фактически, вы можете настроить автоформатирование
под свой стиль написания кода.
Кроме того, и ручное форматирование кода стало несколько удобней. С помощью
табуляции теперь можно смещать не только отдельные строки, но и блоки кода.
Так же в IDE Delphi 2010 появилась еще одна интересная возможность – фоновая
компиляция. Эта опция включается в диалоге Enviropment Options. Там же задается
ее приоритет. Полупрозрачное немодальное окно процесса компиляции смещается в
правый нижний угол, при этом редактор кода остается доступным.
В Architect версии Delphi 2010 появились средства анализа кода - QA Аудит и
QA Метрика. Как видно из скриншотов, данные инструменты позволяют выявить QA
характеристики кода.
Несколько полезных вещей добавилось в дебаггере. Прежде всего, это
возможность использовать точки прерывания (breakpoints) в потоках (threads). Так
же появилось возможность регистрировать визуализаторы для типов данных.
Наконец-то можно посмотреть значение даты и времени в нормальном виде, а не в
виде числа типа Real.
Все, описанное мною выше, лишь сделало среду разработки более удобной. Однако
в Delphi 2010 появились и принципиально новые возможности. Прежде всего, это
новый механизм RTTI. Run Time Type Information - очень эффективное средство,
позволяющее получать информацию о типах в режиме исполнения (Run Time).
В Delphi 2010 в функциональность языка были добавлены атрибуты, подобно тому,
как это работает в .Net. По сути, атрибуты хранят в себе некую мета-информацию о
типах.
Помимо атрибутов, новый RTTI предоставляет разработчикам значительно больше
возможностей. В рамках обзора не имеет смысла перечислять весь доступный
функционал, для тех, кто хочет детально исследовать этот вопрос, я рекомендую
оригинальный
цикл статей Роберта Лава (Robert Love) или
перевод его статей на
русский.
В контексте RTTI, естественно, были внесены дополнения и в VCL. Модуль
RTTI.pas включил в себя все необходимые для работы классы. Но это далеко не все
изменения в библиотеке классов. Следует отметить поддержку Direct2D. Наконец-то
в Delphi включена поддержка механизмов, встроенных в новую ОС (в данном случае
Windows 7) еще до ее выхода.
Еще одной интересной особенностью новой VCL стала поддержка механизма
естественного ввода - альтернативного механизма ввода данных, с помощью
устройств основанных на прикосновениях (Gesturing) (классические примеры таких
устройств – точпад, точскрин или световое перо). Почти все визуальные компоненты
обзавелись свойством Touch и событием OnGesture. Соответственно, появился и
новый набор компонентов, помогающий организовать работу с Gesturing. О том, как
это работает, вы можете прочесть
здесь.
Обратной стороной медали является увеличение размера исполняемых файлов.
Пустая форма с кнопкой компилируется в исполняемый файл размером 811 Kb.
Для тех, кто работает с БД, также есть несколько новинок. Так в наборе
DBExpress появилась поддержка InterBase 2009, MS SQL Server 2008. MySQL 5.1 и
Firebird.
Так же существенно расширились возможности DataSnap. Для тех, кто хочет
разобраться с тем, как использовать данную технологию, я бы рекомендовал
ознакомиться с
видеоуроками Dr. Bob'а. Там же, можно скачать мини-учебник по работе с
DataSnap.
И, пожалуй, последнее, о чем стоит упомянуть в обзоре нового продукта –
дальнейшее развитие встроенных UML средств и обновление Tools API.
Давайте попробуем подытожить все вышесказанное и попытаться понять, что же мы
получили в новой версии Delphi.
- Более быстрая, надежная и удобная IDE.
- Радикально обновленный RTTI, со значительно более широкими возможностями,
чем в предыдущих версиях. - Развитие технологий работы с БД; обновленный DataSnap.
- Попытка охватить интересы не только кодеров, но и других участников
процесса разработки ПО (UML, QA инструменты). - Новые возможности VCL, позволяющие использовать альтернативные устройства
ввода данных.
Как правило, всегда после выпуска очередной редакции любой IDE, в Рунете
начинают появляться многочисленные вопросы о том, стоит, или не стоит переводить
свои проекты на новую версию. Однозначно ответить на такие вопросы сложно, но,
тем не менее, некоторые аспекты, позволяющие повлиять на принятие решения можно
выделить.
Я говорил выше, что выход Delphi 2010, с моей точки зрения, не принес
какой-то революционной функциональности. Упор скорее сделан на
производительность IDE и ее удобство. Кстати, многие блоггеры отметили, что
новая среда стала заметно быстрее. Возможно это так, специально я не производил
никаких измерений. Но то, что она стала удобней – факт неоспоримый. Хотя бы за
счет мелких доработок в IDE.
Отдельным вопросом является цена продукта. Она по-прежнему высока для
отечественных разработчиков, и, судя по всему, будет оставаться таковой еще
долго. Вопрос с Turbo редакциями продукта, похоже, решен. Их выпуск не стоит в
списке первоочередных задач компании. С другой стороны, Embarcadero начала
активно бороться с нелегальным использованием своих продуктов. В частности,
первый же сервиспак, выход которого не заставил себя долго ждать, единственной
своей целью преследовал именно усиление защиты.
Очевидно, что при переводе существующих проектов на Delphi 2010 особых
проблем возникать не должно. Если вместе с поддержкой юникод в Delphi 2009
пришли новые форматы строковых типов, что в большинстве случаев серьезно
усложнило портацию проектов, то переход с Delphi 2009 на Delphi 2010 не будет
сопрягаться с такими трудностями. А при переходе с более ранних версий сразу на
Delphi 2010 можно учесть опыт предыдущей версии. Как следствие, новые версии
компонентов сторонних производителей, поддерживающие Rad Studio 2010, появились
практически одновременно с выходом базового продукта.
Думаю, вне зависимости от того, решитесь ли вы использовать новый продукт или
нет, посмотреть на него стоит. И будем надеяться, что Embarcadero сумеет в
ближайшее время реализовать все свои планы по развитию продукта и вновь вернуть
Delphi позиции в числе лидеров среди средств разработки программного
обеспечения.