Средства разработки CodeGear
Николас Карр, известный исследователь ИТ, любит сравнивать ИТ с электричеством. В рамках этой аналогии электриками, скорее всего, надо считать разработчиков ПО, а нагромождение стандартов и технологий, с которыми приходится работать, олицетворяют розетки (и соответственно вилки). И если в «электрическом» мире стандартов розеток всего раз-два и обчелся, то в мире информации технологии чаще всего не имеют стандартов, и их развитие и обратная совместимость отданы на откуп производителям, которые всегда рады улучшить технологию (а еще лучше стандарт, если получится), так как их целью остается исключительно прибыль.
Вряд ли мы увидим «планету победившего вендора» в ближайшие десятки лет, а значит, и кошмар с «розетками и вилками» будет преследовать программистов еще очень долго: разные СУБД, разные ОС, разные API и разные идеологии программирования. Обеспечить равноправную и качественную поддержку нескольких платформ может только независимый производитель, ориентированный на нужды разработчиков, который будет выпускать универсальные инструменты. «Карманные» средства разработки, финансируемые производителем платформы, предназначены для продвижения конкретной платформы, причем продвижения не только за счет увеличения привлекательности, но и за счет создания самых разных помех в переходе на другие платформы.
Конечно, это непростая задача — быть связующим звеном между платформами, обеспечивать интеграцию и создание новых решений на стыке разных СУБД, ОС и языков программирования, предоставлять универсальные инструменты для решения сложных задач.
818 дней
7 мая 2008 г. компании Borland (www.borland.com) и Embarcadero Technologies (www.embarcadero.com) объявили о подписании соглашения о продаже подразделения CodeGear. Так закончилась более чем двухлетняя эпопея с выделением средств разработки Borland в отдельный бизнес, начавшаяся в феврале 2006 г. c объявления о намерении продать бизнес средств разработки. Затем идея пережила две последовательные трансформации с образованием подразделений Developer Tools Group (в мае) и CodeGear (в ноябре) и после смены трех СЕО завершилась этой сделкой.
Обсуждение стратегии и тактики реструктуризации бизнеса, которой следовала Borland, выходит за рамки этой статьи; хочется только отметить, что многие были уверены: после периода метаний компания вернется на свой путь, как это было в истории с Inprise и Corel. Но на этот раз владельцы и управляющие бизнеса Borland были последовательны и упорны в своих действиях, и теперь ветеранам ИТ предстоит трудная задача — перестать ассоциировать Borland со средствами разработки.
Новый виток
Как бы то ни было, 30 июня сего года Embarcadero Technologies стала крупнейшим независимым поставщиком инструментария для разработки ПО, объединив в рамках одной компании инструменты для разработки баз данных и разработки приложений, прежде всего приложений баз данных.
Конечно, титул «крупнейший», применяемый только вместе с определением «независимый» (в смысле независимости от крупнейших платформенных игроков), кому-то может показаться неуместным преувеличением — доход «всего» 100 млн долл. и штат в 500 человек. В региональных представительствах некоторых информационных гигантов продавцов и то больше.
Но с позиций строгой оценки независимых производителей средств разработки ПО более крупного размера, чем Embarcadero Technologies + CodeGear, действительно нет — подразделения крупных вендоров, занимающиеся этими вопросами, независимыми считаться не могут, так как по умолчанию исповедуют единственную платформенную «религию».
Инструменты
Рассмотрим подробнее, с чем новая компания начинает свой путь. И CodeGear, и Embarcadero в данный момент выпускают по десять продуктов, охватывающих очень широкий спектр технологий — от скриптовых языков до баз данных, от проектирования баз данных до их эксплуатации и мониторинга. Эти продукты не пересекаются, а многие из них дополняют друг друга, создавая потенциал для разработки новых интересных решений и расширяя традиционную сферу применения.
Разработка для Windows
Начнем с самой сильной группы продуктов CodeGear, предназначенной для разработки приложений для Windows. Прежде всего это легендарные интегрированные среды разработки Delphi и C++ Builder, использующие языки программирования Object Pascal и C++. RAD Studio, флагманский продукт CodeGear, представляет собой совокупность Delphi, C++ Builder и Delphi for NET (рис. 1). Основные преимущества, которые Delphi, C++ Builder и RAD Studio дают разработчикам ПО, — это универсальность и скорость разработки, а также принцип открытости.
Универсальность обеспечивается тем, что в качестве основы разработки выступает библиотека визуальных компонентов (VCL, Visual Components Library). VCL вот уже много лет предоставляет единый совместимый подход к разработке ПО, не зависящий от версии Windows. В то время как производитель платформы Windows произвел на свет и похоронил несколько подходов к разработке приложений (и активно продолжает этот процесс), приложения на базе VCL растут и развиваются уже более 10 лет, плавно переходя на новые версии ОС с сохранением преимуществ и возможности работы со старыми.
Скорость разработки обеспечивается как удобной и высокопроизводительной средой, так и применением компонентного подхода к разработке ПО. Наверное, сейчас мало кто помнит, какие копья ломались вокруг компонентов и их применения — считать ли такой подход чистым «объектно-ориентированным» программированием или же это отступление от канонов. А теперь компоненты стали обязательной частью практически любой среды разработки.
Нельзя не упомянуть и принцип открытости. Сейчас ведется очень много разговоров на тему open source, и часто забывают о классическом примере ПО open source — библиотеке VCL-компонентов, которая существует уже много лет. Благодаря возможности исследовать исходные коды VCL разработчики лучше понимают суть выполняемых задач, заглядывают на более глубокий уровень реализации и таким образом выпускают более элегантные и надежные приложения. Немаловажный момент открытости — возможность создавать компоненты, расширяющие среду разработки и позволяющие четко сегментировать и выделять в виде компонентов различные задачи. Помимо технологической революции, возможность создания компонентов в рамках собственной среды привела к формированию широкого рынка компонентов и еще большей универсализации средств разработки.
Отличным примером возможностей компонентно-ориентированной среды разработки служит продукт CodeGear Delphi/400, который состоит из Delphi 2007 for Win32 и набора компонентов и ПО промежуточного уровня ClientObjects. Благодаря совмещению возможностей среды разработки для Windows со специальным ПО стало возможно создавать и распространять современные GUI-приложения для платформы System I (IBM). Ближайшие планы развития Delphi и C++ Builder (они представлены на сайте http://dn.codegear.com/article/36620) включают в себя выпуск Unicode-версии этих продуктов уже в III квартале 2008 г. (в данный момент идет бета-тестирование) и 64-разрядной версии в середине 2009 г. Стоит также упомянуть расширения языка Object Pascal, улучшенную поддержку UML-моделирования и интеграцию out-of-box с еще большим количеством СУБД.
.NET
Возникает резонный вопрос: а что же с поддержкой .NET? Действительно, в состав RAD Studio входит продукт Delphi for .NET. В основном он ориентирован на разработку Web-приложений для ASP.NET на языке Object Pascal.
На данный момент Delphi for .NET не поддерживает технологии WinFX. Частично это связано с желанием сосредоточиться на основных продуктах, наиболее востребованных пользователями, а частично — с быстро меняющимся технологическим стеком от Microsoft. Конечно, положение монополиста в области ОС позволяет диктовать пользователям условия и форсировать переход на новые версии ОС, но с точки зрения разработчиков отказ от наработанных программных решений и накопленного опыта ради следования модным тенденциям не может быть оправданным.
.NET изначально имеет сильную привязку к платформе, и рассчитывать на платформенную независимость вряд ли приходится. А с увеличением доли Linux на десктопах, все более широким распространением продуктов Apple и, главное, в ответ на растущие требования бизнеса обеспечить независимость от платформы, роль .NET будет снижаться, а роль кросс-платформенных приложений — расти. Именно поэтому в качестве стратегического направления было выбрано создание кросс-платформенной среды разработки, продолжающей развитие сегодняшних Delphi for Win32 и C++ Builder. Используя опыт Kylix (который снят с производства) и внимательно изучив существующие кросс-платформенные средства разработки, инженеры CodeGear работают над новыми версиями Delphi и C++ Buider.
Нельзя не признать, что в данный момент наблюдается значительный интерес к .NET, особенно среди начинающих программистов, но стоит отметить, что аналогичная «волна» имела место в связи с Java, которая рассматривалась буквально как панацея для всех задач ИТ. Однако через несколько лет ажиотаж схлынул, и Java-разработка заняла свое достойное, но не доминирующее место среди других ИТ.
Java
Несомненно, «властелин» рынка средств разработки на Java — разнообразные сборки инструментов на основе Eclipse. Созданная при активной поддержке и участии Кента Бека (основоположника экстремального программирования) и экспертов компании IBM, к третьей версии эта система приобрела привлекательные черты в качестве как основы для IDE, так и самостоятельной среды разработки (прежде всего на базе Java Developer Toolkit).
Компания Borland входит в состав Eclipse Foundation как стратегический партнер, и вполне логично, что последние годы разработка инструментария под Java была переориентирована на платформу Eclipse. Первая версия JBuilder 2007 на базе Eclipse вышла в ноябре 2006 г., затем был релиз JBuilder 2007 R2, и в апреле этого года увидел свет JBuilder 2008 (рис. 2). В то время много споров вызвало само решение перейти на платформу Eclipse, но сейчас мы видим, что это было правильно, так как соревноваться с Eclipse в базовых функциях достаточно сложно, а вот использовать его в качестве основы для добавления дополнительной функциональности и интеграции существующих решений open source — вполне возможно.
Базовые функции кодирования и отладки выполняются с помощью стандартного Java Developer Toolkit (JDT), а задачи оптимизации, UML-моделирования и работы с EJB и серверами приложений, интеграция и совместная работа — все это обеспечивает JBuilder. В последней версии в состав JBuilder 2008 вошел мощный Swing-дизайнер, с помощью которого можно создавать визуальные интерфейсы для настольных приложений, и появилась поддержка Application Factories, что позволяет выделять модули и участки кода приложений, сохранять их и затем повторно использовать. Стоит отметить, что JBuilder 2007 получил награду журнала InfoWorld как «Лучшая IDE на Java».
Помимо JBuilder, который представляет собой мощное интегрированное средство для Java-разработки, были выпущены плагины JGear для Eclipse-совместимых сред разработки. Например, те разработчики, которым нужно только профилировать исходный код, могут обойтись плагином JGear Performance (основанным на технологии OptimizeIt), а те, кто ориентирован на совместную работу, могут выбрать плагины Team Server/Team Client. Установив эти плагины в Eclipse Callisto или Yoxos либо бесплатный Turbo JBuilder, разработчики смогут воспользоваться необходимой частью функциональности JBuilder.
Turbo
Говоря о продуктах серии Turbo (к которым относятся Turbo Delphi, Turbo C++, Turbo Delphi .NET и Turbo JBuilder), следует более подробно рассказать и о планах компании по «засеиванию» своими программными продуктами новых пользователей. Продукты Turbo были созданы как бесплатная (редакция Explorer) или недорогая (редакция Professional) среда разработки для индивидуальных разработчиков и начинающих программистов. Эксперимент оказался удачным, было загружено несколько сотен тысяч копий Turbo Explorer.
В данный момент редакция Turbo Professional не выпускается (Explorer по-прежнему доступен для загрузки) и осталась лишь бесплатная версия — это связано с тем, что продукты Turbo основывались на версии 2006 линейки продуктов, которая снимается с производства. Надо отметить, что, понимая исключительную важность предоставления бесплатной версии своих средств разработки начинающим и индивидуальным разработчикам, CodeGear не может распространять свои продукты полностью бесплатно.
Дело в том, что CodeGear занимается только производством инструментов и не имеет «побочного» бизнеса в виде платформы/ОС, продажи которой покрывали бы затраты на производство и позволяли демпинговать или полностью спонсировать средства разработки. Соответственно линейка Turbo будет продолжать развиваться, но корпоративные и профессиональные средства разработки по-прежнему будут платными. Впрочем, перегрев рынка труда и дефицит квалифицированных разработчиков сместили акцент затрат со стоимости средств разработки на стоимость рабочего времени разработчика, а понимание необходимости работать с легальными инструментами пришло ко всем профессиональным работникам ИТ-индустрии.
Скриптовые языки
За последние полтора года CodeGear выпустила три новых средства разработки на скриптовых языках: Delphi for PHP, Delphi for PHP/400 и 3rd Rails (Ruby on Rails). Применение скриптовых языков началось несколько лет назад и все еще переживает период бурного развития. Не ответить на этот вызов было нельзя, и в результате появился Delphi for PHP (рис. 3). Само сочетание Delphi — for PHP говорит о базовой идее, заложенной в продукт. Скриптовые языки быстро прошли путь от беспорядочного «кусочного» кодирования к средам разработки, и Delphi for PHP сделал следующий шаг — переход на компоненто-ориентированную разработку.
Библиотека компонентов VCL4PHP (это, кстати, проект open source на Sourceforge.net, http://sourceforge.net/projects/ vcl4php/) создана по образцу VCL для Delphi и C++ Builder, а редактор исходного кода и дизайнер визуальных компонентов очень напоминают Delphi. Delphi for PHP/400 сочетает возможности Delphi for PHP и ПО промежуточного уровня ClientObjects для создания приложений на PHP для платформы IBM System I.
Средство разработки 3rd Rail для создания приложений для среды Ruby On Rails — вторая IDE (после JBuilder) в линейке продуктов CodeGear, основанная на Eclipse. Ruby On Rails сочетает в себе MVC-среду и интеграцию с базами данных, позволяя чрезвычайно легко, буквально за минуты, создавать работающие приложения баз данных, и считается одним из самых удобных и производительных подходов к Web-разработке. IDE 3rd Rail предоставляет визуальный интерфейс, удобный редактор и массу мастеров для автоматизации задач, которые обычно выполняются в Ruby On Rails с использованием утилит командной строки или ручного кодирования, что делает разработку в среде Ruby On Rails еще быстрее и эффективнее.
Базы данных
CodeGear выпускает две СУБД: InterBase и Blackfish. О Blackfish можно сказать коротко: это встраиваемая СУБД для .NET и Java (написанная соответственно на .NET и Java), которая поддерживает возможности шифрования и создания хранимых процедур и триггеров на языках .NET. Наилучшее применение Blackfish — задачи конфигурационного управления и распространения закрытой информации, т. е. в качестве встраиваемого в приложения хранилища данных с поддержкой SQL.
В свою очередь, InterBase — это СУБД с богатой и непростой историей. Начавшись как военный проект под Unix, InterBase следует кросс-платформенной идеологии вот уже 25 лет и сейчас работает в среде Windows, Linux, Solaris и Mac OS X.
Благодаря многоверсионной архитектуре, когда читающие пользователи не блокируют пишущих, InterBase позволяет создавать базы данных для универсального применения, сочетающие постоянное обновление и ввод данных с аналитическими SQL-запросами. Нетребовательность InterBase к системным ресурсам и ее надежность сделали эту СУБД очень популярной среди разработчиков тиражируемого ПО. Например, AAM Systems (Москва), один из крупнейших в мире производителей систем безопасности и контроля, использует InterBase в качестве основного хранилища данных, обеспечивая бесперебойную работу критически важных систем в режиме 24Ч7Ч365.
Новые функции в InterBase 2007 включают инкрементальные резервные копии, журналирование и восстановление данных на конкретный момент времени, что значительно увеличило возможности поддержки баз данных большого размера.
Для популяризации InterBase существует версия InterBase Developer Edition, полностью бесплатная для использования в процессе разработки (входит в состав RAD Studio/Delphi/C++ Builder).
Интеграция с продуктами Embarcadero
Несмотря на то, что Delphi, C++ Builder и JBuilder — это универсальные средства разработки, чаще всего они применяются в качестве средств для разработки приложений баз данных. А как уже было сказано, Embarcadero производит десять продуктов, предназначенных для проектирования, оптимизации и эксплуатации баз данных. Некоторые из них, например, DBArtisan и DTStudio, интересны в основном администраторам баз данных. А вот остальные продукты позволяют создавать очень интересные взаимодополняющие решения именно для разработчиков ПО.
Универсальность механизмов доступа и подходов к разработке позволяет разрабатывать переносимые (между базами данных) приложения с минимальными затратами. Очевидно, что эти возможности Delphi и C++ Builder можно легко усилить, прежде всего такими продуктами Embarcadero, как RapidSQL, PowerSQL и E/R Studio.
RapidSQL и PowerSQL позволяют создавать и отлаживать SQL-код для Oracle, Microsoft SQL или Sybase, оптимизируя и анализируя его в процессе разработки, а E/R Studio служит для проектирования и анализа модели баз данных. Присоединяя к разработке приложений разработку СУБД, мы получаем новый уровень взаимодействия и эффективности разработчиков ПО и архитекторов баз данных. В работе над большими проектами баз данных разработчикам будет полезен и Embarcadero Change Manager, который обеспечит конфигурационное управление для схемы базы данных, и DS Auditor, который позволит прозрачно отслеживать запросы и оптимизировать производительность даже для системы, уже находящейся в эксплуатации, но нуждающейся в доработках.
Заключение
К перечисленному выше нетрудно добавить самые разные варианты совместной работы инструментов CodeGear и Embarcadero, но ограничимся лишь очевидным фактом — они прекрасно дополняют друг друга. Опыт команд разработчиков в обеих компаниях послужит основой для создания новых инструментов разработчика, универсальных и кросс-платформенных (нелишне отметить, что практически все продукты Embarcadero относятся к кросс-платформенным в плане как работы в среде разных ОС, так и поддержки различных СУБД).
В заключение стоит, наверное, упомянуть сообщество профессиональных пользователей CodeGear, насчитывающее 3,2 млн человек (более 100 тысяч — в России и СНГ), огромную популярность Delphi и C++ Builder в учебных заведениях по всему миру и нацеленность команды CodeGear и Embarcadero на успех. Ведь как бы ни развивалась ИТ-индустрия, количество разработчиков-»электриков» будет только расти, и, очевидно, лучшими будут те, кто разбирается в максимальном числе типов «вилок» и «розеток» — а главное, может собрать из них реально работающую «цепь».