К вопросу о выборе инструментов разработки
По разным оценкам, сегодня в мире насчитывается от 10 до 20 млн разработчиков ПО, которых мы по старинке часто называем программистами. С учетом «любителей», для которых средства разработки не есть инструмент прямого зарабатывания денег (включая студентов и научных сотрудников), это число, наверное, увеличится в полтора-два раза. Итог получается весьма впечатляющим, хотя на фоне общего количества компьютерных пользователей их доля составляет не более 5-8%. Правда, это как раз тот случай, когда «мал золотник, да дорог», — роль программистов на ИТ-рынке исключительно велика, именно поэтому сотрудничеству с ними уделяют особое внимание все ведущие поставщики платформенных технологий (не только софтверных, и самый яркий пример тут — Intel).
В последние годы мы можем наблюдать драматические события на рынке средств разработки, которые обусловлены несколькими тенденциями.
Первая из них — это исчезновение рынка средств разработки. Точнее, рынок остался, но совсем не тот, каким он был десять и более лет назад. Точнее будет сказать, что существенно сократилась коммерческая составляющая данного сегмента — инструменты из самостоятельных коммерческих продуктов превращаются в средства поддержки тех или иных платформ. В результате основными поставщиками инструментов стали компании, основной бизнес которых — платформенное ПО (IBM, Microsoft, Sun, BEA Systems и т. п.). Отсюда следует серьезная коррекция ценовой политики на продукты для разработки. В принципе все эти компании могут себе позволить даже бесплатное распространение инструментов, что вполне реально компенсировать доходами от продаж платформ. Правда, до такого дело еще не дошло, но почти все вендоры имеют в своем арсенале и бесплатные средства для массового пользователя.
Вторая тенденция — разделение платформенных технологий на два лагеря: Microsoft .NET и Java/open source. Каждый из них использует собственную бизнес-модель: в первом случае речь идет фактически о монопродукте Visual Studio, во втором имеется достаточно широкий спектр инструментов, конкурирующих, в том числе и друг с другом. Конечно, для борьбы с «внешним врагом» Java-средства неминуемо должны как-то объединяться, что мы и видим на примере проектов Eclipse и NetBeans. Однако такая интеграция идет на пользу прежде всего поставщикам платформенного ПО, а тем, кто специализируется именно на инструментах, приходится нелегко (что мы видим на примере Borland).
И наконец, третий важный момент — переход к рассмотрению собственно процесса разработки ПО как одного из этапов управления жизненным циклом приложений (Application Lifecycle Management, ALM). Именно поэтому, если ранее понятие инструмента почти полностью ассоциировалось с интегрированной средой разработки (Integrated Development Environment, IDE), включающей редактор кода, компилятор, компоновщик и отладчик, то теперь мы чаще говорим об инструментальной системе, в состав которой входят средства поддержки групповой работы, управления требованиями, тестирования и т. д.
Тем не менее IDE по-прежнему остается ключевым инструментом, поскольку именно
на нее приходится основной объем работы по созданию ПО, а самое главное — именно
вокруг нее чаще всего строится вся ALM-система. Но какие же IDE пользуются популярностью
на рынке, в чем сильные и слабые стороны тех или иных продуктов?
Borland решила распрощаться с направлением IDE?Одним из самых громких событий на рынке средств разработки в нынешнем Драматическое решение компании ее новый президент и исполнительный директор За этими словами скрываются несколько важных моментов. Прежде всего нужно Суть же проблемы, по-видимому, в том, что рынок IDE за последние годы В этих условиях Borland пока так и не сумела преодолеть многолетний внутренний Какого же развития событий ожидать дальше? Из официальной информации По мнению некоторых независимых аналитиков, речь идет скорее всего не В то же время в комментариях представителей Borland подчеркивается, что Так или иначе, но Borland продолжает расширять функционал своей ALM-платформы, Общая тональность комментариев зарубежных экспертов по поводу намерения |
Что думают разработчики о своих инструментах
Поиску ответов на эти вопросы было посвящено исследование Enterprise and SMB
Development Surveys 2005 Fall, проведенное в США аналитической компанией Evans
Data (http://www.evansdata.com) в конце
2005 г. В его рамках были опрошены почти 800 профессиональных разработчиков,
которые должны были оценить возможности десяти наиболее часто используемых IDE.
Первый вопрос должен был определить популярность разных сред разработки: респондентов просили назвать инструменты, которыми они пользуются, при этом можно было указать несколько продуктов (в среднем, как видно из табл. 1, каждый разработчик назвал два инструмента, точнее, 1,98). То, что пакет Visual Studio занял первое место в этом списке, — результат вполне ожидаемый, но при этом стоит отметить, что по сумме представители .NET (два продукта, 29,2%) уступают лагерю Java (семь инструментов, 36,9%) даже без учета группы «Прочие», где .NET, скорее всего, не присутствует.
Далее были отобраны девять средств (NetBeans был объединен в исследовании с Sun Java Studio), для которых оценивались 13 ключевых функций, имеющихся во всех основных IDE. По каждому пункту участники давали оценки («отлично», «очень хорошо», «достаточно», «требует улучшения», «нет ответа»), которые потом обрабатывались и приводились к обобщенным числовым значениям в виде математической значимости опытных данных. Вот что получилось в результате.
Таблица 1. Наиболее популярные IDE
Инструмент | Число упоминаний | Доля ответов, % | |
От числа респондентов | от общего числа ответов | ||
Microsoft Visual Studio .NET | 411 | 53,0 | 26,8 |
Eclipse | 195 | 25,2 | 12,7 |
Macromedia Studio MX | 116 | 15,0 | 7,6 |
Oracle Developer Suite | 108 | 14,1 | 7,1 |
Borland JBuilder | 78 | 10,1 | 5,1 |
IBM WebSphere Studio | 67 | 8,6 | 4,4 |
Sun Java Studio | 67 | 8,6 | 4,4 |
IBM Rational Developer | 59 | 7,6 | 3,9 |
NetBeans | 51 | 6.6 | 3,3 |
BEA Weblogic Workshop | 47 | 6,1 | 3,1 |
Sun Studio (C/C++/Fortran) | 41 | 5,3 | 2,7 |
Borland C#Builder | 36 | 4,6 | 2,4 |
CodeWarrior | 29 | 3,7 | 1,9 |
Прочие | 226 | 29,2 | 14,8 |
Общее число (775 респондентов) | 1531 | 197,7 | 100 |
1. Транслятор (компилятор и/или интерпретатор)
Лидеры: Borland JBuilder — 228, Microsoft VS.NET — 215, Eclipse — 211
Это, безусловно, главный компонент IDE, ради которого и создается собственно инструмент. Borland тут подтвердила свое историческое лидерство в области средств разработки, хотя и соперники отстали совсем ненамного. На последнем месте оказался пакет Oracle Developer Suite (165 баллов), однако в последнее время Oracle стала уделять заметно больше внимания своим средствам разработки (в том числе купив несколько компаний-разработчиков инструментов), так что ситуация тут может вскоре исправиться.
2. Отладчик
Лидеры: Borland JBuilder — 207, Microsoft VS.NET — 202, IBM Websphere Studio
— 189
Отладчик уже давно стал обязательным атрибутом интегрированных сред разработки. Обычно его возможности ограничиваются анализом исполнения программ на уровне исходного кода. Группа лидеров тут примерно та же (учитывая, что IBM — родоначальник проекта Eclipse), на последнем месте — Macromedia Studio MX (122).
3. Редактор
Лидеры: Macromedia Studio MX — 216, Microsoft VS.NET — 210, Eclipse — 194
Редактор играет главную роль в деле повышения производительности труда разработчика, именно в его среде большую часть времени работает программист в процессе написания приложений. Интеллектуальные функции редактора позволяют реализовать в нем средства помощи и отладчика. Macromedia исторически делала акцент на Web-разработку и потому изначально особое внимание уделяла именно качеству редактора. А вот Oracle опять оказалась в конце списка с 150 баллами.
4. Создание исполняемого модуля
Лидеры: IBM Rational Developer — 202, Borland JBuilder — 199, Sun Java Studio
— 191
Эта функция включает две операции — компиляцию исходного кода и компоновку (подключение всех дополнительных программных компонентов) исполняемого модуля. Возможно, лидерство Rational объясняется как раз тем, что эта компания в свое время ориентировалась на использование библиотек функций от самого широкого круга поставщиков. А последнее место Macromedia (145), наверное, отражает тот факт, что компоновка была далеко не самым главным этапом работы над HTML-проектами.
5. Справка/документация
Лидеры: Macromedia Studio MX — 180, BEA Weblogic Workshop — 172, IBM Rational
Developer-171
Возможно, лидерство Macromedia отражает тот факт, что справочная система играет особую роль в Web-разработке — в данной области развитие языка и средств программирования происходит очень быстро, а занимаются этим зачастую люди, не имеющие большого опыта разработки.
6. Профайлер/оптимизатор
Лидеры: Borland JBuilder — 183, IBM Rational Developer — 173, Sun Java Studio
— 161.
Эти средства нужны для определения узких мест в программном коде с точки зрения его производительности. Раньше они применялись только довольно узким кругом профессиональных разработчиков в виде автономных инструментов, но сейчас все чаще включаются в состав IDE. Лидерство Borland, IBM/Rational и Sun показывает, что их средства ориентированы на профессионалов высокого уровня. Соответственно неудивительно, что замыкают список самые массовые инструменты — Visual Studio (101) и Eclipse (63).
7. Средства моделирования и проектирования
Лидеры: IBM Rational Developer — 187, Macromedia Studio MX — 178, Sun Java
Studio — 169
Здесь ситуация примерно такая же, как с профайлером. Долгие годы Rational была явным лидером в области применения UML (который, собственно, и придумали ее сотрудники) для разработки приложений. Визуальное проектирование изначально широко применялось и в Web-дизайне. Опять-таки, последние места Visual Studio (82) и Eclipse (55) объясняются тем, что на массовом уровне данные средства пока не слишком востребованы. Но ситуация тут очень быстро меняется, и если взять последние версии этих пакетов, они окажутся гораздо ближе к лидерам.
8. Примеры приложений
Лидеры: IBM Rational Developer — 168, Sun Java Studio — 158, Borland JBuilder
-155
Наверное, такие примеры следовало бы отнести к разделу документации, но нужно иметь в виду, что они зачастую служат не только для изучения приемов программирования, но и в качестве повторно используемых готовых модулей.
9. Библиотеки и наборы функций
Лидеры: Microsoft VS.NET — 192, IBM Rational Developer — 189, IBM Websphere
Studio — 177
Ключевой элемент современной разработки ПО — наличие набора базовых готовых компонентов, из которых создается приложение (то, что сегодня входит в понятие Framework и пока не имеет устоявшегося названия на русском языке). Приоритет тут заслуженно получила Microsoft, создавшая в свое время знаменитый набор Microsoft Foundation Classes (MFC), который в какой-то мере послужил прообразом сегодняшнего .NET Framework.
10. Производительность компилятора
Лидеры: Borland JBuilder — 196, Microsoft VS.NET — 184, IBM Rational Developer
— 182
Скорость компиляции очень важна при отладке больших приложений, так как при отладке программ в интерактивном режиме каждый раз происходит трансляция исходного кода в исполняемый вид. Тут эффект достигается двумя основными способами. Первый — это перекомпиляция только тех программных модулей, которые изменились с момента предыдущего запуска (но при широком использовании методов интерпретации в современных IDE выделить такие модули не очень просто!). Второй — использование разных уровней оптимизации результирующего кода (в режиме отладки — минимальная оптимизация, но быстрая компиляция, в режиме создания окончательного варианта приложения — высший уровень оптимизации, но с большими временными затратами).
11. Производительность результирующего приложения
Лидеры: Borland JBuilder — 195, Sun Java Studio — 187, Microsoft VS.NET
— 186
Как нетрудно понять, эта характеристика непосредственно связана с возможностями компилятора, хотя очень большое значение имеет также скорость исполнения подключаемых компонентов.
Обычно оптимизационные функции компилятора нацелены на повышение производительности исполняемого кода приложения за счет удаления из него различных конструкций, необходимых для отладки или для контроля за допустимостью значений переменных программы. Реже (это гораздо сложнее!) сюда входит выбор оптимальных алгоритмов.
12. Простота использования
Лидеры: Macromedia Studio MX-195, Microsoft VS.NET — 187, Borland JBuilder
— 171
Интегрированные средства разработки уже давно превратились в многокомпонентные системы с достаточно сложным пользовательским интерфейсом. Управление собственно средой такого инструмента, возможности применения различного рода настроек и автоматизации часто используемых операций — это отдельное направление развития IDE. Лидерство Macromedia и Microsoft тут вполне понятно, так как эти компании уделяют много внимания привлечению новых пользователей своих средств.
13. Возможность подключения средств третьих фирм
Лидеры: Eclipse — 204, IBM Rational Developer-184, Microsoft VS.NET — 146
Актуальность этого пункта для современных разработчиков не нуждается в особых комментариях. Первое место Eclipse объяснить довольно легко — эта среда изначально создавалась под возможность расширения. Microsoft также уделяет большое внимание возможностям расширения Visual Studio, но это можно делать только по «микрософтовским» правилам, чем, вероятно, и объясняется большое отставание от лидера. Ну а последнее место Oracle Developer Suite отражает тот факт, что этот инструмент строился как самодостаточное средство.
Общая оценка
Интегральная оценка качества средств разработки, полученная в результате проведенного исследования, приведена на рисунке. В тройку лидеров вошли IBM Rational Developer (256 баллов), Borland JBuilder (249), Sun Java Studio (236). То, что первые два места принадлежат Rational и Borland, объясняется довольно просто — только они из компаний, участвовавших в опросе, специализируются именно на средствах разработки.
Общая оценка качества интегрированных средств разработки ПО. Источник: Evans Data, исследование Enterprise and SMB Development Surveys 2005 Fall.
|
Rational всегда ориентировалась на разработку сложных программных проектов корпоративного уровня (чем и оказалась привлекательна для IBM). Продукт Rational Application Developer победил в трех номинациях — «Средства моделирования и проектирования», «Примеры приложений» и «Создание исполняемого модуля».
Borland, в свою очередь, всегда фокусировалась на создании производительных компиляторов, так что пять первых мест JBuilder как раз в этих позициях совсем не случайны. Правда, тот факт, что Borland намерена продать на сторону свой IDE-бизнес, говорит о том, что высокие качества продукта еще не гарантируют ему рыночного успеха. Кстати, возможно, корпорации Oracle было бы неплохо прикупить эти технологии Borland, так как ее Developer Suite IDE получила не очень лестные оценки от собственных пользователей.
В заключение хотелось бы представить еще один вариант интерпретации результатов исследования Evans Data. В табл. 2 все 13 оцениваемых функций ранжированы по среднеарифметическому показателю первого и последнего места. В какой-то степени именно эта характеристика (еще лучше — с учетом разброса величин) отражает внимание, уделяемое производителем IDE той или иной функции инструмента, а как следствие — и уровень востребованности этих средств у пользователей.
Таблица 2. Рейтинг функций IDE с учетом оценок респондентов
Позиция в рейтинге |
Функция IDE | Оценка респондентов | ||
средняя | максимальная/ минимальная |
разброс значений | ||
1 | Компилятор/интерпретатор | 197 | 228/165 | 63 |
2 | Редактор | 183 | 216/150 | 66 |
3 | Производительность результирующего приложения | 174 | 195/153 | 42 |
4 | Создание исполняемого модуля | 174 | 202/145 | 57 |
5 | Отладчик | 165 | 207/122 | 85 |
6 | Производительность компилятора | 164 | 196/132 | 54 |
7 | Простота использования | 159 | 195/122 | 73 |
8 | Библиотеки и наборы функций | 156 | 192/120 | 72 |
9 | Справка/документация | 153 | 180/125 | 55 |
10 | Возможность подключения средств третьих фирм | 133 | 204/61 | 143 |
11 | Профайлер/оптимизатор | 123 | 183/63 | 120 |
12 | Примеры приложений | 122 | 168/75 | 93 |
13 | Средства моделирования и проектирования | 121 | 187/55 | 132 |
И еще одно важное замечание: любые опросы пользователей и формируемые на их
основе рейтинги весьма условны и скорее просто дают пищу для размышлений как
создателям инструментов, так и их пользователям. Впрочем, для разработчиков
ПО решающий момент — это выбор базовой платформы (например, .NET или Java),
а уже потом — того или иного инструмента. Правда, в случае .NET никакого выбора
уже и не остается. С другой стороны, и Java вместе с проектом Eclipse, похоже,
движется в том же направлении.
IBM расширяет поддержку сообщества EclipseВ конце марта в Санта-Кларе (шт. Калифорния, США) прошла ежегодная конференция
Система Eclipse, хотя и создавалась изначально как среда разработки для На прошедшей конференции IBM выступила с целым рядом инициатив и шагов, Совместно с компанией Zend корпорация IBM передала программный код расширяемой На EclipseCon 2006 стало также известно об утверждении руководством Eclipse IBM и Borland предложили создать в рамках Eclipse новое направление под
Кроме того, IBM объявила о передаче в проект Eclipse Voice Tools своего Впрочем, нужно отметить, что и сама IBM активно использует технологии |