Про Ариан.
Изделие стоимостью полГИГАдолларов.
Окей, давайте вернёмся к Ариану-5.
Насколько я помню, основные потери в той аварии были из-за потерянного оборудования, которое эта ракета должна была доставить на орбиту. То есть стоимость самой ракеты была гораздо меньше, чем полгигабакса... Какова же стоимость разработки этой ракеты, увы, я не смог нагуглить...
Стоимость разработки Ариан-4 вроде
"оценивалась в 486 миллионов ЭКЮ 1986 года", а тот самый злосчастный код перешёл в Ариан-5 именно из Ариана-4.
Теперь поподробнее о том коде, сгубившем в результате эту ракету.
Как я понял, этот код работал в некоем датчике, нужном для стабилизации платформы, на которой стояла ракета перед стартом. Этот датчик должен был работать до момента старта, после старта в нём надобности не было. Именно поэтому разработчики датчика и его ПО не стали указывать требования к траектории полёта ракеты -- этому датчику нет дела до траектории, его задача не дать ракете свалиться на бок перед стартом.
Пока же ракета не взлетела, все переменные в ПО датчика теоретически не могли переполниться.
То есть в ПО этого датчика на самом деле НЕ БЫЛО ошибки!!!Тем не менее, в общем проекте, по видимому, были архитектурные ошибки.
Во-первых, датчику позволили работать тогда, когда он уже не был нужен.
Во-вторых, основной компьютер управления полётом почему-то расценил код ошибки этого датчика, который он записал перед аварийным выключением, произошедшим из-за переполнения, возникшего в условиях его неверной эксплуатации, как признак отклонения ракеты от заданного курса.
Этот вывод и был главной ошибкой в том ПО -- компьютер по ошибке решил, что ракета отклонилась от курса, начал корректировать курс и ракета действительно отклонилась от курса, после чего разрушилась из-за резко увеличившегося аэродинамического сопротивления и самоуничтожилась...
И они там наверняка (как здешние "профессионалы") мусолили циклы, "выбрасывали исключения" вместо корректного проектирования процедур, искали способы обходить ошибки компилятора
Это чистой воды домыслы.
(а в сложном адском компиляторе ошибок в 1990-м г. не могло не быть, да и сейчас...).
Что бы компилятор ады смог получить сертификат, он должен пройти такой набор тестов от минобороны сша, который оберонщикам и не снился...
Вон, казалось бы простой язык Оберон-7, однако при его реализации тот же Рифат допустил серьёзную ошибку в компиляции "цикла Дейкстры", которую я случайно обнаружил простейшим тестиком...
Ошибки в работе КП/ББ так же никуда не делись, чинить-то их некому...
Ясен пень, обдумать примитивное присваивание им было западло. Некруто. Дело наинизшего приоритета. Тяп-ляп.
Это явная и наглая ложь. Всё они прекрасно обдумали в этом присваивании. Они даже доказали, что при нормальной эксплуатации этого ПО в эту переменную теоретически невозможно записать значение, которое в ней не поместится.
Единственное о чём они, возможно, не подумали, это то, что кто-то из пользователей этого прибора станет его неправильно эксплуатировать. Ну уж извините...
При чем тут Оберон?
А при том, что люди, выбравшие таки Оберон среди всего воя "профессионалов", которым нечем гордиться кроме знания ИТ-шного дерьма, -- такие люди имеют сильно другую систему ценностей в отношении программирования.
Такие люди предпочитают сосредоточивать умственные силы на содержательных вещах, а не на обмусоливании элементарных циклов.
Вот и всё.
Сам себя не похвалишь -- никто не похвалит.