Если задуматься о том, какими были программисты десять-пятнадцать лет назад, вспоминаются обычно эрудированные универсалы, не просто создававшие приложения, но умевшие писать код, прокладывать сети, чинить компьютеры, успокаивать и учить отчаявшихся пользователей, составлять для них грамотную и понятную документацию, наконец, знавшие предметную область не хуже все тех же пользователей. Сейчас такие специалисты либо вымерли, как динозавры, либо стали руководителями проектов, начальниками отделов разработки и консалтинговых подразделений, и найти таких людей теперь можно разве что в очень маленьких компаниях.

В средних же и крупных организациях полным ходом идет процесс специализации, предполагающей, что системный аналитик не обязан уметь программировать, бизнес-аналитик не руководит проектами, а руководитель проекта занимается только организационной работой и не интересуется ни архитектурой приложения, ни тем более предметной областью. Этот процесс отражает факт активного перехода средних и больших компаний от малотиражного производства эксклюзивного ПО к массовому промышленному производству добротных, но совершенно "средних" продуктов, широко востребованных современными пользователями. Впрочем, малотиражное производство необычных программных продуктов пока что тоже пользуется спросом.

Переход ряда компаний к промышленному производству ПО и появление узкой специализации среди разработчиков привели к активному развитию в течение последних пяти лет так называемых средств поддержки жизненного цикла приложений, предназначенных для достаточно больших коллективов разработчиков. К ним относятся средства управления требованиями, моделирования бизнес-процессов, приложений и данных, тестирования и оптимизации приложений, управления коллективной работой, контроля версий, управления изменениями. Среди производителей подобных инструментов - IBM, Computer Associates, Borland, Microsoft, Oracle и ряд других компаний. Не рассматривая подробно спектр продуктов для управления жизненным циклом приложений, предлагаемых перечисленными выше и другими поставщиками, мы попробуем выяснить, что представляют собой типичные задачи, стоящие перед разработчиками, и каковы тенденции развития рынка предназначенных для них инструментов.

Типичные задачи и проекты

Современный заказчик зачастую весьма эрудирован и, как правило, очень капризен. Традиционные приложения для ввода данных, просмотра и печати отчетов теперь его уже не устраивают - ему нужна бизнес-аналитика, оптимизация бизнес-процессов, представление данных в максимально наглядном (и лучше бы в проанализированном) виде, желательно через Web-интерфейс, да и сами приложения должны быть минимально затратными с точки зрения сопровождения и обновления. Поэтому сегодня актуальной становится разработка решений на основе не только СУБД, но и других продуктов - офисных приложений, ГИС- и CAD-систем, средств бизнес-аналитики, а наибольшим спросом пользуются платформы и средства разработки, максимально упрощающие создание таких решений (как правило, с помощью всевозможных программных интерфейсов, предоставляемых производителями указанных категорий продуктов). К таким платформам в первую очередь относятся J2EE, Win32 и Microsoft .NET, а средства разработки, использующиеся для создания приложений, принадлежат главным образом Microsoft, Borland, IBM, Oracle, Sun Microsystems.

Требования к защищенности приложений в последние два-три года также стали существенно строже. Такие проблемы, как огромное количество поступающего из Интернета вредоносного кода на фоне абсолютно недостаточной осведомленности о нем рядовых пользователей, возрастающие угрозы утечек постоянно дорожающих корпоративных данных, попытки фишинга и фарминга налагают определенные ограничения на выбор платформ для разработки, а также на архитектуры приложений и их возможности. В свете этих требований для разработчиков становятся все более привлекательны платформы Microsoft .NET и J2EE, обладающие достаточным набором средств для создания защищенных приложений.

Переход многих компаний от все более дорогих в обслуживании "зоопарков", образовавшихся некогда в результате стихийной автоматизации отдельных областей, к внедрению систем управления предприятием, охватывающих практически все основные сферы деятельности компаний, приводит к тому, что все более востребованными становятся решения на основе указанных систем. В этом случае выбор платформ и средств разработки или иных инструментов оказывается ограничен теми из них, которые поддерживаются производителями ERP- и CRM-систем (обычно это инструменты для платформ .NET и J2EE). Кроме того, подобный шаг обычно предполагает реализацию проекта переноса данных из унаследованной системы в новую, а он влечет за собой широкое применение средств проектирования данных и ETL-инструментов (Extract, Transform and Load - извлечение, преобразование и загрузка данных).

