Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет chistyakov ([info]chistyakov)
@ 2007-02-26 20:42:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
За что я ненавижу "программистов"
Где-то в конце 70-х годов - испытания амерской ЗСУ "Сержант Йорк". Для поражения вертолетов. ЗСУ была оснащена системой распознавания образов.
Во время испытаний около неё безуспешно кружил вертолет-мишень, которую она так и не смогла распознать. Зато распознала как вертолет вентилятор в туалете, расположенном метрах в 800-х от ЗСУ. И успешно его поразила.

Испытания американского истребителя F-16 проводились, понятное дело, в северном полушарии. На заключительном этапе самолет решили проверить где-то в Латинской Америке, но уже с другой стороны экватора. При переводе самолета в режим автопилота он автоматически развернулся "вверх ногами".

В Афганистане двое наводчиков-наблюдателей (канадцы) подсвечивали цель для наведения на нее бомбы. После сброса бомбы в GPS приемнике закончились батарейки. Расчет их быстро заменил. В результате ракета прилетела не туда. Причина проста. После подачи питания в прибор, переменные, отвечающие за координаты цели, автоматически инициализировались координатами текущего местоположения. Наводчики погибли от близкого разрыва.

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

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

Причиной взрыва 4 июня 1996 г. ракеты Ариан-5, была программная ошибка. В системе управления ракеты использовалось модифицированное программное обеспечение ранее успешно работавшее на Ариан-4, но Ариан-5 ускорялась быстрее предыдущей модификации, в результате когда на 40 секунде полета одна из вспомогательных подпрограмм попыталась преобразовать длинное целое значение в короткое без проверки величины значения, и то вышло за границы типа, произошло отключение системы управления ракеты, и она была взорвана по команде на самоликвидацию. Прямой (вместе с ракетой-носителем была потерян коммуникационный спутник) и косвенный ущерб от этого программного сбоя был оценен в полмиллиарда долларов.

История о неприятностях ракетного крейсера ВМС США «Иорктаун». Это экспериментальный, так называемый «умный корабль» (smart ship), важнейшие системы жизнеобеспечения которого управляются компьютерами без участия человека. И что немаловажно – под руководством операционной системы Windows NT 4.0. Так вот, однажды вся эта махина, находясь в открытом море, на три без малого часа встала в полный ступор из-за наглухо зависшего программного обеспечения. Причем произошло это из-за совершенно пустяковой оплошности одного из операторов, занимавшегося калибровкой клапанов топливной системы и записавшего в какую-то из ячеек расчетной таблицы нулевое значение. Ну а далее пошла операция деления на этот самый нуль. С подобной ерундой справляется даже самый дешевый калькулятор, однако здесь в терминале оператора система дала ошибку переполнения памяти. Причем ошибка быстро перекинулась на другие компьютеры локальной сети корабля, началась цепная реакция, и по известному принципу домино рухнула вся бортовая система. Которую удалось восстановить и перезагрузить лишь через 2 часа 45 минут, в течение которых здоровенный боевой корабль оставался по сути дела беспомощен и неуправляем. (с)


via [info]u-96@lj путём "Ctrl-C/Ctrl-V"

Да, бывает. Я вот вспоминаю, как ракета с "распознаванием образов" сбила летящий самолёт Ан-26 с людьми вместо стоящего на земле вертолёта-мишени (Ахтубинск, 24 июня 1985 года). На следущий день я летел в Ахтубинск на таком же самолёте, надеясь, что испытания по данному типу (Ан-26) завершены. Обстановка в салоне была шутливо-нервозной:).

{+}


(Читать комментарии) - (Добавить комментарий)


[info]a_50@lj
2007-02-26 15:03 (ссылка)
да чо там,
со всеми бывает.
ИстинныиПрограммист (тм) - это в моем понимании даже не чувак, которыи допускает ошибки
(их все допускают с поправкои конечно, что люди не знаюшие специфики - то есть Программисты - ошибаются много чаше) - но чувак, которыи и
после чего-то Подобного продолжает Интенсивно Втирать
про Архитектуру, Конечные Автоматы и все такое (чо у них там сеичас Модно - я не знаю).
Второи Обязательныи Атрибут - дрочерская дискуссия о
языках программирования или технологиях ("я, как Опытныи Рарзработчик" - и понеслась).
я думаю, если придут Программисты -
она и здесь непременно будет.

(Ответить) (Ветвь дискуссии)


[info]metaclass@lj
2007-02-26 17:28 (ссылка)
Я, как Опытный Программист и Системный Архитектор, могу сказать, что о технологиях и языках дискутировать бесполезно - при должном подходе на чем угодно можно делать нормальные продукты :)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]a_50@lj
2007-02-26 17:36 (ссылка)
>о технологиях и языках дискутировать бесполезно
Не являясь ОпытнымРазработчиком в вышеизложенном смысле,
скажу , что совершенно
с Вами
согласен:)

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]ex_chistyak@lj
2007-02-26 18:09 (ссылка)
А я категорически не согласен. Язык должен быть алголоподобным. На крайняк - Фортраном.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]a_50@lj
2007-02-26 18:49 (ссылка)
Просто не всегда есть выбор, и если нужно по каким-то причинам ,
(которые нельзя изменить) работать на Си -
то можно и на нем.
Соблюдая некоторые правила,
конечно.
Т.е. фортран предпочтительнее, но если выбора нет - то и Си не велика беда.
Дополнительные проблемы будут, но очень мало , если
сразу ввести стандарты и ограничения и
жестко требовать их исполнения.
Тут ключевые слова "при должном подходе".

