Автор Тема: Как воспитать отвращение к программированию.  (Прочитано 122500 раз)

Влад Жаринов

  • Full Member
  • ***
  • Сообщений: 189
    • Просмотр профиля
Ну, чисто программные выводы я просто считал вне своей компетенции... :) остановился на том, что очевидно с позиций системотехники...

Влад Жаринов

  • Full Member
  • ***
  • Сообщений: 189
    • Просмотр профиля
..., а то что то у меня тик от ваших пространных ответов начался - в особенности  от "но представляется правильным, что отвращение точно этому не способствует") .
...
Да, насчёт этого - там же не зря в оригинале смайлик стоит - иногда просто заворачиваю цветисто... :)

Ну и вот ещё тут в тему будет по психологии - от чего отвращать... :)
Ведь эти инциденты можно понимать и не как халатность, а как следствие корыстных побуждений... когда, скажем, одни ставят цель "сверх плана и раньше срока", а другие отвечают "да мы с радостью... вы там только нам благ отмерить не забудьте"...
Или - когда не особо ставят - но возникает этакое желание "круто решить задачу"... все скучно продумывают - а я вот как заверну!..
Гордыня, короче... ну или опять же можно рассматривать как выгоду... нематериальную...

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

info21

  • Newbie
  • *
  • Сообщений: 43
    • Просмотр профиля
    • Информатика-21
Re: Как воспитать отвращение к программированию.
« Ответ #182 : Сентябрь 06, 2012, 08:26:40 am »
Дорогой vlad!

1.
оценки анонима ничего не стоят.

2.
Когда я разбирался с этим делом, то читал комментарии специалиста, а не просто технический рапорт, где (в рапорте) просто сказано

"This was caused by an internal variable related to the horizontal velocity of the launcher exceeding a limit which existed in the software of this computer."

Из тех комментариев, что читал я, следовало, что в коде имело место присваивание

короткая целая := длинное целое

Фраза из рапорта не противоречит этому.

С первыми версиями длинное целое значение укладывалось в диапазон коротких.
А после смены девайса -- перестало.

Компилятор может не пропустить такое присваивание только в момент разработки.
И компилятор Оберона его не пропускает.
Если разработчик системы управления реального времени тупо override ошибку, выдаваемую компилятором (а средства сделать это есть в любом серьезном инструменте -- на уровне ли языка, на уровне ли псевдомодуля SYSTEM, или с помощью ассемблерных вставок), то компилятор в принципе ничего не может тут сделать -- и требовать чего-то большего -- бессмысленно.

То, что разработанный таким образом софт впоследствии был без надлежащего анализа (совершенно неважно, на каком уровне -- анализа кода, тестирования девайса со старым скомпилированным софтом, etc.) сопряжен с новой версией девайса, -- это, несомненно, ошибка инженеров. Но это никоим образом не отменяет тот факт, что в момент разработки софта компилятор Оберона тквалифицирует вышеуказанное присваивание как ошибку.

Или есть кто-то, кто воображает, что бедный компилятор способен предупредить любые человеческие ошибки?

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

info21

  • Newbie
  • *
  • Сообщений: 43
    • Просмотр профиля
    • Информатика-21
Re: Как воспитать отвращение к программированию.
« Ответ #183 : Сентябрь 06, 2012, 08:38:21 am »
Peter Almazov, по поводу невладением тут почти всех (минус называвшиеся лица) навыками элементарной алгоритмики:

"Петька, прежде чем со сложными вещами разбираться, ты бы с простыми разобрался"
(С) Василий Иванович Чапаев Петру Пустоте в "Чапаев и Пустота".

Если чел мусолит цикл в две ветки из пяти строчек, то какая ж каша у него в голове насчёт таких больших вещей, как "язык программирования", "система образования", "ИТ".

Недоучки. Что еще скажешь.
Ничто так не воспитывает отвращение к "ИТ-профессионалам", как их навязчивые понты при невладении элементарной алгоритмикой.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #184 : Сентябрь 06, 2012, 09:27:10 am »
оценки анонима ничего не стоят.
От того что он назовет свои ФИО, реальней он не станет.

