CodeGear Delphi for PHP: приживется ли RAD-подход на платформе LAMP?

27 август, 2007 - 14:13Вячеслав Колдовский

Похоже, CodeGear как преемник Borland на рынке инструментальных средств решила кардинально пересмотреть свою стратегию. Вместо того чтобы соперничать с признанными лидерами этого сегмента, компания пытается осваивать относительно востребованные, но все еще не занятые ниши. Первой пробой стал продукт, название которого вынесено в заголовок статьи – вполне возможно, что от его успеха в значительной степени зависят и дальнейшие планы CodeGear.

Одной из ниш, привлекших внимание CodeGear, оказались RAD-средства для LAMP (Linux + Apache + MySQL + PHP) – самой распространенной Web-платформы. По оценкам NetCraft.com, сегодня ей принадлежит до 60% рынка, однако, несмотря на это, для нее до сих пор практически отсутствовали инструментальные средства, призванные обеспечить создание решения в RAD-стиле подобно тому, как это делается для ASP.NET с применением Microsoft Visual Studio.

Тем не менее сообщение о появлении Delphi for PHP сторонники продуктов CodeGear восприняли неоднозначно: с одной стороны, выход на новые рынки можно только приветствовать, но с другой – обращение к марке Delphi уж очень похоже на попытку воспользоваться славой оригинального продукта для продвижения другого, непосредственно к нему не относящегося. Отметим, что до выпуска Delphi for PHP под Delphi подразумевали исключительно одноименную среду разработки и основанный на синтаксисе Pascal язык программирования; все прочие инструментальные пакеты Borland/CodeGear носили свои собственные имена, даже если имели общие IDE и библиотеку компонентов VCL.

Знакомый незнакомец

Хотя представители CodeGear в 2006 г. недвусмысленно намекали на новые интересные проекты, выход Delphi for PHP стал в значительной степени неожиданным. На момент официального анонса в феврале текущего года публике был продемонстрирован практически готовый к коммерческому распространению продукт, находящийся на финальной стадии тестирования. А ведь не так уж просто удержать в секрете весьма масштабный проект, каковым является создание полноценной среды разработки, основанной на богатой библиотеке компонентов и обладающей, по заверениям сотрудников компании, наиболее развитыми возможностями среди себе подобных.

Однако тайна вокруг происхождения Delphi for PHP продержалась недолго. Вскоре выяснилось, что этот продукт был создан совместно с испанской qadram, занимающейся разработкой Web-решений и анонсировавшей в прошлом году RAD-среду qstudio, базирующуюся на библиотеке классов WCL (Web Class Library) – в описании этих продуктов без труда узнаются соответственно нынешняя Delphi for PHP и библиотека VCL for PHP. Неудивительно, что одновременно с анонсом Delphi for PHP компания qadram объявила о своем партнерстве с CodeGear и о прекращении работ над qstudio. К слову, изначально qstudio предполагалось распространять бесплатно, взимая деньги только за расширенную поддержку в форме годовой подписки (на момент написания статьи информация о проекте qstudio все еще была доступна по адресу www.qadram.com/faq.php).

Поставка и цены

Дистрибутив Delphi for PHP по современным меркам очень небольшой – менее 30 MB. В него входит IDE со встроенным отладчиком, Web-сервер Apache 2, интерпретатор PHP 5, библиотека VCL for PHP с примерами использования, а также три справочных файла: по самой IDE, библиотеке классов и языку PHP. Отметим, что инсталляция Apache и PHP фактически сводится к копированию файлов в указанную папку и не влияет на другие присутствующие на компьютере экземпляры. Дистрибутив существует только в версии для Windows, о возможности выпуска продукта для других платформ пока не известно, хотя кросс-платформенность в данном случае более чем востребованна.

В отличие от qstudio, Delphi for PHP, естественно, является коммерческим продуктом с рекомендованной ценой $299. Годовая подписка на поддержку соответственно обойдется в $99.

Интерфейс

CodeGear Delphi for PHP приживется ли RAD-подход на платформе LAMP?
Интерфейс Delphi for PHP как две капли воды напоминает Delphi 2007

Среда разработки выполнена идентично с другими IDE от CodeGear. К примеру, с одного взгляда отличить Delphi for PHP от «обычной» Delphi 2007 (ko.itc.ua/30531) совсем не просто – та же страница Welcome Page в цент-ре; аналогичный менеджер проекта в верхней правой области, под которым находится привычная панель инструментов; в левой части размещены навигатор кода и инспектор объектов (только очень наметанный глаз сможет сходу опознать Delphi for PHP по размещенной в нем дополнительной вкладке JavaScript); меню и горизонтальная панель инструментов также весьма похожи, хотя и различаются рядом элементов.

