Delphi, FireMonkey, All-Access и иные приятные сюрпризы
Прошло больше трех лет с того момента, как подразделение CodeGear, отвечающее за создание таких всемирно известных инструментов, как Delphi, C++Builder и JBuilder, а также СУБД Interbase, стало частью компании Embarcadero Technologies, известной своими инструментами для проектирования и администрирования баз данных, и два года — с тех пор, как мы обсуждали на страницах нашего журнала, чего ожидать в области развития инструментов, столь популярных у российских разработчиков. О том, что нового было сделано в этой области за последние два года и чего ждать в ближайшее время, мы попросили рассказать Дэвида Интерсимоне, вице-президента по связям с разработчиками и главного евангелиста компании Embarcadero Technologies, и Кирилла Раннева, главу представительства Embarcadero Technologies в России. Для самых молодых наших читателей сообщим, что это далеко не первое интервью, которое Дэвид и Кирилл дают КомпьютерПресс, — наше сотрудничество продолжается уже второй десяток лет. И примерно столько же лет мы периодически публикуем обзоры инструментов для управления базами данных, в которых большое внимание уделяется продуктам компании Еmbarcadero.
КомпьютерПресс: Дэвид, ваше подразделение является частью Embarcadero уже три года. Два года назад вы были полны энтузиазма по поводу того, что оно стало частью компании, близкой вам по целям и духу. Изменилось ли чтото за это время? Испытываете ли вы и ваши коллеги прежний энтузиазм?
Дэвид Интерсимоне: Да, я по-прежнему полон энтузиазма. Главное изменение, произошедшее с того момента, как мы стали частью компании Embarcadero, — это то, что было сделано много инвестиций в развитие Delphi. Увеличилось количество сотрудников, работающих над средствами разработки, возросло количество технологий, которые мы можем разрабатывать или, при необходимости, приобретать.
Дэвид Интерсимоне
Выпуск RAD Studio XE 2, который мы планируем продемонстрировать в Москве, — это самый крупный выпуск данного продукта с огромными возможностями и большим количеством поддерживаемых платформ со времен первой версии Delphi, созданной еще для 16-разрядной версии Windows и бывшей инновационным продуктом, который соединил компонентный подход и компиляцию в машинный код. Теперь мы поддерживаем разработку не только для Windows, но и для Macintosh, не говоря уже о вебразработке и создании приложений для мобильных устройств, и эти приложения для разных платформ могут иметь единый код.
Новая платформа разработки — FireMonkey — это совместная работа компании Embarcadero и недавно приобретенной российской фирмы KSDev из УланУдэ, производителя компонентов для векторной графики, DirectX и OpenGL, технологий создания графических эффектов и компонентов Delphi, использующих графический процессор с PixelShader 2.0. Мы приобрели компанию KSDev (см. ksdev.ru) год назад и начали совместные работы с целью создания многоплатформенного средства разработки, включающего платформу с целью разработки приложений FireMonkey с компонентами для Delphi и C++Buider для создания пользовательского интерфейса приложений, интеграции с базами данных, обработки графики с применением графического процессора и интеграции с операционной системой.
С помощью FireMonkey можно создать приложение, при выполнении которого совместно работают центральный и графический процессоры, а затем с помощью разных компиляторов и библиотек времени выполнения (Run-time Libraries, RTL) можно скомпилировать его для Windows, Mac OS или iOS. Вместо того чтобы изучать программирование с применением различных графических библиотек, изучать API разных платформ, имеющих различные системы координат и разные возможности, разработчики, использующие Delphi и C++Builder, могут применять один и тот же компонентный подход, визуально редактируя формы и осуществляя подключение к базам данных путем перемещения компонента мышью. Это принципиально новый способ создания приложений, выполняющихся на разных платформах, и за ним будущее. Если вы захотите добавить для вашего приложения поддержку других операционных систем и платформ, не потребуется его заново проектировать и разрабатывать — достаточно будет просто перекомпилировать его.
Мы создаем новые компиляторы, генерирующие машинный код (native code). Сегодня есть компиляторы Delphi для 32- и 64-разрядных версий Windows, 32-разрядных версий Mac OS 10. И мы работаем над компиляторами Delphi и C++Builder следующего поколения, которые позволят создавать высокопроизводительный машинный код как для перечисленных, так и для других платформ, таких как Android или Linux, и сохранять тот же самый дизайн, те же самые компоненты, тот же самый код за счет применения разных компиляторов и библиотек времени выполнения.
Как видите, причин для энтузиазма у меня достаточно. И разработчики, с которыми я встречаюсь по всему миру, знают, что Embarcadero вкладывает много средств в Delphi и C++Builder, а также в средства разработки для PHP.
КП: Каких успехов в области интеграции инструментов двух компаний вы сумели достичь за прошедшие два года? Каковы планы компании Embarcadero на будущее в этой области?
Д.И.: На момент, когда подразделение CodeGear стало частью Embarcadero, эта компания имела команды разработчиков в Торонто, Монтеррее и Румынии, мы находились и по-прежнему находимся в СкоттсВэлли и в России, в Санкт-Петербурге. У Embarcadero были инструменты для разработчиков и администраторов баз данных, у CodeGear — средства разработки приложений, но последние тоже используют базы данных. Объединение компаний — это объединение экспертизы, знаний в области баз данных, оптимизации кода, в том числе серверного. Объединение компаний привело также к созданию нового продукта AppWave — специальной технологии для превращения обычного Windows-приложения в нечто очень простое в использовании (наподобие приложений для iPhone или других устройств). AppWave позволяет не устанавливать приложение, а просто выбирать его и запускать с серверахранилища подготовленных приложений (app), при этом оно будет выполняться на пользовательском компьютере, не внося изменений в его реестр и системную область файловой системы. Кстати, браузер приложений AppWave написан на Delphi. Embarcadero использует Dephi для собственных разработок и нашу экспертизу в области разработки приложений.
Приложение для iPhone (iOS), созданное
с помощью платформы FireMonkey
Можно также применять интеграцию наших средств разработки и DB Optimizer для оптимизации SQL-запросов при создании приложений. Передавая SQL-код непосредственно в DB Optimizer, можно профилировать его, тестировать и вернуть обратно в среду разработки его оптимизированную версию. Экспертиза Embarcadero в области баз данных также позволила улучшить технологию DataSnap. Благодаря разработчикам из Торонто мы получили много знаний об архитектуре многозвенных систем и баз данных. Сейчас мы обладаем совместной экспертизой в области создания серверного кода и хранимых процедур в обеих компаниях. У нас есть такие инструменты, как RapidSQL и DB Change Manager, а также среды разработки, которые упрощают создание серверного кода, — например технологии Code Insight и Code Completion позволили создать технологии SQL insight и SQL Completion. Наши общие подходы к созданию клиентского и серверного кодов, наша общая философия позволяют придавать общие черты инструментам для управления базами данных и средствам разработки приложений.
Кирилл Раннев: Хочу добавить коечто важное. С коммерческой точки зрения очень важно, как мы поставляем наши инструменты. Например, новый выпуск RAD Studio XE 2 Ultimate включает полный набор инструментов DB Power Studio. Это очень мощный набор инструментов, включающий среду разработки запросов RapidSQL, инструмент управления изменениями DB Change Manager и средство оптимизации запросов DB Optimizer, позволяющие осуществлять важную часть процесса разработки и развертывания, управляя изменениями в модели данных, базе данных, коде и т.д. Это очень хорошая и правильная комбинация технологий.
Д.И.: Но, если нужно, разработчики могут применять Subversion для управления версиями исходного кода и DB Change Manager для управления версиями метаданных. Можно использовать профилирование кода и DB Optimizer для оптимизации серверного кода, RapidSQL для создания и отладки серверного кода и наши среды разработки для создания и отладки приложений. Эта комбинация техологий в RAD Studio XE Ultimate Edition демонстрирует параллели между моделями разработки баз данных и приложений. Большинство разработчиков, создающих бизнес-приложения с помощью Delphi и C++Builder, работают с базами данных и нуждаются в этих инструментах, и RAD Studio XE Ultimate Edition — это отличная комбинация для таких разработчиков.
КП: Современный пользователь — это уже не пользователь одной только платформы Windows. Мы применяем мобильные устройства, iPhone, iPad, устройства на базе платформы Android. Это означает, что разработчики должны начать ориентироваться на различные платформы без существенного увеличения инвестиций в обучение — то есть нужны универсальные инструменты. Очевидно, что ожидать появления универсальных инструментов от производителей платформ нереально, и в этом вопросе мы можем рассчитывать только на независимых производителей инструментов. В чем мы можем рассчитывать на компанию Embarcadero?
Д.И.: Нам еще многое предстоит сделать в области поддержки платформ. Сегодня мы представляем поддержку для платформы iOS для iPhone и iPAD, затем нашу поддержку получат смартфоны на базе платформы Android, Windows 7 и Blackberry. В RAD Studio XE 2 мы начали с создания платформы FireMonkey для iOS, а затем перенесем FireMonkey на другие платформы.
В то же время существует большое количество операционных систем с поддержкой сенсорных экранов (touch screen), для телефонов, планшетных компьютеров и устройств, настольных компьютеров, и мы будем продолжать добавлять поддержку для них. Кроме того, существуют системы управления голосом, движением, биометрические системы, акселерометры, поэтому мы должны продолжать расширять FireMonkey, чтобы все разработчики могли воспользоваться преимуществами новых платформ. Например, устройство Microsoft Kinect было предназначено для Xbox 360, а сейчас есть соответствующий SDK (Software Development Kit) и для Windows. И у нас уже есть примеры, в которых мы используем движение для управления приложением примерно так же, как обычно применяются мышь или клавиатура.
Когда вы создаете приложения с большим количеством сложной графики, вы генерируете целый мир новых пользовательских интерфейсов. Если мы имеем дело с операционной системой Windows, мы инкапсулируем ее прикладной программный интерфейс Windows API в библиотеке VCL (Visual Component Library — библиотека визуальных компонентов, являющаяся составной частью средств разработки Delphi и C++Builder. — Прим. ред.), которую, кстати, можно применять и далее. И в FireMonkey мы инкапсулируем API операционной системы. Но сегодня мы манипулируем формами и графикой гораздо более широко. Можно также добавить физические свойства пространства для анимации и спецэффектов. Кроме того, существует огромное количество иных дополнительных возможностей по созданию пользовательских интерфейсов, которые мы собираемся реализовать в ближайшие несколько лет для разных платформ, мобильных и планшетных устройств.
Компания Microsoft недавно обнародовала подробную информацию о Windows 8, которая должна выйти через год. Эти нововведения мы будем поддерживать в библиотеке VCL и в платформе FireMonkey. Но Delphi — это средство разработки, предназначенное не только для Windows, но и для Macintosh, iPhone и iPad. Мы также развиваем наши продукты для PHP, поддерживаем jQuery Mobile, используем прикладной программный интерфейс iOS для разработки мобильных клиентских приложений и создаем серверные PHP-приложения, используя мастера и инструменты для генерации клиентского JavaScript- и HTML-кодов и каскадных таблиц стилей. Мы можем создавать пакеты из приложений PHP и клиентских приложений с native-кодом для iPhone iOS, при этом такой клиент будет общаться с сервером PHP. А тот, в свою очередь, будет общаться с сервером баз данных и с вебслужбами — со всем, что нужно для бизнеса.
Среда разработки RadPHP XE2. Создание мобильного веб-приложения
с применением компонентов jQuery Mobile для iPhone 3G
Иными словами, мы планируем расширять возможности FireMonkey и VCL, в том числе в области поддержки мобильных платформ.
КП: Не могли бы вы подробнее рассказать о платформе FireMonkey?
Д.И.: Как я уже отметил, библиотека VCL, созданная для Windows, будет продолжать развиваться и совершенствоваться. Но сегодня, если вы хотите реальной разработки бизнес-приложений, вы должны создавать их для разных платформ. Для этого и предназначена платформа FireMonkey. Она поддерживает создание пользовательских интерфейсов с высоким разрешением, высокопроизводительной трехмерной графикой, высокой скоростью смены кадров и, что немаловажно, использует для этого графический процессор.
Применять подобные возможности можно при создании научных, инженерных и бизнес-приложений. Подобные приложения могут подключаться к базам данных с помощью технологии dbExpress, по-прежнему используя знакомые разработчикам невизуальные компоненты, такие как ClientDataSet или DataSource, применять технологию DataSnap, подключаться к любым базам данных, SOAP- и REST-серверам. Можно создавать привлекательные элементы управления, кнопки с боксами, необычные таблицы и другие интерфейсные элементы, причем в двух- и трехмерном вариантах. Можно загрузить в приложение готовую трехмерную модель и соединить ее с двумерной формой, в которой ее можно вращать и рассматривать с разных сторон. Можно создать куб с данными или трехмерную бизнес-диаграмму и вращать их c помощью мыши, клавиатуры или даже устройства Kinect, а можно войти внутрь куба и посмотреть на разные его поверхности изнутри. И всё это можно сделать с помощью графического процессора с высокой скоростью. Затем это же приложение можно скомпилировать для другой платформы, например для Mac OS.
Приложение, содержащее вращающийся куб с данными,
размещенными на его гранях
А можно создать с нуля трехмерную форму и использовать камеры и источники освещения и освещать и вращать части интерфейса пользователя. В дизайнер форм уже встроена среда для поддержки трехмерного интерфейса пользователя непосредственно во время разработки.
В Windows для работы с двумерной графикой высокого разрешения можно применять библиотеки Direct2D, а для трехмерной графики — Direct3D. В Mac OS для тех же целей используются библиотеки Quartz и OpenGL. Для iOS применяются библиотеки Quartz и OpenGL ES. Но всё это скрыто от разработчика — он использует платформу FireMonkey, ее систему координат и прикладной программный интерфейс, не задумываясь об этих библиотеках, и может компилировать одно и то же приложение для разных платформ.
Вспомним, что такое VCL. VCL — это компонентная «обертка» вокруг Windows API. Мы имеем дело с ресурсами, меню, диалоговыми окнами, цветами, стилями, сообщениями Windows. Будучи, в отличие от VCL, многоплатформенной «оберткой», FireMonkey сохраняет те же событийную и компонентную модели, позволяя мыслить в терминах событий (например, событий OnClick, OnHasFocus, onMouseDown и onKeyDown), но обрабатываются при этом события Macintosh или iPhone.
Платформа FireMonkey также поставляется с полной системой анимации элементов пользовательского интерфейса. Это, конечно, не всеобъемлющая система анимации типа Pixar, но она позволяет применять такие эффекты, как анимация растровых изображений, подсветка фокуса у элемента пользовательского интерфейса и работа с векторной графикой. Разработчику доступно более 50 визуальных эффектов: размытие, превращение изображения в чернобелое, растворение, переходы, отражение, создание теней — все типы эффектов, доступные в современных графических процессорах, которые сейчас есть практически в любом компьютере. Приложение, созданное с применением платформы FireMonkey, посылает команды графическому процессору, который и выполняет всю работу по отображению графики и созданию пользовательского интерфейса. При этом центральный процессор свободен для вычислений и обращений к операционной системе. Разработчику же остается только правильно размещать компоненты.
Самое фундаментальное в платформе FireMonkey — это способ, с помощью которого она строит пользовательский интерфейс. Есть средства размещения растровой графики на интерфейсных элементах, таких как меню, кнопки и полосы прокрутки. В FireMonkey мы используем для этой цели векторную графику с применением графического процессора. С позиции программирования это всё те же элементы управления, но всю работу по их отображению осуществляет графический процессор. Мы можем применять стили к элементам управления, делать приложение похожим на приложение для Mac OS или для Windows, создавать свой собственный стиль, применять свои стили к интерфейсным элементам (например, сделать кнопку прямоугольной или круглой, изменив ее стиль в редакторе форм) — для этого в среде разработки есть редактор стилей. Можно создать свой собственный стиль, а можно изменить стиль уже готового приложения.
Платформа FireMonkey — средства разработки
и поддерживаемые платформы
Если помните, в библиотеке VCL было ограниченное число элементов управления — контейнеров (то есть позволяющих размещать в них другие элементы), а в FireMonkey каждый элемент управления — это контейнер. Это означает, что каждый элемент управления может содержать любой другой элемент управления. Например, внутри элементов выпадающего списка могут быть изображения, кнопки, поля редактирования и другие элементы управления. И еще можно размещать компоненты по слоям.
Система рендеринга FireMonkey достаточно гибкая — она может использовать библиотеки Direct2D, Direct3D и OpenGL, посылая команды графическому процессору. Чтобы добиться того же в VCL, нужно было генерировать отдельный буфер вне экрана, создавать изображение в нем, вызывая соответствующие функции графических библиотек, а затем отобразить его на форме.
Примеры графических эффектов, поддерживаемых FireMonkey
Если же у вас нет графического процессора — вы по-прежнему можете применять двух- или трехмерные формы и использовать элементы управления FireMonkey. В этом случае платформа FireMonkey будет задействовать библиотеки GDI+ или другие подобные библиотеки и осуществлять те же эффекты и анимацию либо манипуляцию трехмерными объектами.
Еще одна черта FireMonkey — новая система связывания интерфейсных элементов с данными, открытая и гибкая. В VCL присутствуют два типа интерфейсных элементов: связываемые с данными и не связываемые с данными (например, TDBEdit и TEdit). В FireMonkey каждый элемент управления может быть связан с данными, причем любого типа. Это может быть просто выражение, поле из набора данных, данные из созданных разработчиком объектов или результаты вызова методов.
Кроме того, при создании приложения можно загрузить в него готовую трехмерную модель и использовать ее — такие возможности часто требуются и в бизнес-приложениях, и в приложениях для инженерных расчетов. У нас есть клиент, который создает приложения для логистики. У них была информационная система, построенная с помощью Delphi, а в ней — приложение, которое рисовало план и отображало информацию из источников данных. Недавно они сделали нечто интересное — нарисовали в AutoCAD полностью автоматизированный трехмерный склад, и их приложение позволяет увидеть, как автоматический погрузчик двигается по складу и помещает товар на полки. И они выкладывают данные из источников на соответствующее изображение.
Примеры изменения стилей приложения
КП: Какие форматы трехмерных моделей сейчас поддерживаются?
Д.И.: В этом релизе мы поддерживаем загрузку моделей из AutoCAD, Collada (средство трехмерного моделирования с открытым кодом. — Прим. ред.), Maya, формат OBJ, который поддерживается многими производителями средств трехмерной графики.
КП: А какие еще форматы планируется добавить?
Д.И.: Мы планируем добавить форматы 3DS (3D Studio MAX), SVG (обычно этот формат применяется для двумерной векторной графики, но иногда и для трехмерной), Google SketchUp. Возможно, мы будем поддерживать и другие форматы.
КП: Требует ли использование трехмерных моделей в приложениях, созданных с помощью FireMonkey, лицензии на соответствующее средство трехмерного моделирования?
Д.И.: Нет, не требует. Всё, что мы делаем, — это читаем файл с моделью. Мы импортируем модель, но не экспортируем ее (хотя, конечно, вы можете написать приложение, которое сохранит модель в вашем собственном формате). Мы не претендуем на то, чтобы быть производителем инструментов трехмерного моделирования — для этого вы можете применять AutoCAD, 3D Studio Max, Maya или любое другое средство трехмерного моделирования, а в наши приложения импортировать созданные модели.
КП: Насколько производительны приложения, созданные с применением FireMonkey, на современных аппаратных платформах?
Д.И.: Производительность довольно высока. К примеру, рендеринг трехмерной формы с тремя сферами и тремя источниками освещения на MacBook Pro может оcуществляться со скоростью 100 кадров в секунду. А может достигать и 600 — это зависит от того, что именно мы делаем. Опять же всё зависит от мощности графического процессора.
КП: Означает ли это, что с помощью FireMonkey можно создавать игры, удовлетворяющие современным требованиям?
Д.И.: Мы не позиционируем наши средства разработки в качестве инструмента для игр. Тем не менее, используя высокую производительность современных графических процессоров, с помощью FireMonkey можно создавать и игры — ведь создают же их с помощью Direct3D или OpenGL.
КП: Какие работы вы ведете сейчас в области поддержки распознавания жестов и иных новомодных вещей? Доступна ли такая поддержка?
Д.И.: У нас пока нет поддержки жестов в этом релизе. Управление жестами будет добавлено в одном из будущих релизов FireMonkey, а пока можно использовать поддержку жестов, встроенную в операционную систему.
Михаил Филиппенко, директор компании Fast Reports, Inc.
и Дэвид Интерсимоне
К.Р.: Мы уже говорили, что у технологии FireMonkey российские корни — ее основы были созданы в нашей стране, а потом и сама технология, и ее разработчики влились в состав Embarcadero. Вообще, отрадно видеть рост российской составляющей в составе RAD Studio и Delphi. Это и деятельность нашего центра разработок в Санкт-Петербурге, и вклад независимых российских разработчиков. Например, в состав Rad Studio XE2 вошел генератор отчетов FastReport — известный во всем мире и очень популярный в нашей стране. Он родом из Ростова-на-Дону.
КП: Хотелось бы поговорить о компиляторах. Что за компилятор используется при создании приложений для iOS?
Д.И.: Для iPhone или iPad у нас нет собственного компилятора Delphi — мы пока не разрабатывали компиляторы для процессоров ARM, применяемых в этих устройствах. Для iOS мы временно используем компилятор и библиотеку времени выполнения Free Pascal. Но мы работаем над следующим поколением компиляторов, в том числе и для процессоров АРМ. А вот для Windows и Mac OS компиляторы есть, поскольку обе аппаратные платформы основаны на процессорах Intel.
КП: А что было сделано в области создания компиляторов в последние два года?
Д.И.: У нас есть 32- и 64-разрядные компиляторы Delphi для Windows и Mac OS. И мы работаем над новым поколением компиляторов Delphi и C++. Работа над ними еще продолжается, но, когда она будет завершена, у нас будут компиляторы Delphi для процессоров ARM, платформ Android, Linux и всего, что угодно. И у нас будут 64-разрядные компиляторы C++ для Windоws и других платформ, совместимые с последним стандартом языка С++, только что принятым ISO.
КП: Что сегодня происходит с поддержкой «облачных» вычислений в средствах разработки Embarcadero?
Д.И.: В RAD Studio XE 2 мы поддерживаем перенос приложений в «облако» Microsoft Azure или Amazon EC2 с применением средства Platform Assistant. И у нас есть серверные компоненты для Сloud Storage for Azure и Amazon S3 для хранения таблиц, двоичных данных, очередей сообщений. В предыдущей версии RAD Studio XE мы также поддерживали развертывание приложений в Amazon EC2, но поддержка хранилища в ней отсутствовала.
Поддержка «облачных» вычислений в RAD Studio XE 2
КП: Два года назад вы рассказывали о новом решении All-Access. Насколько оно оказалось востребовано? Каковы его преимущества для системных интеграторов и разработчиков?
Д.И.: В мире решение All-Access и инструмент для «облака» AppWave применяются очень широко. Они предназначены для упрощения использования приложений как нашей компании, так и других производителей. Фактически это решение для управления лицензиями и применением приложений, и оно удобно для крупных компаний. Небольшие же фирмы, в которых нет специальных групп сотрудников, ответcтвенных за управление приложениями, могут положить приложение в репозиторий, выбрать имена пользователей из базы данных и обеспечить использование этих приложений без необходимости вспоминать, где лицензионный ключ и сколько лицензий имеется. All-Access и браузер AppWave предназначены для управления и версионностью, и контролем доступа.
К.Р.: Рынок настолько многообразен, а пользователи настолько разные, что невозможно одним решением охватить все потребности. Поэтому мы стремимся к разнообразным «упаковочным» решениям. Мы проделали большую работу по унификации способов лицензирования, управления лицензиями и инсталляции продуктов. Эта линия решений включает средства управления лицензиями и предоставлением доступа не только для продуктов Embarcadero, но и для любых других продуктов, включая внутренние разработки компаний.
Работа по комплектации средств разработки в эффективные наборы для пользователей по-прежнему продолжается. У нас есть All-Access — суперсет, в котором объединены все продукты Embarcadero. Если заказчик приобретает версию All-Access Platinum, он получает все инструменты, которые есть в Embarcadero. Но иногда этот набор оказывается избыточен, к примеру для специалистов по базам данных мы сделали два других набора — DB Power Studio Developer Edition и DB Power Studio DBA Edition. Разница между ними в том, что для разработчика мы предлагаем RapidSQL — средство разработки серверного кода, а для администратора туда встроен DBArtizan — средство администрирования баз данных, более широкий продукт, чем RapidSQL. Для специалистов у нас есть следующие наборы All-Access: набор, включающий все продукты, DB Power Studio для разработчиков, DB Power Studio для администраторов, ER Studio Enterprise Edition для архитекторов и всех, кто занят моделированием. Есть комбинации для разработки приложений и для администраторов. Delphi — это средство для разработчика, и к нему очень разумно добавить средства SQL-разработки и средства оптимизации. И наконец, DB Change Manager — это вполне логичный инструмент для того, чтобы управлять сложностью тех изменений, которые происходят с базами данных в ходе их жизненного цикла.
Таким образом, All-Access является главой большого семейства различных наборов продуктов.
КП: Если не секрет, кто в России применяет All-Access?
К.Р.: У нас есть заказчики, которые купили All-Access, отталкиваясь от Delphi. Многие из них создают сложные клиент-серверные системы с SQL Server и Oracle, и им сразу понравился наш кроссплатформенный инструментарий для баз данных. У нас есть компания-клиент, которая работает с Delphi, начиная с первой версии, и год назад она перешла c использования Delphi к набору All-Access. Два инструмента, которые гарантированно применяют в этой компании все разработчики, — это Delphi и DBArtisan. И есть заказчики, которые пришли к All-Access со стороны баз данных. Их основная задача — администрировать базы данных, но при этом они иногда занимаются разработкой приложений. Среди клиентов, использующих All-Access, — медиакомпании, машиностроительные предприятия и представители других отраслей.
Отдельно хотелось бы остановиться на небольших компаниях. Очень часто в маленьких коллективах разработчик делает всё, и такая компания иногда покупает большие продуктовые наборы All-Access для одного-двух разработчиков. В крупных коллективах не поощряется, чтобы разработчик выполнял, к примеру, еще и роль администратора баз данных, поэтому обычно там популярны небольшие продуктовые наборы, а в мелких компаниях такое совмещение обязанностей вполне допустимо.
Delphi Architect — это активно продаваемый продукт, включающий средства моделирования и программирования. Число его проданных копий, правда, меньше, чем версии Delphi Enterprise, но оно тоже велико. Замечу, что в 2010 году мы оказались лучшей страной по объему продаж, при том что все страны пережили кризис. Этот рост был связан не столько с экономическими факторами, сколько с тем, что вышедшая в конце 2009 года версия RAD Studio XE оказалась очень востребованной. И пока мы ожидаем дальнейшего роста продаж.
Мы сделали еще один разумный шаг, крайне востребованный в России. Степень легализации различных версий наших продуктов разная: чем выше версия, тем больше она легализована, ведь раньше программное обеспечение не так активно покупалось. Начиная с версии RAD Studio XE лицензия распространяется на версии 2010, 2009, 2007 и даже на Delphi 7 — продукт широкой распространенности.
Сегодня разработчики сталкиваются с тем, что у них есть и новые проекты, и проекты в состоянии поддержки. Большое количество проектов было переведено с ранних версий Delphi на версию 7 и остается в рамках этой версии, продолжая работать на относительно небольших ресурсах. Никто не переводит их на более новые версии, но они поддерживаются в жизнеспособном состоянии. И сейчас мы позволяем за небольшие деньги (меньшие, чем цена лицензии Delphi 7) получить и RAD Studio XE, и Delphi 7 — то есть мы легализуем разработчика и для реализации новых проектов, и для проектов поддержки.
КП: Как вы оцениваете нынешнее состояние сообщества Embarcadero?
Д.И.: Это сообщество велико и очень требовательно. Им нужно всё и немедленно — они же разработчики. Но иногда, чтобы сделать чтото правильно, необходимо много времени.
Несколько лет назад мы брали компонентную архитектуру Windows и помещали ее в десктопы Linux. Теперь мы видим, что это было не самое верное решение. Правильное решение — создать платформу для приложений. Приложения даже для разных платформ имеют меню, окна, графику, сетевой доступ и доступ к устройствам. В различных платформах могут быть разные модели управления потоками или обработки исключений, но в коде приложения мы видим одинаковые try-блоки. Наша работа — упростить разработчикам создание бизнес-приложений и компиляцию их для тех платформ, на которых предполагается их использовать, независимо от того, как устроена система инструкций соответствующих процессоров и каковы иные особенности этих платформ. И FireMonkey — это именно то, что нужно для решения данной задачи.
КП: Если компания создаст новое устройство и захочет иметь его поддержку в FireMonkey, будет ли это возможно?
Д.И.: С компиляторами нового поколения, которые будут иметь не зависящий от платформы front-end и зависящий от платформы back-end, это будет вполне возможно. Пока же для каждой операционной системы мы создаем компилятор и библиотеку времени выполнения с нуля.
Любое современное новое устройство, как правило, обладает графическим пользовательским интерфейсом (многие из них имеют двухъядерный процессор и графический процессор) и стандартными SDK для разработчиков. Всё это упрощает создание поддержки устройства в FireMonkey. Если же новое устройство будет обладать только библиотеками для двумерной графики типа Quartz, мы сможем осуществить поддержку в FireMonkey и такого устройства, но для этого потребуется ориентировочно несколько месяцев. Тем не менее многое зависит от платформы: не все платформы поддерживают все возможности, например в iOS нет меню и диалоговых окон и вы не сможете поместить соответствующие компоненты на формы таких приложений.
КП: Изменилось ли чтото в политике работы с партнерами? Что делается для того, чтобы доля пользователей ваших продуктов увеличилась? Что осуществляется в России?
Д.И.: Наша партнерская экосистема широка — существуют сотни производителей инструментов и компонентов, которых нет в наших продуктах, и у нас есть программа технологического партнерства. Поэтому разработчикам доступен широкий спектр компонентов, технологий и инструментов. И решения, которые они создают для своих клиентов, оказываются лучше, чем если бы использовались только наши продукты. А для продаж у нас есть офисы во многих странах, реселлеры и дистрибьюторы.
К.Р.: Нам важно не количество партнеров, а качество работы каждого конкретного партнера. Сейчас мы хотим сосредоточиться на тесном взаимодействии с существующими партнерами, хотя пул партнеров остается открытым. Партнеров у нас много, и мы должны помогать им в плане технологий. Мы работаем с разработчиками, а они знают, чего хотят, и знают, что доступно на рынке, и возможности партнеров должны этому соответствовать.
У нас есть бизнес-партнеры, которые серьезно инвестировали в Embarcadero как в направление бизнеса — у них есть обученные специалисты, маркетинг наших продуктов, выделенные сотрудники, отвечающие за данное направление и отслеживающие, что происходит с нашими продуктами, прайслистом, маркетингом. Естественно, они более успешны с точки зрения продаж наших продуктов, чем компании, которые реализуют наши продукты от случая к случаю.
КП: Дэвид, Кирилл, большое спасибо вам за интересное интервью. Позвольте от имени нашего издания и наших читателей пожелать вашей компании дальнейших успехов в создании ваших удивительных инструментов, столь нужных разработчикам!
Вопросы задавала Наталия Елманова