Два мира разработки ПО
Вот, на примере космического аппарата MESSENGER (почему на его примере – будет понятно в конце заметки), хочу поделиться таким наблюдением из мира разработки программного обеспечения.
Точнее, там есть два мира.
Первый – очень известен, с ним соприкасаются очень многие (в основном, на правах пользователей). Этот первый мир – разработка “офисного” ПО. “Офисное” – конечно, условное название. Тем не менее, большая часть этого ПО используется именно в офисной работе. Это ПО работает на настольных компьютерах, серверах. К этому же миру относится и типичное современное web-программирование. Здесь в ходу такие “типы” ПО: текстовый процессор, редактор изображений, бухгалтерская программа и др. И известны такие “характеристические” понятия: Windows, Visual Basic, Delphi и т.п.
Хорошо известно, что в мире “офисного” ПО можно смело выдать на рынок недоделанный, не отлаженный продукт с кучей ошибок (потому что главное – регулярно и быстро выпускать новую версию, опережая конкурентов; особенно рельефно эта тенденция видна в современных web-сервисах, которые теперь уже публикуют в неработающем виде, заявив, что это альфа-версия, ну или “бета” – особенной разницы на практике нет). Массовый клиент, понятно, уже приучен к ошибкам в программах и к тому, что нет никаких гарантий работоспособности. Это давно известная тенденция.
Вторая тенденция вот в чём: в связи с тем, что комплектующие для офисного (и, конечно, серверного) компьютерного оборудования всё дешевеют и дешевеют (в пересчёте на вычислительную мощность), то разработчики из “офисного” мира готовы напрочь забыть об оптимизации и алгоритмов, и кода. Эти разработчики говорят так: “Лучше взять побольше железа – это выйдет дешевле, чем год возиться с оптимизацией”, “Пока вы оптимизируете ваш код, память подешевеет ещё в два раза” и тому подобные вещи.
И разработчики тут, в общем-то, правы. Допустим, стоит задача вывалить хоть как-то работающий новый поисковик (условно) уже через месяц. Конечно, лучше купить два дополнительных сервера в систему, на которой поисковик будет работать, чем рисковать усложнением кода и тем, что квалификации имеющихся программистов (это вообще отдельная история про “логарифмическую сложность”) просто не хватит на то, чтобы реализовать оптимальный алгоритм в коде.
Это свой мир. Со своими ценностями.
А есть второй – совершенно другой: разработка специального ПО для встроенных систем. Здесь не только в ходу неизвестные в “офисном” мире понятия из теории сложности, но и совсем другие представления о надёжности. Потому что ошибка в “текстовом процессоре” грозит лишь секретарше (да и угроза лишь в том, что придётся набирать полэкрана текста заново). Ошибка в ПО управления спутником связи грозит многомиллионными убытками, а иногда – реальной катастрофой. Хуже того, в случае со спутником – его разработчикам придётся отвечать. (Понятно, что в “офисном” случае всякая ответственность с разработчиков заранее “списана” условиями лицензирования.)
Другой важный момент, отличающий мир разработки встроенного ПО, в том, что здесь вычислительные ресурсы всегда существенно ограничены и алгоритмы и программный код приходится оптимизировать.
В мире встроенного ПО совсем не работают методы типа “за год память подешевеет вдвое”. Почему? Вот тут-то мы и приходим к примеру с космическим аппаратом MESSENGER.
Внимание, пример: MESSENGER стартовал летом 2004-го года. На орбиту вокруг Меркурия аппарат должен встать весной 2011-го года. Понятно, что как бы ни подешевели за это время на Земле компьютерная память и процессоры – “проапгрейдить” аппарат в районе Меркурия вряд ли получится. А вот загрузить на борт новое ПО – можно, с Земли.
При этом, если, скажем, удалось “ужать”, в смысле того или иного используемого ресурса, программную реализацию какой-то функции на борту аппарата, то освободившиеся ресурсы можно использовать для решения новых задач, расширив функциональность аппарата. То есть грамотная и интенсивная оптимизация приносит прямые выгоды. Про надёжность программного кода и отсутствие в нём ошибок, думаю, можно не повторяться.
Кстати, в мире встроенного ПО, на “борту изделий”, Windows совсем не в ходу, как ни странно. Там свои операционные системы.
Так вот, к чему это длинное наблюдение: оказывается, многие и многие люди, связанные с разработкой ПО, нынче думают, что существует только первый, “офисный” мир и его законы универсальны. Про то, как делают управляющее ПО, скажем, для ракеты “воздух-воздух”, эти “офисные” разработчики даже и не задумываются. И это, наверное, правильно – зачем бы им?
()
Читайте также:
- GPS для энтузиастов: доступность технологий
- Механические замки в будущем, продолжение
- Домики и "вихревая пушка"
- Реплика: доменные аналогии
- Настоящий прообраз Интернета
- Скрытное прослушивание разговоров с помощью мобильного телефона
- GPS наоборот или определение координат мобильника
- Одноразовые пароли и "защищённость" от взломов
- Автомобильные охранные системы - защита связи
- Поиск Google и защищённый доступ по https
- Сигнатуры, ПВО и утечки информации по побочным каналам
- Взломы GSM: продолжение
- MD5 от затейников из штатовского киберкомандования
- Обнаружение "анонимных" мобильных телефонов
- Воскресный юмор: глобальная навигация на очень чужих планетах
- Быстродействие систем защиты
- Уничтожение данных против "шифрования данных"
Кратко этот сайт характеризуется так: здесь можно узнать про технологический прогресс, математику, авиацию, компьютеры, авиационные компьютеры, вооружения, роботов, вооружение роботов, армии мира, астрономию, космические исследования. И иногда о чём-то ещё (
.