Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
В недавнем тексте "Реальность существует и это надо учитывать" есть небольшое противоречие - не показана реальность явления, с которым предлагается бороться.
Действительно ли люди совершают ошибки связанные с неверными единицами измерения и размерностями величин? Может быть проблемы нет, и имеет место быть массовое использование инструментов помогающих программистам и исследователям избегать ошибок при оперировании величинами имеющими физический смысл??
Давайте выяснять (дальше развёрнутое объяснение и сам опрос)
Исследуемая проблема имеет два проявления и первое состоит в том, что систем единиц измерения больше одной. Широко распространены две системы:
СИ она же "метрическая" - метры и килограммы
Имперская - футы и фунты (и таких систем как минимум 2)
И проблема в том, что есть люди которые по разным причинам используют именно Имперскую систему.
Широко известны два события связанные с этой проблемой.
1) "Планёр Гимли" (1983) - при переходе Канады на метрическую систему в самолёт залили топливо, по привычке думая что цифры обозначают галлоны и фунты, а это уже были литры и килограммы.
2) "Mars Climate Orbiter" (1999) - автоматическая межпланетная станция получила данные для торможения которые были вычислены в имперских единицах "фунт-сила", а отработала так, как будто это были метрический "Ньютоны".
Больше таких рассказов нет. Может быть такие случаи не выходят за пределы внутренних отчётов об авариях, а может и правда проблемы нет.
Потому, что решение проблемы существует и давно известно - работать не с голыми числами, а с именованными величинами. Тогда программа может сама всё сконвертировать и правильно посчитать.
Например, вот так.
Второе проявление проблемы состоит в том, что можно просто сделать опечатку в имени переменной или арифметической операции и получить математически корректный, но бессмысленный результат.
Например, если ускорение не "умножить" на "время", а разделить, по получится не "скорость", а чёрти что. Но если использовать именованные величины, то ошибочную операцию можно обнаружить и своевременно исправить.
А если не использовать контроль размерностей, то можно получить число 12,5 и пребывать в уверенности, что расчёт прошёл успешно.
Таких инструментов существует много, как на уровне языка программирования, так и в виде специализированных библиотек и т.д. Такие инструменты существуют давно.
Да, там не всё идеально и есть свои особенности, сложности и проблемы.
Но они, эти самые инструменты контроля за размерностями, существуют.
И вот вопрос, а Вы ими пользуетесь? Вы вообще в курсе того что они существуют?