Когда я разбирался с этим делом, то читал комментарии специалиста, а не просто технический рапорт, где (в рапорте) просто сказано

"This was caused by an internal variable related to the horizontal velocity of the launcher exceeding a limit which existed in the software of this computer."

Из тех комментариев, что читал я, следовало, что в коде имело место присваивание

короткая целая := длинное целое
По моему, там было
целое := плавающая точка
Ну да не суть. Один фиг это опасное преобразование.

С первыми версиями длинное целое значение укладывалось в диапазон коротких.
А после смены девайса -- перестало.
Да

Компилятор может не пропустить такое присваивание только в момент разработки.
И компилятор Оберона его не пропускает.
И компилятор Ады тем более.

Если разработчик системы управления реального времени тупо override ошибку, выдаваемую компилятором (а средства сделать это есть в любом серьезном инструменте -- на уровне ли языка, на уровне ли псевдомодуля SYSTEM, или с помощью ассемблерных вставок), то компилятор в принципе ничего не может тут сделать -- и требовать чего-то большего -- бессмысленно.
Именно это и было сделано.

Вообще это было сто раз уже разобрано семь лет назад: http://www.rsdn.ru/forum/philosophy/1206899.flat.aspx
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #185 : Сентябрь 06, 2012, 09:31:05 am »
Да, дополню: мало того, что Ада запрещает такое преобразование, но если ты делаешь его насильно, Ада все равно проверяет (уже в рантайме) на переполнение. В случае переполнения будет исключение. В данном случае исключение не обрабатывалось потому, что на это не хватало ресурсов (это сознательное решение при проектировании).
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

DIzer

  • Гость
Re: Как воспитать отвращение к программированию.
« Ответ #186 : Сентябрь 06, 2012, 09:31:12 am »

Вообще это было сто раз уже разобрано семь лет назад: http://www.rsdn.ru/forum/philosophy/1206899.flat.aspx
Ну и резюме, Алексей?  ;)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #187 : Сентябрь 06, 2012, 09:33:47 am »

Вообще это было сто раз уже разобрано семь лет назад: http://www.rsdn.ru/forum/philosophy/1206899.flat.aspx
Ну и резюме, Алексей?  ;)

Дык см. письмо влада :-)

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

DIzer

  • Гость
Re: Как воспитать отвращение к программированию.
« Ответ #188 : Сентябрь 06, 2012, 09:40:56 am »

Дык см. письмо влада :-)

Поскольку info21 отрицает злой умысел, следовательно он просто в этих вещах не разбирается. Но поскольку он не признает что в них не разбирается, и даже пытается учить других, то он не чайник, а ламер.
То есть при желании можно заставить компилятор КП пропустить такую хрень, точно также как и многие другие?

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #189 : Сентябрь 06, 2012, 09:53:52 am »
Когда я разбирался с этим делом, то читал комментарии специалиста, а не просто технический рапорт, где (в рапорте) просто сказано

"This was caused by an internal variable related to the horizontal velocity of the launcher exceeding a limit which existed in the software of this computer."

Из тех комментариев, что читал я, следовало, что в коде имело место присваивание

короткая целая := длинное целое

Фраза из рапорта не противоречит этому.

С первыми версиями длинное целое значение укладывалось в диапазон коротких.
А после смены девайса -- перестало.

Компилятор может не пропустить такое присваивание только в момент разработки.
И компилятор Оберона его не пропускает.

Насколько я помню (а я тоже интересовался той историей) там произошло переполнение в расчётах. Траектория полёта Ариана-5 сильно отличалась от траектории полёта Ариана-4, на это не обратили внимания, в результате при вычислениях один из параметров стал в несколько раз больше, чем был на Ариане-4 и не поместился в отведённую переменную.
Аппаратура перехватила исключение от этого переполнения, задействовала резервный компьютер -- но программа там была той же самой, и тоже выкинула это исключение.
В результате бортовые компьютеры, управлявшие полётом, просто отключились и ракета упала на землю.

