Еще в начале этого десятилетия тема средств разработки ПО была одной из основных для профессиональных ИТ-СМИ, но в последние годы она явно стала выпадать из зоны внимания широкой ИТ-общественности, переместившись в сторону специализированных изданий, в том числе в интернет-ресурсы. Наверное, объяснить это во многом можно тем, что изменилось позиционирование категории разработчиков ПО (которых мы по старинке зачастую продолжаем называть программистами) в общем спектре ИТ-профессоналов. Действительно, еще в середине 90-х гг. чуть ли не половина ИТ-специалистов могла сказать о себе, что они в той или иной мере занимаются программированием, однако сейчас многие из них имеют о средствах разработки скорее сугубо теоретическое представление.
И тем не менее хотя программисты составляют лишь единицы процентов от общего числа нынешних компьютерных пользователей (в то время четверть века назад их доля была близка к 100%), их роль на ИТ-рынке по-прежнему исключительно велика. И одно из подтверждений тому — неослабевающее внимание, которое уделяют сотрудничеству с сообществом разработчиков все ведущие поставщики платформенных технологий, причем не только софтверных, но и аппаратных.
Тенденции рынка
Ситуация на рынке средств разработки развивалась под воздействием целого ряда различных и порой весьма противоречивых тенденций*.
Первая — это технологическая глобализация ИТ-рынка, которая выразилась в том, что инструментальные средства из самостоятельного софтверного направления трансформировались в один из компонентов платформ приложений, причем речь изначально шла о безусловном лидерстве монопродукта в виде Microsoft Visual Studio. В то же время сами платформенные технологии фактически разделились на два противоборствующих лагеря: Microsoft .NET и Java/Open Source. Здесь поначалу наблюдался довольно широкий спектр предложений во главе с популярными инструментами от Rational и Borland, но потом под девизом борьбы с “внешним врагом” начался процесс консолидации Java-средств вокруг проекта Eclipse, в свое время инициированного корпорацией IBM.
Одним из фундаментальных следствий глобализации стало фактическое исчезновение самого рынка (как предмета коммерческой деятельности вендоров) средств разработки. Точнее, рынок продолжает существовать, но уже совсем в ином статусе, нежели десять лет назад. Внешне это проявляется в виде выхода на ведущие позиции платформенных поставщиков ПО и ИТ-сообществ и соответственно ухода в тень (или вовсе с рынка) специализированных игроков (классическая иллюстрация этому — пример Borland).
Вторая тенденция — рост сложности программных проектов. В результате процесс собственно разработки ПО стал рассматриваться как один из этапов управления жизненным циклом приложений (Application Lifecycle Management, ALM). В этой ситуации инструментальные средства начали смещаться, с одной стороны, в направлении поддержки групповой работы на основе ролевой модели, а с другой — в область управления требованиями, где повышалась значимость тестирования и оптимизации ПО (как тиражных продуктов, так и заказных решений).
Казалось бы, следствием этих двух тенденций должно стать общее смещение разработки ПО в сторону сильных опытных профессиональных команд. Однако высокие темпы развития самих ИТ породили и совершенно противоположные ситуации. Во-первых, начали быстро набирать популярность проекты Open Source, в основе которых лежит модель распределенной разработки сообществом со слабыми организационными связями. Во-вторых, если ранее понятие разработки ассоциировалось прежде всего с настольными и серверными приложениями, то теперь оно стало включать создание ПО для Web и мобильных устройств, а также использование новых технологий вроде Web 2.0. В-третьих, значимость пользовательского интерфейса продолжает неуклонно расти, в результате чего сформировалась новая категория разработчиков-дизайнеров, пополнившаяся, в частности, специалистами из сферы художественного дизайна.
В результате возникла довольно парадоксальная ситуация, когда созданием действительно инновационных решений в области разработки ПО занимается главным образом молодое поколение и при этом еще сильнее возросло значение индивидуальных проектов. Это подтверждается выдающимися примерами в ИТ-бизнесе последних лет (Yahoo!, Google, LiveJournal, Facebook и пр.), которые выросли из студенческих работ. В такой ситуации нет ничего удивительного в том, что ведущие платформенные вендоры стали уделять повышенное внимание вопросам продвижения своих средств разработки именно в молодежную среду (см. www.pcweek.ru/themes/detail.php?ID=107057).
Структура рынка
Структуризация любого рынка — дело непростое и в любом случае весьма субъективное. Надо сказать, что обычно для определения границ и отдельных компонентов того или иного сегмента исследуются его стоимостные объемы, оцениваются доли участников и пр. Но применительно к средствам разработки такая постановка вопроса является не очень актуальной, поскольку, как мы уже отмечали ранее, данный вид ПО играет служебную роль по отношению к платформам, и потому чисто коммерческий аспект его продвижения имеет совсем не первостепенное значение (к тому же многие инструменты вообще не продаются в виде отдельных продуктов и поставляются только в составе платформ).
Тем не менее, конечно, было бы хорошо хотя бы немного определиться, что мы имеем в виду под средствами разработки.
Как мы уже говорили, современный подход к созданию ПО базируется на концепции управления жизненным циклом приложений, которая подразумевает организацию долгосрочного процесса коллективной работы с ролевым распределением труда (рис. 1). Понятно, что для поддержки каждой роли-функции нужен какой-то свой набор инструментов, вместе с тем все эти средства должны быть хорошо интегрированы между собой.
Исторически процесс формирования таких ALM-наборов часто шел именно путем эволюционной интеграции различных инструментов, вендоры же свои ALM-портфели пополняли путем приобретения различных компаний-разработчиков (пример -- Borland в начале этого десятилетия).
Однако стратегически более перспективным, судя по всему, оказался другой подход -- эволюционное развитие ALM-платформы на базе интегрированных сред разработки (Integrated Development Environment, IDE). Именно по такому пути идет корпорация Microsoft со своим пакетом Visual Studio; так же решила строить свою стратегию в этой области и IBM, которая свой проект Eclipse преобразовала в мощное OpenSource-движение (по этой же схеме работает Sun с собственным проектом NetBeans).
Таким образом, говоря об IDE-инструментах, нужно иметь в виду, что речь идет, как правило, уже не о традиционном средстве поддержки работы отдельного программиста, представляющем собой джентльменский набор в виде редактора кода, компилятора, компоновщика и отладчика, а о комплексной инструментальной ALM-системе, в состав которой входят инструменты поддержки групповой работы, управления требованиями, тестирования и т. д.
Второй подход к структуризации рынка отражает целевые задачи разработки. Здесь мы предложили бы вариант, включающий два основных разреза — с точки зрения базовых платформ и по широте спектра решаемых задач (рис. 2). При этом можно выделить две ведущие технологические платформы — .NET и Java, где сегодня доминируют соответственно инструменты Visual Studio и Eclipse.
Стоит отметить такой любопытный факт. До недавнего времени одним из классических признаков профессиональной разработки ПО было использование языков C/C++. Однако в последние годы уровень популярности этого средства программирования в плане практического использования явно шел на убыль, в результате чего можно констатировать, что Cи-инструменты из категории средств общего назначения переместились в специализированные.
В то же время заметен рост значимости инструментов, имеющихся в составе специализированных платформ, в первую очередь транзакционных систем (таких, как ERP). Ранее эти средства имели сугубо встроенный характер и были предназначены преимущественно для более тонкой настройки готовых прикладных решений. Однако сейчас мы можем наблюдать, что многие бизнес-платформы сегодня позиционируются как основа для создания широкого спектра приложений и имеют в своем составе весьма совершенные инструментальные наборы. Конечно, общей тенденцией тут является переход к использованию универсальных средств (в частности, Visual Studio для Microsoft Dynamics), но есть удачные примеры развития и собственных технологий (наиболее яркий — “1С:Предприятие”).
Рынок IDE в исследовании Forrester
Компания Forrester провела в 2007 г. исследование в области использования IDE-инструментов, опросив с этой целью более 700 разработчиков приложений в США и Канаде (выборка была сделана из подписчиков специализированных информационных бюллетеней).
Один из главных (и вполне прогнозируемых) результатов таков: доминирующие позиции принадлежат системам Visual Studio (48%) и Eclipse (30%). Однако подчеркнем: распределение показывает ведущий инструмент в арсенале конкретного разработчика (рис. 3). Исследование подтвердило давно известную вещь: современный программист очень часто создает приложения для гетерогенных сред и потому использует целый набор средств.
Например, лишь 11% пользователей Eclipse имеют дело только с этой IDE, остальные 89% применяют что-то еще — Sun NetBeans (33%), MS Visual Studio (27%), Oracle JDeveloper (12%), IBM WebSphere Application Developer (12%), BEA WorkShop (11%), IBM Rapid Application Developer (9%), CodeGear JBuilder (6%). Что касается Visual Studio, то это более самодостаточное средство — половина его пользователей решает все свои задачи только с его помощью. Но остальные применяют различные Java-инструменты: Eclipse (39%), Sun NetBeans (14%), Oracle JDeveloper (14%), IBM WebSphere Application Developer (15%), IBM Rapid Application Developer (9%)/
Кроме того, подавляющее большинство разработчиков использует модули расширения (plug-in) для базовых IDE: только 6% обходятся без таких компонентов, 31% имеют один-два компонента, 39% — три-пять, остальные — более шести.
Если говорить о популярности инструментов в разрезе разных платформ, то тут видна принципиально разная картина. В стане .NET безусловно доминирует Visual Studio (97%). Среди Java-разработчиков предпочтения выглядят следующим образом: Eclipse (57%), Sun (13%), IBM (12%), CodeGear (5%), другие (5%), JetBrains (4%), Oracle (3%), Microsoft (3%).
Понятно, что ключевую роль при выборе инструмента играет используемая платформа приложений. Однако очень интересно посмотреть на критерии оценки для двух платформенных лагерей — .NET и Java (см. таблицу). При этом большинство разработчиков сходится на том, что главным достоинством IDE является удобная работа в этой среде (66%) и техническая поддержка со стороны поставщика (62%).
Исследование Forrester показало, что наиболее популярная целевая задача разработки состоит в создании Web-сервисов (на это указали 58% опрошенных). Собственно разработка традиционных приложений занимает 55% (Java) и 54% (.NET). Кроме того, 32% приходится на создание современных интернет-приложений с насыщенным функционалом (Ajax, Flash, Flex и др.), 19% — на решение вычислительных задач, 13% — на мобильные приложения. И только в 9% случаев использование IDE связано с производством коммерческих продуктов. Любопытно, что все чаще (8%) сами IDE (в основном Eclipse Rich Client Platform) примеряются в качестве основы для пользовательских приложений.
Средства разработки в России
К сожалению, нам не известно о каких-либо целенаправленных исследованиях в сфере использования средств разработки в России. Хотя, разумеется, общую ситуацию в первом приближении тут вполне можно составить на основе анализа деятельности вендоров, активности ИТ-сообществ, публикаций в СМИ и т. д. Однако, конечно, хорошо бы иметь и хоть какую статистическую информацию.
С этой целью мы провели опрос среди наших читателей. Разумеется, полученные данные не рисуют сколь-нибудь полную и достоверную картину, поскольку разработчики ПО не являются главной фокусной группой читателей нашего еженедельника. И все же, безусловно, они могут послужить пищей для размышлений в этом направлении. В целом они подтвердили наше представление о ситуации.
Итак, 98% опрошенных ответили, что в их организациях используются средства разработки, однако столь высокий процент не должен вводить в заблуждение: вполне очевидно, что в опросе приняли участие именно те, кто работает в компаниях соответствующей категории. Об этом, в частности, говорит распределение респондентов по ИТ-поставщикам и ИТ-заказчикам: соответственно 71 и 27% (обычно в наших онлайновых опросах большинство приходится на клиентов).
Примерно поровну распределились голоса по преимущественному назначению инструментальных средств: создание новых приложений — 50%, доработка и настройка существующих систем — 47%.
Распределение респондентов по применяемым средствам дало картину (рис. 4), которая довольно сильно отличается от мировой (Forrester). Лидерство и большая доля (30%) Microsoft сомнения не вызывает. У Borland всегда были традиционно сильные позиции в нашей стране, особенно во внутрифирменных разработках, верность пользователей инструментам этой компании также хорошо известна, поэтому второе место этого поставщика, несмотря на проблему с развитием данного бизнес-направления, тоже выглядит довольно естественно.
Инструменты Open Source (можно предположить, что главным образом речь тут идет об Eclipse) заняли третье место, но при этом существенно уступают по популярности коммерческим продуктам, что отличается от зарубежной ситуации. Этому можно найти объяснения. Прежде всего, учитывая высокий уровень пиратства (разработчики в этом не сильно отличаются от обычных пользователей), понятно, что вопрос цены инструмента является в нашей стране не столь значимым, как за рубежом, и потому не может служить сильным стимулом к применению бесплатных продуктов.
Довольно высокий процент пользователей средств разработки Oracle вполне соответствует общемировым показателям — это объясняется в первую очередь созданием прикладного окружения вокруг ее СУБД.
Появление в числе наиболее популярных инструментов платформы “1С” может показаться неожиданным, но на самом деле удивления заслуживает скорее не очень высокий процент, полученный в нашем обзоре. Наверное, одна из причин этого заключается в том, что даже многие ИТ-специалисты в силу исторических представлений до сих пор просто не причисляют “1С:Предприятие” к категории средств разработки.
При этом стоит обратить внимание и на то, что продукты компании SAP в минимальной степени воспринимаются в качестве инструментария, хотя популярность ее ERP-платформы также очень велика в России. Объяснение этому вполне очевидно: встроенные средства программирования SAP в основном ориентированы на настройку готовых решений (в случае “1С” можно создавать бизнес-приложения с нуля, что и делают некоторые независимые разработчики).