Отметим, что подобие новоявленной Delphi ее «классической» версии не ограничивается исключительно внешними атрибутами, оно гораздо глубже – в визуальной философии построения приложений, разбивке элементов по группам и пр. Но, пожалуй, самое главное – в именовании и поведении компонентов, из которых строится приложение. В частности, опытный Delphi-программист может начать использовать Delphi for PHP, даже не будучи знакомым с языком PHP – настолько привычным оказывается процесс разработки. К чести CodeGear следует отметить, что в новом пакете реализовано не только множество привычных визуальных компонентов, но и большое число невизуальных, таких как таймер, списки изображений или традиционные для Delphi компоненты доступа к данным. Помимо прочего, сохранены обычные для Delphi технология их установки, принципы размещения по пакетам и вкладкам.

В целом, работа в Delphi for PHP максимально приближена к использованию технологии IntraWeb (ныне именуемой VCL for the Web) в «классической» Delphi. Таким образом, по нашему мнению, выбор компанией CodeGear названия для своего нового продукта вполне обоснован, и его не стоит воспринимать как исключительно маркетинговый шаг.

Возможности продукта

Теперь попытаемся чуть глубже разобраться в возможностях продукта, чтобы лучше понять, для каких проектов он может оказаться полезным.

Delphi for PHP генерирует ОО-код PHP 5 на основе библиотеки классов VCL for PHP, для построения приложений доступно более 50 готовых компонентов, а в качестве СУБД, помимо MySQL, можно использовать InterBase, Oracle, Microsoft SQL Server (но только для InterBase имеется отдельная вкладка с нативными элементами). Поддерживается работа с шаблонами, посредством которых осуществляется разделение интерфейса и бизнес-логики, есть возможности для интернационализации создаваемых решений при помощи встроенных механизмов.

VCL for PHP заслуживает отдельного внимания – несмотря на коммерческий характер среды разработки, сама по себе библиотека классов является размещенным на ресурсе SourceForge открытым проектом, развиваемым под лицензией GNU GPL. Она создана на PHP 5 и обеспечивает поддержку нескольких других популярных решений для PHP и JavaScript, например, Qooxdoo, Adodb, DynAPI, Smarty, XAjax, JSCalendar. Отметим, что такая «разношерстность» привела к ряду проблем, в первую очередь с совместимостью отдельных визуальных компонентов, претендующих на одни и те же ресурсы браузера, – в частности, в текущей версии VCL for PHP некоторые элементы, такие как GraphicMainMenu и PageControl, не могут размещаться на одной форме.

Редактор кода Delphi for PHP поддерживает подсветку синтаксиса для большого числа форматов, которые могут быть использованы при разработке типичного Web-решения, – помимо PHP, это HTML, XML, SQL, JavaScript и многие другие. Для упрощенного ввода кода имеется функция Code Insight, а также поддержка шаблонов для часто повторяющихся конструкций. По умолчанию установлены клавиатурные сочетания, традиционные для всех IDE Borland/CodeGear, но поддерживаются и команды других популярных сред, в том числе Microsoft Visual Studio.

Визуальный дизайнер отличается некоторой медлительностью, особенно при загрузке формы и размещении на ней элементов управления, что можно объяснить значительными расходами вычислительных ресурсов на отрисовку «неродных» для Windows PHP-элементов, хотя таких же нареканий заслуживает и IDE в целом. Впрочем, несмотря на это, среда разработки вполне стабильна и не преподносит сюрпризов. Генерируемый дизайнером PHP-код достаточно лаконичен и приводит к созданию столь же лаконичного, лишенного «мусора» HTML-кода.

CodeGear Delphi for PHP приживется ли RAD-подход на платформе LAMP?
Встроенный отладчик обладает всеми атрибутами современного инструмента

Встроенный отладчик позволяет создавать точки останова, пошагово исполнять код, просматривать значения переменных, т. е. это вполне современный и развитый инструмент. Кстати, он также не является полностью собственной разработкой CodeGear, а базируется на популярном среди PHP-разработчиков продукте PHP DBG Listener (nusphere.com).

Поскольку PHP относится к интерпретируемым языкам, то решения на основе VCL for PHP требуют для своего исполнения файлов, реализующих использованные классы. Для того чтобы исключить необходимость размещения на Web-сервере всей библиотеки, а также упростить поиск нужных классов, Delphi for PHP содержит мастер развертывания, который автоматически сканирует проект и копирует в заданную папку все файлы, требуемые для его работы. Затем эту папку достаточно скопировать на Web-сервер, и на этом развертывание проекта можно считать законченным. Важно то, что хотя сама по себе Delphi for PHP предназначена только для Windows, построенные с ее помощью решения могут использоваться на любой платформе, поддерживающей PHP.

CodeGear Delphi for PHP приживется ли RAD-подход на платформе LAMP?
Идеология работы с компонентами полностью позаимствована у «обычных» Delphi

