Рубрика:
Программирование /
Экспертное мнение
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Всеволод Леонов: «Delphi не зажимает программиста в узком пространстве кодирования»
На вопросы «Системного администратора» о новейшей истории Delphi отвечает евангелист компании Embarcadero Technologies в России и СНГ
|
Досье |
Всеволод Леонов, менеджер по продуктам (евангелист) Embarcadero Technologies, Россия и СНГ. Более 10 лет проработал в МГТУ им. Н.Э. Баумана. Автор более 50 научных статей по созданию САПР с использованием технологий искусственного интеллекта. Кандидат технических наук. Занимался проблемами оценки эффективности сложных технических систем на основе комплексных моделей. Параллельно с научной деятельностью занимался преподаванием в ЦКО «Специалист» при МГТУ им. Н.Э. Баумана (Pascal, C/C++, Delphi, MS Visual Studio, SQL). В свободное время совершенствует ораторское искусство, а также проводит тренинги по личностному росту для друзей и знакомых. |
– Известно, что Delphi – наследник некогда знаменитой компании Borland. Как Embarcadero достался некогда стратегический для Borland бизнес?
– Практически к релизу Delphi 7 компанией Borland была достигнута верхняя грань технического совершенства как библиотеки VCL, так и самого принципа визуального программирования на основе готовых компонентов. Но, как это часто бывает в высокодоходной конкурентной среде, рано или поздно появляется другой продукт, близкий по духу и возможностям.
Visual Studio тогда стала действительно «визуальной средой разработки», а C# наконец явил собой обновленный Visual Basic для профессионалов и позволил относиться к нему серьезно.
В это же время в компании Borland (после античного периода Delphi с 1-й по 7-ю версию) начались мрачные времена – последующие две версии не отличались ни стабильностью, ни ростом функциональных возможностей. Если первое еще как-то можно было оправдать в глазах программистов за счет понимания побочных эффектов революционного метода развития, то со всем остальным был полный провал.
На фоне этих трудностей стратеги компании Borland попытались диверсифицировать продуктовый набор, инвестировав немалые средства в технологии Application Lifecycle Management (ALM), которые бы замыкали собой цикл разработки и сопровождения ПО. Тогда попытки продвинуть такую синергию в массы особого успеха не имели. Потеряв интерес к средствам разработки, поставив все на ALM, в 2006 году Borland приняла решение продать Delphi и родственные технологии (C++Builder, JBuilder). Здесь на сцену вышла малоизвестная в России компания Embarcadero.
Сложное и уникальное программное обеспечение, как известно, достаточно слабо отчуждаемо от людей, его создающих. Нельзя было купить Delphi в ее исходных кодах в целях дальнейшего развития.
Понимая это, компания Borland объединила средства разработки в отдельное, достаточно изолированное и самодостаточное подразделение под названием CodeGear, которое впоследствии и вошло в состав Embarcadero.
Конечно, обычно более известная компания поглощает менее известный бренд, но в нашем случае произошло по-другому. Этому помог акционер Embarcadero – фонд прямых инвестиций Thoma Bravo. Embarcadero тогда уже была частной компанией, совершив делистинг с Nasdaq.
Все с волнением ждали, каким будет первый шаг в развитии технологии Delphi, пережившей период нестабильности. Embarcadero с первого же релиза Delphi в новой компании дала почувствовать: сделано стратегическое приобретение, мы будем серьезно инвестировать в продукт. Релиз 2009, вышедший через два месяца после приобретения CodeGear (сентябрь 2008-го), уже аккумулировал, по сути, эволюционно новые возможности в классическом ключе (языковые улучшения, которые ждали долгие годы, рост компонентной базы).
Даже в кризисном 2009 году Embarcadero продолжала упорно инвестировать в продукт – тогда численность R&D-персонала, занятого развитием RAD-продуктов, выросла примерно на 75%. Были заложены стратегические основы развития этого продукта, которые стали проявляться в последние два-три года. Именно в 2013-м должны появиться основные результаты проектов, стартовавших сразу после приобретения CodeGear.
Релиз Delphi 2010 заложил технологическую основу построения новых фреймворков. Версия XE аккумулировала энергию для рывка в мультиплатформенность. А начиная с XE2 идет интенсивный рост Delphi в направлении разработки для различных платформ на основе единой базы исходных кодов.
– Давайте остановимся немного на этой «малоизвестной в России компании» – Embarcadero. Расскажите о ее «родных» продуктах. Какая была необходимость приобретать столь специфический продукт, как Delphi?
– До приобретения подразделения CodeGear у Borland компания Embarcadero была, как говорится, широко известна в узких кругах. Кроме хорошего «технологического сочетания», приобретение CodeGear имело еще один замечательный «бизнес-смысл». Дело в том, что у Embarcadero до 2008 года около 80% бизнеса располагалось в США. Как работать в других странах, как строить отношения с партнерами? Ясного понимания этих задач у компании не было. Но у Borland именно в этой области имелся значительный опыт, и нам он очень пригодился.
Ранее основой бизнеса Embarcadero являлась разработка продуктов для моделирования, проектирования, реализации, оптимизации и сопровождения баз данных. Наши продукты для администрирования различных БД из «одного окна» (DBArtisan), для управления изменениями (DB ChangeManager), оптимизации запросов (DB Optimizer), разработки и отладки запросов (Rapid SQL) весьма популярны в крупных финансовых компаниях. Именно там есть понимание ценности данных, а управление ими является неотъемлемой частью не только ИТ-инфраструктуры, но и самой бизнес-модели.
Отдельно стоит отметить ER/Studio – это система моделирования баз данных с разделением на логическую и физическую модели, мультиплатформенная, с поддержкой методов коллективной разработки, одной из основных функций является «обратное проектирование» или реинжиниринг баз данных.
С одной стороны, моделирование и проектирование баз данных сильно связаны с последующей эксплуатацией, а ER/Studio может быть гармонично использована с DBArtisan, DB ChangeManager, DB Optimizer, Rapid SQL.
С другой, это вполне самостоятельный продукт, функционально масштабируемый за счет повышения редакции до уровня корпоративной системы моделирования для поддержания BI и Data Governance.
Отвечая на вторую часть вопроса, стоит заметить, что сама Embarcadero не производила платформ СУБД. Думая о будущем компании, невольно возникал вопрос: как так могло получиться, что производитель инструментальных средств существовал в условиях, когда любая платформа СУБД (например, Oracle, DB2, MS SQL Server), так или иначе, обладает своими «родными» средствами для работы с БД?
После приобретения подразделения CodeGear компанией Embarcadero продуктовый портфель значительно вырос, причем за счет очень популярных продуктов (тогда Delphi использовали 1,7 млн пользователей). Но, помимо чисто количественного увеличения как номенклатуры решений, так и объема продаж, мы стали свидетелями синергии разработки и сопровождения систем за счет продуктовой взаимосвязи. Delphi как средство создания приложений для баз данных поставляется в редакциях Architect и Ultimate, ориентированных на расширенный спектр задач (помимо традиционных Professional и Enterprise для «чистых кодеров»).
ER/Studio входит в редакцию Delphi/C++Builder/RAD Studio Architect, а это, помимо решения текущих задач, дает возможность разработчику приложений («программисту») вырасти в профессиональном и карьерном плане, начав исполнять роль архитектора баз данных. Delphi не зажимает программиста в узком пространстве кодирования!
Также нужно отметить, что эти продукты для работы с базами данных являются мультиплатформенными, поэтому какой бы ни была актуальной используемая платформа СУБД, инструмент Embarcadero одинаково эффективен для нее. Мультиплатформенность продуктов для работы с базами данных стала концептуальной основой для развития Delphi и других средств разработки. Идея единого окна для обслуживания баз данных на разных платформах теперь адаптирована для генерации исполняемого кода.
Одной из ключевых задач стало создание нового компилятора для C++Builder на основе LLVM и CLANG с поддержкой C++11. В ближайших планах – создание IDE для мобильной кроссплатформенной разработки на C++. В течение нынешнего года компания сможет повлиять на глобальный технологический ландшафт инструментов и сред разработки.
– Возможно, для многих наших читателей станет сюрпризом тот факт, что современный Delphi – это отчасти российская разработка. Расскажите, пожалуйста, о российской составляющей компании, а также о задачах, которые она решает.
– Embarcadero, как и большинство других ИТ-компаний, занятых разработкой ПО, имеет достаточно сложную структуру. Есть подразделения, занимающиеся только разработкой, и это как раз команда разработчиков FireMonkey, новой кроссплатформенной альтернативы библиотеке VCL с поддержкой со стороны компилятора. Офис разработчиков в России расположен в Санкт-Петербурге – это историческая дислокация российских инженеров еще со времен компании Borland. Представительство Embarcadero в России находится в Москве, там разработка не ведется, но все продажи идут именно оттуда. Координируется наша деятельность из Сан-Франциско, но горизонтальные связи активно приветствуются.
В некотором плане Delphi уже стала российским продуктом, особенно в части новых стратегических направлений развития. Здесь можно испытать определенную гордость, поскольку именно инновационные, наиболее критические с точки зрения развития задачи поручаются российской команде (это не означает, что, к примеру, наши канадские или американские разработчики «хуже» или «дороже»).
– Какая роль уготована Delphi в современном мире? На что вы делаете ставку в развитии вашей RAD и популярного языка программирования в условиях предельно жесткой конкуренции?
– Новое поколение или «эпоха возрождения» Delphi отсчитывается от релиза 2009, когда уже в составе Embarcadero фабрика под названием CodeGear выпустила долгожданный продукт. Он, конечно, по своей стабильности был далек от идеала (хотя гораздо качественнее пресловутой 2005‑й и даже более стабильной BDS 2006, которую я использовал три года и выпустил несколько коробочных продуктов), но как минимум решал одну стратегическую задачу.
Своими возможностями продукт демонстрировал магистральное направление развития Delphi как средства разработки: приверженность нативной генерации кода, языковые улучшения (шаблоны, «дженерики»), расширение компонентной базы, поддержка Unicode, отказ от COM в фреймворке для многозвенной разработки DataSnap. В тот момент Delphi только догоняла ушедшую вперед Visual Studio, но это была явная точка роста.
Сработали неотлаженный спрос, неестественный рост популяции программистов, а именно потребность в новых возможностях. Delphi 2010 и Delphi XE можно обобщить в рамках единого описания и четко выделить новую RTTI, стабилизацию IDE, развитие платформенно независимого DataSnap, а также насыщение комплекта поставки дополнительными мощными решениями от компаний-партнеров. Все эти новые возможности в своей сумме предопределили успешную реализацию проекта по преодолению барьера между платформами в виде различий между API операционных систем Windows и Mac OS.
Конечно, предпринимались попытки сделать «кроссплатформенную VCL» в том или ином виде, но по ряду соображений попытки были оставлены.
Главная причина – слишком глубокое проникновение WinAPI в тело библиотеки визуальных компонентов, принцип реализации которых не изменялся со времен Delphi 1. Они были и остаются оболочками вокруг WinAPI, а пустая оболочка без содержимого не имеет большого функционального значения.
Было принято решение создать новую библиотеку Fire-Monkey, которая сразу получила статус «платформы», т.е. основы, на которой будет построена кроссплатформенная Delphi. Сразу были отброшены намерения максимально сблизить VCL и FireMonkey в архитектурном плане. Это, естественно, затруднило миграцию кода с VCL на FireMonkey, но позволило устранить структурные несовершенства VCL.
FireMonkey похожа на VCL лишь в Delphi на уровне user experience в design time. Основным же преимуществом FireMonkey стало мгновенное переключение проекта с одной платформы на другую без изменения кода.
Если в VCL отображение и функциональное поведение совмещались в рамках одного класса, то FireMonkey применяет комплексный подход. На верхнем уровне вводится класс (например, «кнопка»), функциональное поведение которого определяется совокупностью свойств и методов. Чисто программными методами заложена необходимая «генетика» – способность взаимодействовать с пользователем, реагировать на события. Отображение визуального компонента задается так называемым стилем, векторно-растровым комплексом или структурой. Именно стиль с точностью до пикселя определяет то, как будет выглядеть «кнопка» на форме. Появляется первая возможность проявить кроссплатформенность. Если приложение запускается на Mac OS, то используется стиль, характерный для данной ОС. Невозможно увидеть разницу на уровне интерфейса, т.к. стиль абсолютно точно имитирует Mac OS.
Для ОС Windows (как 2000-XP, так и Windows 8) соответственно используется другой стиль. При смене платформы происходит также и переключение компилятора, который гарантирует 100% нативный код как для Mac OS, так и для Windows.
Последний аспект – механизм рендеринга. Отображение компонента в рамках принятого стиля в виде векторно-растровой совокупности абстрактных или платформенно-независимых примитивов зависит от операционной системы. Для Windows это DirectX, для Mac OS – Quartz/OpenGL. В такой технологической схеме поддержка еще одной новой платформы становится рутинным и, главное, малорискованным процессом.
Именно таким образом была реализована поддержка Mac OS в Delphi XE2 и первой версии FireMonkey. Сейчас ведутся интенсивные работы по аналогичной схеме для поддержки iOS, причем предварительные обзоры и бета-версия Mobile Studio (пока в виде дополнения к Delphi) уже доступны для ознакомления. В планах на 2013 год – разработка под iOS на C++Builder, а также Android на Delphi.
Есть, конечно, и определенные сложности. Компания Apple не предоставляет эмулятора iOS под Windows, а это абсолютно не проблема в случае с Android. Зато в плане доступности нативного фреймворка дела обстоят существенно проще в iOS. Однако совершенно точно можно сказать, что Delphi обрела второе рождение за счет следования классическим принципам визуальной разработки нативных приложений при добавлении новой кроссплатформенной библиотеки FireMonkey.
В ближайшее время разработка под мобильные платформы станет значительно проще, а прикладные программисты опять на долгие годы обретут покой и уверенность в наработанных навыках, проверенных знаниях и накопленном багаже исходного кода на Delphi и C++. Системные администраторы в очередной раз будут иметь под рукой простой и надежный инструмент быстрой разработки, как старого друга, готового в любой момент оказать достойную поддержку.
– Всеволод, насколько я понимаю, сейчас Embarcadero RAD Studio XE3 стоит ощутимо дороже, чем Visual Studio 2012, при этом в последнем случае покупатель получает сразу четыре инструмента разработки (также у вас отсутствует бесплатная версия продукта).
– Мы не стремимся как-то особо выделиться за счет цены на фоне конкурирующих продуктов. Текущие цены на различные редакции Delphi мы считаем обоснованными и соответствующими финансовым возможностям как корпоративных, так и индивидуальных разработчиков, с учетом наличия различных редакций Delphi, а их на данный момент пять (Starter, Professional, Enterprise, Architect, Ultimate).
Образовательные лицензии стоят 10% от цены коммерческой, есть удобные схемы регистрации, оптимизированные под использование в учебных классах. Наличие такого достаточно мелкого разбиения по редакциям позволяет нашим пользователям оптимально соотнести затраты и приобретенные возможности.
Можно сказать, что редакции согласованы с основными потребительскими группами: начинающий, индивидуальный, корпоративный и разработчик крупномасшабных решений на основе СУБД.
Естественно, есть случаи, когда индивидуальный разработчик использует все возможности редакции Architect, которая включает ER/Studio DataArchitect. Это система ER-моделирования, аналога которой у Microsoft просто нет.
Редакция Ultimate включает продуктовую группу инструментов по работе с базами данных – оптимизация (DB Optimizer), управление изменениями (DB Change-Manager), разработка и отладка SQL-кода (Rapid SQL).
Все эти инструменты – мультиплатформенные, потому мы не ограничиваем пользователей только некой одной технологией (например, MS SQL Server). Мы одинаково знаем и понимаем многие платформы СУБД, а на поле многоплатформенной генерации нативных приложений у нас явное и прогрессирующее преимущество над MS Visual Studio.
В феврале опубликован предварительный обзор Delphi for iOS, а это уже третья по счету платформа для разработки на Delphi после Windows и Mac OS. Некоторые преимущества становятся ошеломляющими, поэтому их нельзя измерять в простом денежном эквиваленте. Как прикладной программист я считаю бесценной возможность использовать одну и ту же базу исходных кодов для практически мгновенной сборки проекта под разные ОС.
– Вы упомянули известный Open Source-проект LLVM/CLANG. Интересно узнать о ваших взаимоотношениях с параллельным свободным проектом развития Delphi – Lazarus. Как вы относитесь к концепции Open Source вообще?
– К концепции Open Source отношусь нейтрально, продукты Embarcadero не планируются для распространения с доступом к исходным кодам в любом варианте.
Еще во времена Borland был негативный опыт, когда открыли доступ к исходным кодам InterBase, это породило ряд конкурирующих технологий, таких как Firebird. Уже Embarcadero потребовались годы, чтобы представить неоспоримые преимущества, прежде всего в области шифрования и других функций, важных корпоративному пользователю.
Но история еще интереснее, если принять во внимание развитие и взаимоотношения Firebird и Yaffil, когда из-за Open Source наблюдалось перетекание возможностей из одной системы в другую.
Основная проблема в более высоком уровне рисков, связанных со схемой монетизации в данном случае. На каком-то коротком этапе, в определенных условиях и при наличии творцов-энтузиастов подобные схемы дают некий прорыв, но в долгосрочном плане остаются нестабильными. Долговременные отношения производитель – потребитель требуют простых и выраженных в конкретных числах связей.
Современные средства разработки – очень сложный продукт инженерной деятельности, требующий постоянного источника ресурсов, интенсивность поступления которых должна быть максимально выровненной по временной шкале или хотя бы прогнозируемой.
Можно продолжить анализ на примере InterBase и Firebird. Уже принято совместное решение более лояльно относиться друг к другу, и Embarcadero уже сделала первый шаг. Мы считаем, что Firebird в своей нише Open Source-продуктов действительно уникален, мы даже готовы его в этом поддерживать. В Delphi редакции Enterprise есть драйвер для взаимодействия с Firebird, чего раньше не было. Если для малобюджетных проектов разработчики станут использовать данную СУБД, будем рады, т.к. по мере роста требований к безопасности рано или поздно в поле зрения попадет InterBase. Эта история действительно выглядит достаточно замысловато – от порождения конкурирующей технологии до взаимовыгодного сотрудничества. К этому привели именно здравый смысл и поиск точек роста, а также взаимное уважение.
У Delphi, что неудивительно, также есть технология-сателлит, известная как Lazarus. Здесь, конечно, нет речи о заимствовании кода. Однако интерес к Pascal-ориентированным технологиям в подавляющем большинстве случаев возникает и поддерживается за счет Delphi. Именно так мы и рассматриваем Lazarus – вполне полезный проект, если говорить об удержании внимания разработчиков на Pascal. Также это неплохая точка приложения усилий людей, желающих проявить себя на почве разработки Pascal-ориентированной компонентной среды. Одним людям нравится производить продукт с неясной схемой компенсации своего труда, другим – вести серьезную разработку с использованием подобных инструментов.
Говорить о Lazarus и Delphi – это как сравнивать кружок дельтапланеристов с конструкторским бюро и заводом по производству самолетов. Когда Delphi как технология была дезориентирована, можно было питать какие-то иллюзии, но теперь Delphi по всем показателям все дальше уходит в отрыв. И одну из ключевых ролей здесь играет ресурсная база, а это тянет за собой все – и темпы развития, и качество, и готовность технологических партнеров поставлять свои компоненты (например, FastReports, DevExpress).
– Будущее любой технологии – это молодые кадры. Расскажите, пожалуйста, про вашу систему обучения, процедуру сертификации и статус MVP. Что вы посоветуете в плане самообразования начинающим программистам?
– Для Delphi в контексте VCL вопрос с учебной литературой закрыт, книг уже написано больше, чем человек в состоянии прочитать. Очень много форумов, есть сборники FAQ и немало людей, которые всегда могут подсказать и помочь начинающему.
Для FireMonkey ситуация сложнее. Сейчас идет бурный рост возможностей, улучшение архитектуры, рефакторинг классов, расширение компонентного состава, дополнения в самой IDE. Как только мы достигнем определенного уровня языковой, классовой и компонентной стабильности, тогда станет целесообразным это зафиксировать, скажем, в обучающих материалах.
Есть и другой важный аспект – драматическое изменение представления людей о формах предоставления информации. Уже выросло поколение, для которого естественным является не чтение, а просмотр. Можно спорить об этом, но только не при обучении и демонстрации возможностей визуальных средств типа RAD.
Я даже готов пойти дальше, расширив понятие «язык программирования» далеко за рамки знаковой системы. Запрограммировать последовательность действий можно не только за счет ввода символов, но также путем выполнения определенных манипуляций, своеобразных жестов. Современный прикладной программист не столько использует язык, сколько компонентную базу и библиотеку визуальных компонентов.
Получение данных из базы давно уже не означает ввод SQL-запроса с клавиатуры. Логика слоя представления также не требует кодирования. Мне даже порой кажется, что в сознании разработчика визуальные компоненты, их свойства и методы, включая события, определяющие поведение, играют более важную роль, нежели языковые возможности.
Сверхбыстрая разработка и развитие технологий требуют сверхбыстрых методов обучения. Очень важен интерактивный обмен знаниями, опытом, трюками и приемами. Я полагаю, развитая профессиональная социальная сеть с интерактивным контентом в наше время даст больше, чем академическим языком написанная книга или хороший сборник упражнений.
Сертификация как форма определения формального уровня знаний конкретного специалиста, у нас есть. Профессионалами такой сертификат ценится гораздо меньше, чем умение продемонстрировать свой опыт при обсуждении конкретных задач или солидный пакет реализованных проектов. Но для начинающих программистов без опыта сертификат если не скажется на уровне начальной зарплаты, то по крайней мере повысит шансы среди прочих равных кандидатов.
Также современной расфокусированной относительно жизненных ценностей молодежи очень полезно иметь, пусть и локальную, цель в жизни, позволяющую собраться и сконцентрировать внимание. Студент средних курсов вполне может найти время, подготовиться, пройти экзамен и получить Delphi Developer Certificate. В глазах потенциального работодателя это будет хорошим доказательством того, что кандидат нацелен сделать карьеру программиста. Как минимум это вызывает уважение.
Для настоящих профессионалов мы рекомендуем подумать о получении статуса MVP (most valuable professional). Раньше это считалось неким почетным званием, подчеркивающим ценность человека для компании в его просветительской деятельности. Для получения и сохранения статуса необходимо выполнить некоторый минимум по написанию статей или ведению блога. Если посещение магазина продуктов Embarcadero инициировано просмотром содержимого блога конкретного эксперта со статусом MVP, он получает приличную комиссию с такой продажи.
Таким образом, Delphi дает возможности всем: прикладным разработчикам – возможность расширить количество платформ для своих приложений, технологическим партнерам – удобный момент расширить свой бизнес, энтузиастам из сообщества – начать зарабатывать деньги, причем сохраняя объективную и независимую точку зрения.
Беседовал Игорь Савчук
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|