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

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

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

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

Сообщества

Настроить S2

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



Пишет ivanov_petrov ([info]ivanov_petrov)
@ 2011-05-16 14:54:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Изречение
Много лет по разным поводам выговариваю изречение.

Чем больше степень формализации, тем больше времени придется потратить на интерпретацию. Чем более однозначна формализация, тем более неопределённый результат интерпретации.

Нельзя выиграть бесплатно. То, что мы выигрываем на введении формальных средств исследования, мы потом должны отработать - это не бесплатный выигрыш, а перенос усилий. Наука в целом несколько формализует познание - и вот разрыв с массой неученых, которым затруднительно объяснять контринтуитивные вещи. Мы можем перенести бремя интерпретации дальше или ближе. Вот теоретик напрудил формализма - это будет интерпретировать тот, кто использует теорию. Или - популяризатор. Или учитель в школе. В общем, кому-то придётся это расхлебывать, и легко не будет - весь выигрыш формализации придётся отработать. Формализация - это средство понимания, то есть вся эта штука имеет отношение к коммуникации, это такой закон коммуникации. Если в простоте сказать - сколько выигрываем на введении однозначного кода, столько усилий придется потратить на обучение всех участников коммуникации этому коду и распутывание ошибок, возникающих от работы кода. Работу понимания нельзя исключить - её можно только перенести по цепочке коммуникации. Можно сделать так, что работу понимания будет совершать не этот человек и не в этом звене коммуникации, а другой человек совсем в другом месте и других условиях. Но избавиться от работы понимания нельзя. В этом смысле можно сказать, что формализация невозможна - то есть нельзя с помощью введения определенных правил уменьшить непонятность и многосмысленность текстов. Но локально - можно, конечно.

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

Но всё это походя, между делом - это же в разговорах, всего лишь в частных разговорах, в каких-то там докладах и объяснениях, как получены те или иные результаты, отчего так, а не эдак.

Потому спрашиваю: а кто придумал?

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

Не может быть,чтобы это дело упустили, наверняка это давно известно. Но способ выражения - наверное, совсем другой.

PS Есть известное речение Эйнштейна. Не помню точно, смысл такой: в той мере, в которой математика относится к действительности, она ненадежна, в той мере, в которой надежна, не относится к действительности. Это об этом, но всё же чуть в сторону.


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


[info]faceted_jacinth@lj
2011-05-29 11:52 (ссылка)
Или может быть Вам кажется что Вы поняли, что я сказал, а на самом деле нет!

Просто то, что Вы говорите, говорится внутри программирования постоянно, почти теми же словами. Может, совпадение, конечно...

"Programs must be written for people to read, and only incidentally for machines to execute."

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

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

И тут всякие люди, включая и меня, совершенно верно замечают, что сложность-то никуда не делась, просто та страничка с неформальным описанием того, что мы там делали, превратилась в полторы странички описания того, как работают монады в общем. Которые, причём, ещё и сложнее понимать чем исходную страничку, потому что та была конкретно, а эта -- в общем.

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

И действительно очень многие люди этого не понимают.

Однако это только одна сторона проблемы. Потому что как только мы начинаем рассматривать по-настоящему большие объёмы знаний/понимания которые надо как-то передавать между программистами, у нас уже не одна такая неформальная страничка кода которую можно заменить на отсылку к абстракции с такими-то особенностями, а сто или тысяча. Все разные, конечно, но в каждой можно увидеть эту общую структуру, выделить её, описать отдельно и дальше на неё ссылаться.

И вот тогда, ни в коем случае не локально, сложность и непонятность коммуницируемого знания может значительно уменьшиться. Потому что если каждому участнику коммуникации нужно дополнительно потратить восемь часов на то, чтобы разобраться как эти монады работают, но потом он сто раз тратит на час меньше чтобы разобраться как работает каждый частный случай, то, ну, мы получаем настоящее упрощение понимания, никакого мошенничества!

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

Однако когда Вы о нём говорите, вы делает более сильное утверждение, вы говорите что "весь выигрыш формализации придётся отработать", что выгода от формализации возможна только локально, когда мы закрываем глаза на те другие места, куда мы спихнули сложность.

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


[info]ivanov_petrov@lj
2011-05-29 14:46 (ссылка)
да, конечно. Вы, в общем, говорите то же самое. Дырка - в "в каждой можно увидеть эту общую структуру, выделить её, описать отдельно и дальше на неё ссылаться.

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

Если тут копать, станет понятно, о чем я. Впрочем, это не важно.

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


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