Аннотация: По поводу статьи К.Крылова (или как оно там называется?) "Очень мутное, не всем нужно и не всем полезно. Осторожно: очень скользко" от 9.04.12
22.04.12 15:11
По поводу статьи К.Крылова (или как оно там называется?) "Очень мутное, не всем нужно и не всем полезно. Осторожно: очень скользко" от 9 апреля 2012 года.
http://krylov.cc/blog/2012/04/10/9832
Подумавши дней десять я вдруг понял что:
1. Вещь то, описанная в статье совершенно очевидная и всем хорошо известная!
2. Объяснить это можно по-другому, не то чтобы проще, но технарям, я думаю, будет куда понятнее.
Только не говорите, что до меня доходит как до жирафа - это неправда: до жирафа доходит уже на третьи сутки :-) Но кое до кого, судя по комментариям, вообще не дошло.
Как известно, у многих математических функций область определения ограничена. Ну типа нет смысла искать квадратный корень или натуральный логарифм от отрицательного числа. А относится ли это ко всякого рода "заповедям", "правилам жизни" и прочим сентенциям, которые подаются как некие "ценности" - вроде приведенного в статье докУмента, начинающегося со слов "каждый русский должен:..."?
Да, тоже относится! Именно об органиченности класса ситуаций, где приведенные правила стоит применять, собственно и идет речь.
Давайте поступим следующим образом:
Сопоставим каждой из этих сентенций функцию, областью определения которой будет набор всех и всячесских мыслимых и немыслимых жизненных ситуаций, в которые теоретически может попасть этот самый гипотетический "русский, который должен...", а областью значений число:
1 - обозначающее что да, правильно, в этой ситуации именно так и надо делать
0 - обозначающее - что нет, неправильно, в этой ситуации так поступать ни в коем случае нельзя
- число между нулем и единицей - если мнения экспертного сообщества, вырабатывающего значение этой функции, разошлись.
Теперь делаем так:
- находим ситуацию где значение функции = 1 - убеждаемся что рассматриваемое правило вообще имеет смысл
- находим ситуацию где значение функции = 0 - убеждаемся что область определения этого правила ограничена и к ЛЮБОЙ ситуации оно заведомо неприменимо
ну а теперь одно из трех:
- либо убедившись что ситуации, где функция дает 0, реальны и часто встречаются - приходим к выводу что нас пытаются обмануть - правило бракуем, а на источнике, откуда мы его взяли - ставим большой и жирный крест.
- либо, если правило нам всётаки нравится - пытаемся его улучшить: проводим исследования, выделяем и описываем классы ситуаций где функция заведомо дает единицу - ограничиваем в явном виде область определения. И/или выделяем и описываем классы ситуаций где функция заведомо дает ноль - включаем эти описания как список исключений с инструкцией что делать в этих случаях. (Совсем не обязательно что противоположное: партизан, попавший в руки врага, вовсе не должен врать - ему надо ввести врага в заблуждение, а это можно сделать по-разному, в т.ч. и говоря почти одну только правду.) В результате простое и лаконичное правило (типа "говорить правду") превращается в сложное и громоздкое - алгоритм на десятки, сотни, а то и десятки тысяч строк. А ничего не поделаешь: в реальных программах существенная часть кода (от 10 до 90% !)
занимается вовсе не полезной работой, а отслеживает такие вот непредвиденные ситуации, каковые (в идеале) может быть никогда и не наступят. Когда будем роботов программировать - так и сделаем!
- ну или наконец с помощью неформального алгоритма, который описал в своей статье тов. Крылов, попытаемся переформулировать правило таким образом чтобы по возможности
расширить его область определения хотя бы на обнаруженные ситуации.