Delphi for PHP поставляется с большим количеством примеров, что типично для продуктов Borland/CodeGear. По их характеру можно понять, что пакет пригоден для создания всего спектра решений, типичных для LAMP: от простых сайтов с минимальным уровнем интерактивности до сложных динамических, таких как интернет-магазины, в том числе с полной поддержкой Ajax.

Кроме разработки визуальных Web-решений, Delphi for PHP также можно применять для программирования Web-сервисов, функционирующих на основе SOAP, для наглядного построения HTML-интерфейсов с применением CSS или даже просто в качестве редактора чистого PHP-кода. Но несмотря на то что такие сценарии и описаны в документации, их вряд ли можно отнести к основным.

Стоит также отметить, что хотя Delphi for PHP и поставляется с Apache, возможно использование и любого другого Web-сервера, поддерживающего PHP, к примеру IIS, однако корректная работа встроенного отладчика в таком случае не гарантируется.

В результате Delphi for PHP можно охарактеризовать как вполне продуманную и гармоничную среду разработки, обладающую «прямо из коробки» всем необходимым для создания достаточно сложных решений для платформы LAMP и при этом отличающуюся простотой использования, как и положено настоящим RAD-инструментам.

Заключение

Безусловно, Delphi for PHP очень интересна, но в первую очередь для разработчиков, знакомых с другими инструментами от Borland/CodeGear, обладающими унифицированными интерфейсом IDE и библиотеками компонентов. Для прочих преимущества пакета, возможно, будут не столь очевидны и однозначны, а отдельные аспекты покажутся даже противоречивыми.

Прежде всего отметим, что PHP – действительно очень распространенный язык программирования, но его популярность во многом вызвана дешевизной (точнее говоря, бесплатностью) основных составляющих платформы LAMP и инструментальных средств. На этом фоне коммерческая Delphi for PHP с относительно высокой стартовой ценой, в которую к тому же не включена поддержка, выглядит не таким уж конкурентоспособным предложением. При этом пакет работает только на платформе Windows, тоже достающейся не даром. На текущий момент не существует бесплатной редакции Delphi for PHP с несколько ограниченными функциональными возможностями – в отличие от большинства других IDE от CodeGear, для которых имеются аналоги в продуктовой линейке Turbo. А ведь все это крайне актуально именно для Delphi for PHP – в силу ее назначения и позиционирования. Вероятно, уместнее была бы бизнес-модель, которой собиралась придерживаться компания qadram для qstudio.

Далее, давайте поразмыслим об особенностях позиционирования Delphi for PHP. CodeGear нацелила свой новый продукт на фактически не занятую до настоящего времени нишу RAD для PHP. Но возможно, эта ниша пустовала не по случайному стечению обстоятельств, а по вполне объективной причине – из-за отсутствия серьезного спроса? Мы уже упоминали, что процесс разработки в Delphi for PHP в значительной степени схож с применением технологии IntraWeb в «классической» Delphi. Однако, несмотря на все удобства последней, она, как известно, так и не снискала популярности. Правда, Delphi for PHP лишена одного из главных недостатков IntraWeb – ограничений собственно серверной платформы, но зато другой – слепое перенесение принципов создания настольных приложений в сферу Web-разработки – присущ ей несомненно.

Действительно, в Web давно уже существуют свои философия и идеология разработки, которым чужды многие подходы, принятые в других софтверных отраслях. К примеру, для Web-приложений, как правило, характерно наличие небольшого количества функционально насыщенных Web-страниц, сокращающих число вынужденных переходов между ними, в то время как для настольных приложений правилом хорошего тона считается создание отдельного окна для реализации каждого функционального блока. Другая особенность Web-решений состоит в первичности оформления – дизайнеры формируют внешний вид сайта, который затем программисты наполняют требуемой логикой. Но, хотя Delphi for PHP в полной мере поддерживает шаблоны, сама идеология RAD-разработки не поощряет разделения интерфейсной части и кода.

Возможно также, что CodeGear вынашивает определенные планы по продвижению Delphi for PHP в корпоративную среду, для создания intranet-приложений. Однако здесь сегодня крайне прочны позиции ASP.NET и Java и, похоже, PHP будет не под силу тягаться с ними.

Таким образом, в лице Delphi for PHP мы получили довольно любопытный продукт, но с недостаточно четким позиционированием. Пожалуй, единственная очевидная ниша, где он имеет шанс выбиться в лидеры – это средства быстрого прототипирования для PHP, спрос на которые в последнее время растет. Впрочем, нельзя исключить и того, что сам факт появления Delphi for PHP приведет к определенному пересмотру методов разработки на PHP, как более десяти лет назад произошло в настольном сегменте с выходом первой версии Delphi.

e-mail автора: [email protected]