В последние два года отмечается активный интерес российских заказчиков к приложениям для мобильных устройств. Это обусловлено большей частью тем, что сейчас возможности и стоимость мобильных устройств (равно как и технологий, сопровождающих их использование) достигли того уровня, когда их применение во многих случаях экономически оправданно (например, в сравнении с заказными специализированными устройствами). Скорее всего, этот интерес проявится в росте числа проектов с применением мобильных устройств в ближайшие два-три года.

Наконец, Web-приложения и приложения для корпоративных интрасетей также становятся все более и более востребованными в силу дешевизны их сопровождения. Нередко они предполагают создание решений, основанных на готовых продуктах, таких, как средства управления информационным наполнением или корпоративные порталы, а иногда просто используют инфраструктурное ПО - серверы приложений, СУБД, Web-серверы. Применение Web-служб в последнее время тоже становится все более распространенным.

Заметим, что, несмотря на актуальность перечисленных выше направлений разработки приложений, наш список отнюдь не исчерпывает все виды задач, стоящих сегодня перед разработчиками. Однако именно указанные направления определяют тенденции развития рынка инструментов для разработки приложений.

Тенденции развития инструментов разработки

Системы с открытым кодом и бесплатные версии коммерческих продуктов

Если вспомнить, что происходило с инструментами для разработки в предыдущие два года, просматривается весьма активная тенденция выпуска ведущими производителями платформ (такими, как IBM, Microsoft, Oracle, Sybase) бесплатных СУБД (а в случае Microsoft и Oracle - и бесплатных средств разработки) с неплохими функциональными возможностями, с тем чтобы повысить привлекательность своих платформ для разработчиков и их заказчиков. В частности, корпорация Microsoft (http://www.microsoft.com) недавно выпустила семейство продуктов Express, включающее несколько инструментов для разработки приложений Windows Forms и ASP.NET, а также СУБД Microsoft SQL Server Express. Корпорация Oracle (http://www.oracle.com), в свою очередь, также предоставила свободный доступ к Oracle JDeveloper 10g и выпустила бесплатную редакцию Oracle Database 10g Express Edition для 32-разрядных ОС Linux и Windows. Корпорация IBM (http://www.ibm.com) предлагает бесплатную версию СУБД DB2. Компания Borland (http://www.borland.com) уже примерно три года выпускает бесплатные версии некоторых своих средств разработки.

Отметим, что еще несколько лет назад подобная ситуация казалась невозможной. Так, появление созданного группой энтузиастов из числа разработчиков Microsoft инструмента WebMatrix - скорее вопреки, нежели благодаря тогдашней политике корпорации - вызвало немалое удивление, а выпуск СУБД Microsoft Desktop Engine, на основе которой можно было создать не слишком сложное клиент-серверное приложение, считался необычным маркетинговым ходом. Появление же бесплатных СУБД от Oracle и IBM в те времена было чем-то немыслимым.

Для современного рынка средств разработки характерна и еще одна тенденция, а именно, активное развитие платформ и инструментов с открытым исходным кодом, в которое сейчас немалые средства инвестируют коммерческие компании, в том числе такие производители платформ, как IBM, Novell, Oracle. Из наиболее ярких примеров следует отметить активное развитие среды Eclipse - универсальной открытой платформы разработки, совместимой с множеством языков, платформ развертывания и технологий (см. врезку "Коротко об Eclipse"), а также проекта Mono, реализующего часть платформы .NET для ОС Linux, - для него сейчас довольно активно появляются компиляторы и иные инструменты.

Коротко об Eclipse

Начало проекту Eclipse положила в 1998 г. корпорация IBM, поставившая перед собой цель создать интегрированную среду Java-разработки нового поколения, расширяемую за счет встраиваемых в нее инструментов, силами нескольких поставщиков Java-инструментов. С этой целью IBM в конце 2001 г. предоставила сообществу open source часть исходного кода своего средства разработки Java-приложений Websphere Studio Workbench и сформировала консорциум Eclipse - куда вошли компании Borland, IBM, MERANT, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft, Webgain - для управления дальнейшим развитием этой среды разработки.

В 2004 г. консорциум Eclipse был преобразован в независимую некоммерческую организацию Eclipse Foundation (http://www.eclipse.org), насчитывающую сегодня 115 членов. Среди стратегических разработчиков и потребителей Eclipse Foundation следует отметить компании BEA Systems, Borland Software, Computer Associates, Ericsson, HP, IBM, Intel, QNX, SAP, Sybase.

Платформа Eclipse предоставляется в виде заранее скомпилированных исполняемых файлов для широкого спектра платформ, включая Windows, Linux, Solaris, HP-UX, AIX, QNX, Mac OS X.

Сегодня, через пять лет с момента ее создания, платформа Eclipse стала настолько популярна, что начала вытеснять с рынка широко распространенные коммерческие инструменты (например, некоторые средства Java-разработки).

Хотя сейчас доля рынка средств разработки Java-приложений, занимаемая Eclipse, составляет примерно 50%, в прошлом году явно наблюдалась тенденция превращения Eclipse из среды Java-разработки в платформу интеграции инструментов для всего жизненного цикла разработки приложений. В частности, именно тогда были начаты такие open source-проекты, как создание графической среды моделирования Graphical Model Framework и инструментов для архитектуры, ориентированной на сервисы (SOA, Service Oriented Architecture), выпущены обновленные версии инструментов тестирования (Test and Performance Tools Platform, TPTP), бизнес-аналитики (Business Intelligence and Report Tools, BIRT), средств создания Web-приложений.

Что касается собственно средств разработки приложений, на основе платформы Eclipse сейчас созданы среды разработки для PHP, Fortran, Macromedia Flex; планируется выпустить ряд инструментов разработки приложений для встроенных и мобильных платформ (в частности, от Nokia). Многие инструменты разработки IBM/Rational либо перенесены на платформу Eclipse, либо включают средства интеграции с ней.

Компания Borland планирует перенос своего пакета для разработки JBuilder на платформу Eclipse в ближайшее время. На данный момент Borland выпустила средство UML-моделирования Together Designer for Eclipse (рис. 1). Кроме того, встраиваемые модули расширения для среды Eclipse доступны пользователям систем управления конфигурациями Borland StarTeam и управления требованиями Borland Caliber RM.

Fig.1 Рис. 1. Borland Together Designer for Eclipse.

Из продуктов SAP, основанных на платформе Eclipse, отметим SAP NetWeaver Developer Studio (рис. 2). Эта среда позволяет создавать решения как на основе технологий SAP, так и не имеющие прямого отношения к ним.

Fig.2 Рис. 2. Архитектура SAP NetWeaver Developer Studio.

Инструменты для мобильных приложений

Ввиду роста интереса заказчиков к разработкам для мобильных устройств средства создания данной категории приложений становятся все более популярными среди разработчиков. Для платформы Windows Mobile инструменты от Microsoft доступны уже достаточно давно; недавно появились (и будут развиваться далее) инструменты Borland, успешно выпускающей также средства разработки для Symbian и платформы J2ME, и соответствующие продукты от Sybase. Впрочем, развитие средств разработки Web-приложений также должно оказать свое влияние на распространенность проектов создания приложений универсального характера, приспосабливающихся к типу устройства или просто использующих неплохие возможности современных мобильных Web-браузеров.

Аналитические инструменты

Если универсальные механизмы доступа к данным и стандарт языка SQL прочно вошли в нашу жизнь более 20 лет назад, то с бизнес-аналитикой, ставшей доступной многим компаниям благодаря недавнему выходу на этот рынок корпорации Microsoft с неплохой BI-платформой (рис. 3), все обстоит не столь гладко. Пока еще не решены ни вопросы стандартизации доступа к OLAP-данным, ни стандартизации языков запросов, а создание приложений с применением бизнес-аналитики накладывает существенные ограничения на выбор средств разработки и механизмов получения доступа к многомерным данным (особенно в случае OLAP-платформы и средств разработки приложений разных производителей). Впрочем, указанные проблемы обычно решаются за счет включения в состав решений продуктов компаний, специализирующихся на указанных проблемах, таких, как Cognos или Business Objects.

Fig.3 Рис. 3. Средства создания аналитических решений Microsoft SQL Server 2005.

Инструменты для промышленной разработки

Многие компании, специализировавшиеся ранее на создании сред разработки, в последнее время обратили пристальное внимание на инструменты, традиционно считавшиеся "необязательными к применению" в компаниях и отделах, занимающихся разработкой приложений. К таким инструментам относятся средства управления требованиями и изменениями, средства моделирования, тестирования. Активное продвижение на рынок подобных инструментов, как правило, совмещается с проектами их внедрения в компаниях-разработчиках с целью автоматизации и оптимизации процессов, сопровождающих разработку, включая постановку задач, управление требованиями, достижение соответствия стандартам качества.

Потребности в интеграции всех этих "тяжелых" инструментов между собой привели к созданию целых платформ для ролевой разработки ПО и управления жизненным циклом приложений. Такие платформы были в течение последнего года выпущены компаниями Borland, IBM и Microsoft.

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

Несколько слов о планах Borland

В начале февраля сообщество разработчиков было удивлено пресс-релизом Borland, объявлявшим о приобретении известного поставщика средств тестирования компании Segue и о "намерении найти покупателя части бизнеса Integrated Development Environment, связанной с разработкой, в частности, Borland Developer Studio и JBuilder". Подобное заявление не могло не вызывать обеспокоенности у российских разработчиков, создавших (и теперь сопровождающих) миллионы строк кода с помощью инструментов Borland.

Визит в Москву Джейсона Вокса, менеджера по средствам разработки Borland в регионе EMEA (проводившего 23 мая семинар, посвященный перспективам развития технологий Borland в области разработки прикладных систем, для руководителей групп разработки, менеджеров проектов, архитекторов, разработчиков, представителей независимых поставщиков ПО), несколько прояснил ситуацию. Как оказалось, словосочетание "найти покупателя" реально означало поиск инвестора, готового вложить деньги в отдельную компанию с условным названием DevCo, в которую должны быть выделены подразделения, отвечающие за средства разработки, - сейчас идет процесс выбора инвестора из ряда компаний, предлагающих себя на эту роль. Иными словами, приобретя ряд "тяжелых" продуктов для поддержки жизненного цикла приложений, предназначенных для крупных компаний-разработчиков, корпорация решила выделить в отдельный бизнес подразделение, которое фактически и принесло имени Borland всемирную известность и заслуженное уважение.

Что касается планов развития продуктов этого подразделения, они включают создание новых версий Delphi (рис. 4), предназначенных для .NET Framework 2.0, Windows Vista, 64-разрядных версий Windows, версии JBuilder 2007, основанной на платформе Eclipse, а также ряда новых версий СУБД Interbase.

Fig.4 Рис. 4. Среда разработки Delphi 2006.

Сопутствующие товары и услуги

Новые задачи, стоящие перед разработчиками, а также новые подходы к разработке ПО, привели к изменению спектра услуг, востребованных разработчиками. Если лет пять-десять назад главным образом были популярны курсы, обучающие применению конкретного средства разработки, конкретной технологии или методологии создания ПО, то сейчас наблюдается рост спроса на консалтинговые услуги, связанные с постановкой процессов разработки и подготовкой компаний-разработчиков к сертификации на соответствие стандартам ISO или одному из уровней зрелости процесса разработки ПО (CMM - Capability Maturity Model).

Соответствующий сегмент книжного рынка также претерпел определенные изменения - наряду с книгами, посвященными применению тех или иных средств разработки, сейчас активным спросом пользуется литература об управлении проектами, методологиях разработки ПО, применении моделирования. Впрочем, в России книги для начинающих разработчиков, где содержатся более или менее исчерпывающие ответы на основные вопросы применения того или иного инструмента, до известной степени заменяющие справочную систему, популярны по-прежнему - уровень владения английским языком среднестатистического российского программиста пока, увы, невысок.

***

Итак, современное состояние рынка инструментов для разработчиков характеризуется бурным развитием средств поддержки жизненного цикла приложений, появлением высококачественных инструментов с открытым кодом и ростом интереса к разработкам для мобильных устройств. По-видимому, указанные тенденции сохранятся еще в течение как минимум нескольких лет.