Вот и чем тут помог бы оберон?
В обероне не бывает переполнений при вычислениях?
Оберон заставляет разработчиков тщательно тестировать ПО?

Компилятор ады, так же как и компилятор оберона, не позволит просто так написать "короткая целая := длинное целое", а заставит программиста сделать преобразование чисел -- там нет неявных преобразований в меньшую сторону.

Так какие же преимущества у оберона здесь имеются???

to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #191 : Сентябрь 06, 2012, 10:53:17 am »
Вообще можно много рассуждать о том, помог бы оберон или нет по сравнению с Адой в том случае, но это всё не имеет особого смысла. Нам даже неизвестно, какая была архитектура и ресурсы у этого бортового компьютера. Был ли для него транслятор Оберона? Вот компилятор Ады был, а что там с Обероном?

Раз им понадобилось сохранять значение горизонтальной скорости в 16-битной переменной со знаком, значит ресурсы были не слишком большими; уменьшились бы требования к ресурсам при использовании оберона? Далеко не факт.

Расчёты они проводили с использованием 64-битных вещественных чисел, результат сохраняли в 16-битное целое со знаком -- просто так этого компилятор ады сделать не позволит, они его заставили так сделать, да ещё и отключили для этой переменной проверки переполнения (программные, видимо), хотя для других подобных переменных в том же месте эти проверки оставили. Зачем? Почему?
Если бы использовали Оберон, то где гарантия того, что компилятор оберона (это вряд ли был бы КП/ББ) не позволил бы отключать все эти проверки, раз уж у них там такие жёсткие требования к ресурсам.

И всё тот же самый главный вопрос -- чем Оберон помешал бы этим ракотостроителям так халатно отнестись к изменению условий работы ПО. Горизонтальная скорость Ариана-5 оказалась в 5 раз выше, чем у Ариана-4, почему они эти условия не протестировали? Каким образом Оберон подсказал бы им об этом?

Возможно, верификация ПО помогла бы обнаружить эту проблему задолго до запуска ракеты, но чем Оберон помог бы в плане верификации ПО по сравнению с Адой? Для Ады хотя бы есть какие-то инструменты для верификации программ (SPARK Ada), а что в этом плане есть у оберона?
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #192 : Сентябрь 06, 2012, 11:05:46 am »
Вообще забавно: Ariane 5. Ошибка операнда

Ракету сгубил программный код, который работал тогда, когда надобности в нём уже не было. Эта программа выполнила свою задачу в момент запуска ракеты (первые несколько секунд после старта), однако дальше в ней нужды уже фактически не было, но она продолжала работать -- и вызвала сбой бортового компьютера...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #193 : Сентябрь 06, 2012, 11:08:07 am »
Вообще забавно: Ariane 5. Ошибка операнда

Ракету сгубил программный код, который работал тогда, когда надобности в нём уже не было. Эта программа выполнила свою задачу в момент запуска ракеты (первые несколько секунд после старта), однако дальше в ней нужды уже фактически не было, но она продолжала работать -- и вызвала сбой бортового компьютера...
Отсюда вывод - ленивей надо быть!
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #194 : Сентябрь 06, 2012, 11:12:35 am »
Вообще забавно: Ariane 5. Ошибка операнда
Ну и вывод комиссии:
Цитировать
Главной задачей при разработке Ariane 5 является уклон в сторону уменьшения случайной аварии. …Возникшее исключение, объясняется не случайной аварией, но ошибкой конструкции. Исключение было обнаружено, но обработано неверно, поскольку была принята точка зрения, что программу следует рассматривать как правильную, пока не показано обратное. …Комиссия придерживается противоположной точки зрения, что программное обеспечение нужно считать ошибочным, пока использование признанных в настоящее время наилучшими практических методов не продемонстрирует его правильность

Я лично сомневаюсь в том, что оберон помог бы избежать этой проблемы с Арианом-5. У оберна просто нет тех качеств, которые помогли бы доказать правильность программы, и которые отсутствуют в Аде. В этом плане оберон от ады не отличается...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…