(Ответить) (Уровень выше)


[info]potan@lj
2007-02-27 06:24 (ссылка)
Си как раз относится к алголоподобным :-).

А вообще очень спорно. Fort, ML, Erlang - все это не алголоподобные языки. Тем не менее гораздо лучше и C и Pascal подходят для большенства практических задач.

(Ответить) (Уровень выше)


[info]ygam@lj
2007-04-26 15:55 (ссылка)
DO 100 I = 1.100

(Ответить) (Уровень выше)

К языку всего одно требование
[info]ex_chistyak@lj
2007-02-26 18:08 (ссылка)
Чтобы инженер, знающий суть проблемы мог программу прочитать и поставить подпись. "Си" тут не катит.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]uma_palata@lj
2007-02-26 18:21 (ссылка)
Почему не катит? На Си легко можно писать паскалевские программы.

(Ответить) (Уровень выше)

Re: К языку всего одно требование
[info]metaclass@lj
2007-02-27 06:31 (ссылка)
Такое требование на первый план выдвигает специализированные под предметную область языки. Но такие языки обычно опять же делаются программистами и опять же на языках вроде С и C++, и приходим к тому же. Хотя по логике вещей, проверить такую двухуровневую схему на отсутствие ошибок должно быть гораздо проще.

(Ответить) (Уровень выше)

Re: К языку всего одно требование
[info]potan@lj
2007-02-27 06:49 (ссылка)
Это больше от стиля зависит, чем от языка.
Ну экзотику, вроде APL, рассматривать не будем :-).

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: К языку всего одно требование
[info]ex_chistyak@lj
2007-02-27 07:46 (ссылка)
Язык определяет стиль.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: К языку всего одно требование
[info]potan@lj
2007-02-27 08:07 (ссылка)
Нет, стиль определяет руководитель проекта.
В FreeBSD исходные коды на чистом C прекрасно читаются.
А студенческие поделья на Pascal - с больщим трудом.

Конечно, язык имеет некоторое знячение. Скажем на APL-подобных языках написать читабельно для не гуру врядли возможно. На Haskell обработка символьной информации пишется прозрачно, а задачи общего назначения - когда как. И четких рекомендаций по стилю пока выработать не удалось.
Но C и Pascal при правильно выбраном стиле кодирования практически не отличаются. На мой вкус C даже читабельнее, за счет сокращения числа слов, которые приходится анализировать читателю.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dr_klm@lj
2007-03-06 21:52 (ссылка)
Позвольте заступиться за APL-подобные языки... ;-) Во-первых, там более высокая концентрация информации на символ (значит, новичку прийдется читать медленно). Во вторых (как и на любом другом языке), там можно писать как читабельные, так и нечитабельные программы. В J, например, типичная "болезнь" новичка -- записывать всю программу (эквивалентную каким-нибудь двум-трем экранам плотного фортрановского кода) в одну строку да еще и в неявной (tacit) форме. Это и для гуру бывает непросто расшифровать. Если-же писать "по одной мысли на строчку" -- читается очень хорошо !

К.Л.М.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]potan@lj
2007-03-07 06:02 (ссылка)
Возможно, хорошо читается опытным программистом или математиком. Но инжереном-механиком без специальной подготовки - врядли. А проходить подобную подготовку они не захотят.

(Ответить) (Уровень выше)


[info]thesz@lj
2007-02-26 19:17 (ссылка)
Как ОПЫТНЕЙШИЙ РАЗРАБОТЧИК и СИСТЕМНЕЙШИЙ АРХИТЕКТОР не примену добавить, что подходы при разных языках и технологиях отличаются должностью.

(Ответить) (Уровень выше)


[info]potan@lj
2007-02-27 06:21 (ссылка)
Вопрос только времени и бюджета.

(Ответить) (Уровень выше)


[info]dr_klm@lj
2007-03-06 21:35 (ссылка)
Есть такой язык Brainfuck (http://www.muppetlabs.com/~breadbox/bf/)... Рекомендую ! ;-)

К.Л.М.

(Ответить) (Уровень выше)


[info]heavywave@lj
2007-04-02 09:58 (ссылка)
напишите unix на php плиз.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]metaclass@lj
2007-04-02 10:51 (ссылка)
И это сделает дискуссию о том, какой язык лучше, более осмысленной?

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]heavywave@lj
2007-04-02 19:24 (ссылка)
вы докажете своё неверное утверждение о том, что язык не имеет никакого значения.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]metaclass@lj
2007-04-03 04:45 (ссылка)
Язык значение имеет, дискуссия о языках - не имеет.

(Ответить) (Уровень выше)


(Читать комментарии) -