Статистика знает всё

3 сентябрь, 2008 - 10:31Андрей Зубинский
Журнал Embedded Systems Design провел очередной опрос своей читательской аудитории и посетителей тематических конференций. Всего ответило 1100 человек, естественно, специализирующихся в разработке программного обеспечения встраиваемых систем. Среди ответов есть весьма показательные «откровения».
 
Главное, что надо понимать – речь идёт о ПО, исключительно важном и баснословно дорогом при обнаружении ошибок во время эксплуатации. Даже не из-за очевидных банальностей типа «я доверяю свою жизнь программисту управляющего тормозами моего автомобиля контроллера» .  А просто потому, что для того, чтобы сменить прошивку какого-нибудь вспомогательного контроллера автомобиля, например, управляющего опусканием-подниманием стекла, придется отзывать с рынка всю выпущенную с ошибкой партию машин.
 
Во-первых, мы становимся свидетелями того, как самая экстремальная отрасль программирования преобразуется в классическую индустрию. Достаточно взглянуть на то, что волнует разработчиков. А волнует их больше всего соблюдение графика рабочих совещаний. Причем значимость этого фактора выросла с прошлого года на 10%. А классически программистские трудности – отладка и борьба со сложностью кода, - по сравнению с организационными их уже трудно назвать сверхзначимыми (важность процесса отладки вообще снизилась).
 
Во-вторых, очевидное соображение - аутсорсинг не может быть популярным в областях,  где требуется очень высокое качество кода, - получает подтверждение. В 61% американских проектов встраиваемого ПО не используются услуги контрактных разработчиков. И этот показатель увеличился с прошлого года на 4%.
 
В-третьих, практикующие разработчики, о ужас, фактически ничуть не ценят такие инструментально-идейные пласты, как доступные средства разработки и утилиты Linux, сторонние готовые библиотеки, средства разработки и анализаторы кода, UML-инструментарий. Все это считают важным и полезным единицы процентов специалистов. Главные инструменты, по их мнению, - компилятор-ассемблер, отладчик, осциллограф и, само собой, знания (этого в опросе нет, но и так понятно). Иными словами:  в навороченный инструментарий, разработчики похоже, уже наигрались окончательно, и придерживаются правила «навороченные инструменты – это хорошо, но отличное образование и серьёзный опыт – несоизмеримо лучше».

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

В-пятых, к области «не интересуемся» можно отнести и встраиваемые операционные системы. Причем трехлетняя история этого отсутствия интереса весьма забавна. В 2006 году встраиваемая ОС была не нужна в 86% проектах опрошенных специалистов, в 2007 – в 78%, в 2008 степень «ненужности» опять  возросла – 81%. И при этом списать спад интереса на то, что ОС требует слишком много ресурсов процессора (которые во встраиваемых системах на вес золота) уже не получается – это уже волнует меньше чем 10% специалистов, мощные и малопотребляющие процессоры теперь доступны.

В том незначительном секторе, где ОС все-таки нужна и используется, картина выглядит примерно так: 70% отъедают коммерческие системы и ОС собственной, внутренней, разработки (в пропорции примерно 2,5 к одному). За четыре года количество проектов, в которых используются сугубо коммерческие ОС, сократилось на 6%. Таким же «успехом»  пользуются и open source OC – то же самое сокращение на 6% за 4 года. Интереснее тот факт, что разработчики ощутимо разочаровались и в коммерческих системах, и в open source – оценка применимости этих систем в следующих проектах сократилась на 10-13%.

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

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