От мутного к четкому. История про лунный модуль

Originally published at: От мутного к четкому. История про лунный модуль — Рустам Агамалиев

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

Пару недель назад повезло вписаться в движуху Максима Дорофеева, где с участниками разбираемся в логических инструментах, формулировках, причинно-следственных связях. После первой встречи возникло озарение. Сложно описать важность наличия глагола в утверждении. Никогда не обращал внимание, что лингвистам это очевидно, а вот не лингвистам – это концепция чаще чужда чем понятна. То же самое касается и негативных утверждений[^1]. Например, взять высказывание “Увеличу доход в два раза”, конкретно и не требует никаких уточнений. Чуть менее конкретно, “Возможно будет меньше бесячих факапов”, фраза явно требует уточнения. Или совсем мутненько, “будут чаще типовые задачи”.

Если посмотреть на структуру выражений, то в двух последних отсутствуют глаголы действия или описания. И вроде в этом нет никаких проблем, вроде все понятно, но нихрена не ясно что с этими утверждениями делать. И это нормально, таким языком общается большая часть человечества. Не самая плохая часть, к слову сказать. Это такая длинная подводка к истории, которую сегодня рассказал Максу, про лунный модуль и битву за космос между СССР и США.

Когда Гагарин вышел на орбиту земли, США поняли, что безвозвратно проиграли в орбитальной песочнице. Собрали аналитический центр[^2], которому поставили задачу, обогнать СССР. Что только те не придумывали, наша страна всегда обходила. Но однажды к Кеннеди пригласили Фон Брауна^3. Изобретатель реактивного двигателя с порога заявил, что бесполезная эта затея, гнаться за русскими. Они безвозвратно оторвались. Имеет смысл побеждать их там, где еще нет компетенция ни у одной из наций. На луне. На тот момент и США и СССР имели в разработке программу, результатом которой должен был стать полет на космическом аппарате вокруг орбиты луны. Но Фон Браун пошел дальше. Мы не отправим двух космонавтов вокруг орбиты, а подсадим двоих на луну.

Все мы знаем результат той гонки, за 7 лет США, силой мысли придумали, микроволновые печи, ДВД диски, оборудование пожарной охраны, солнечные панели, компьютер и язык программирования^4. Последние два изобретения особо интересны, компьютер тогда был прямо скажем “маловат”^6, но с задачей свой справился, а задача была простая по сути, но сложная в исполнении. Этому малышу на борту лунного модуля отводилась крайне важная функция, осуществить расчет для отстыковки, посадки, взлета, стыковки модуля с кораблем носителем. Математически человек это может сделать, но слишком долго и велика вероятность ошибки. Нужен “продвинутый калькулятор”, клавиатур нет, привычных людям 21 века интерфейсов тоже. Натурально это был калькулятор:

Если у кого-то возник вопрос, как на такой балалайке можно было осуществлять сложные расчеты в условиях невесомости, вы не одиноки. Попробуйте подумать, пару минут и продолжить чтение, как придумаете. Ответ будет ниже.

ДОДУМАЛИСЬ? Внимание ответ!


На помощь лучшим умам того времени пришли лингвисты, они придумали простую схему ^8. Необходимо действие и объект. То есть сказуемое и подлежащее, очевидно это не должно быть, что-то требующее дополнительной интерпретации. Лингвисты вшили в компьютер набор команд, описывающих категории действий с объектами. Лунный модуль – 1, отстыковаться – 2. Команда 1 ввод + 2 ввод, означает отсоединить ЛМ от корабля. 1 ввод + 12 ввод, посадить ЛМ на луну, ну и так далее. Ученые сказали, что это не научно, военные, что не серьезно, а лингвисты посадили людей на луну.

В условиях ограничений нет места лишним словам. Лишний символ в космосе это разница между жизнью и смертью. Не стоить добавлять прилагательных, обстоятельства места, времени, описывать личные ощущения. Для этого существуют другие медиумы[^9]. В космосе как в Якутии в туалете на -50, коротко, строго и по делу. Такая длительная и показательная история это подводка к важности глаголов в формулировках причинно-следственных связей.

Чтобы коммуникация из “хрен проссышь” перешла в “от винта”, убираем лишнее, добавляем глаголы действия. Однако стоит помнить, что не все глаголы одинаково хороши. Существуют такие, которые требуют дополнительной интерпретации, что в общем и целом не так плохо, однако они меняют степень помутнения, крайне быстро и эффективно. “Буду иногда высказывать чушь на публике”, менее понятно чем “Скажу глупость на совещании/в компании” или еще лучше “Выражусь абстрактно перед руководством”.

Говорить в целом сложно, а просто и понятно еще сложнее. Мутные высказывания – удел политиков и прочих персонажей, чья цель запутать аудиторию.

Действие + агент действия + объект действия. Если какой-то элемент отсутствует, увеличивается степень мутности высказывания.


BIO

Keywords:

Related:

Reference:

[^1]: Как-нибудь поговорю почему начинать утверждение с “если не …, то ….” или “если …, то не …”, хуже чем плохой тон. Но не сегодня.
[^2]: Think tank
[^4]: Apollo’s software derived from the basic design of the Mars mission. Designer Hugh-Blair Smith created a language called “Basic”, a low-level assmelby language of about forty instructions (distince from the hgigh-level BASIC programming language developed at Dartmouth at about the same time). On top of BASIC was “Interpreter,” brainchild of Hal Laning, a language that was really a collection of routines to do the higher-level mathematical functions associated with gudance and control, in the high precision data format.
[^6]: “The on-board Apollo Guidance Computer (AGC) was about 1 cubic foot with 2K of 16-bit RAM and 36K of hard-wired core-rope memory with copper wires threaded or not threaded through tiny magnetic cores. The 16-bit words were generally 14 bits of data (or two op-codes), 1 sign bit, and 1 parity bit. The cycle time was 11.7 micro-seconds. Programming was done in assembly language and in an interpretive language, in reverse Polish.
[^9]: [[Чем выше риск тем жестче коммуникация]]

2 лайка

К сожалению, это байки. Ни о какой “объектной ориентированности” речь там не шла. Были просто подпрограммы на типовые навигационные (читай чисто арифметические) задачи: введи ускорение - в регистр 1, время - в регистр 2, запусти процедуру номер 17… По сути, это была просто “логарифмическая линейка” с набором шкал на все типовые астронавигационные случаи. Ни о каких либо программах реального времени и, тем более, формулируемых в “объектах” речь не шла.

Странно, литература говорит иное. Ссылочки там есть на все про все.

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

Мне вспоминается моя самая первая компьютерная игрушка - посадка на Луну. В неё играли с телетайпа. ))

Даже не знаю о такой :slight_smile:

Мне кажется астронавты испытывали нечто подобное, но немного с другим уровнем напряжения :))

Беда в том, что “ту” литературу читают “современные” люди, очень плохо представляющие, как работает компьютер.

Самая интересная ее инкарнация - для программируемого калькулятора, описанная в Технике-Молодежи 86-го, с приложением фантастической повести.

А мне и не надо разбираться в работе компьютера на аппаратном и программном уровне. Потребительство на стероидах; что тут сказать.

А у меня был подобный агрегат. Занимал 2/3 кузова “Урала” (остальное - дизель-агрегат). Считал топографию.

И да, позже подобный “объектный” интерфейс действительно использовался:

Picture’s worth a thousand words. Писал я подобные программы на заре своей трудовой деятельности. Компьютер был размером с книгу и точно такая же принципиальная компоновка пользовательского интерфейса.
Сейчас это уже делается голосом: Алиса, включи музыку.

Зы: статья хорошая, утащу потом.

2 лайка

Это называется “Мурзилка”.

А что такое глаголы описания? Какие глаголы описания есть? Что из них формирует мутное описание, а что ясное? Возможно речь идет о глаголах действия, которые служат для указания на необходимое действие, либо для описания уже выполненного действия. Например - одеть Надежду - одежда надета.

В целом вы верно мыслите, вот две категории и характеристики каждой из них. Меня тут как-то спросили про Мысль и речь. Что влияет на что, эта статья логическое продолжение той. Классификация глаголов – родилась в лингвистическом исследовании. У меня есть гипотеза, что понимание что делать и как делать, наступает в момент когда в сформулированной задаче отсутствует необходимость дополнительно интерпретации.


Описательные глаголы действия (DAV)

  • Указание на объект и ситуацию, один конкретный вид деятельности и физический инвариантный признак действия.
  • Действие имеет четкое начало и конец. Нет положительной или отрицательной семантической валентности.
  • Контекст необходим.
  • Объективное описание события.

Позвонить, встретить, пнуть, поцеловать

Интерпретирующие глаголы действия (IAV)

  • Ссылка на объект и ситуацию, один конкретный вид деятельности и физический инвариантный признак действия.
  • Автономное понимание предложения. Контекст не имеет значения.
  • Интерпретирует действие за пределами описания. Имеет несколько объяснений.
  • Общий класс поведения.
  • Имеет определенное действие с началом и концом.
  • Имеет положительную и отрицательную семантическую валентность.

Обмануть, подражать, помочь, сдерживать

1 лайк

Спасибо! Хорошая теоретическая подводочка к правилам для применения на практике.

Например, “формулировать название задачи глаголом”, что автоматически помогает автору сформулировать задачу конкретно и понятно для исполнителя (в отличие от случая, когда название задачи написано существительным и вызывает вопрос “а делать-то что?”).

Я давно подозревал о важности этого, а после марафона Дорофеева по джедайским техникам стал делать только так.

Да много каких игр для программируемой Электроники там было) Даже ферма была)

В правилах программирования есть требование формулировать название функции или метода глаголом

1 лайк

С удовольствием почитал обсуждение. Мысли…
У меня буквально вчера был кейс когда супруга предложила посмотреть обсуждение 3х девочек, одна из них психолог, обсуждали девиации в сексе и “здоровые” отношения.

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

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

По поводу глаголов и не глаголов. Меня в школе учительница учила что при конспекте если не успеваешь нужно записывать глаголы. Потому что по ним можно основной смысл восстановить. Я пробовал и существительные и прилагательные и глаголы. Да действительно по глаголам можно понять что именно происходит.

Два месяца назад когда обдумывал теорию игрофикации, я обдумывал особенность глагола, прилагательного и существительного.

Глагол показывает движение и изменение. То есть если нам нужно что-то изменить где-то, или в пространстве или качестве, мы используем именно это.
что сделать? посадить (был не посажен, стал посажен)

Существительное показывает с какими сущностями мы работаем. Имея глагол но не имея существительное мы будем в состоянии менять пространство но не будем знать к чему прикладывать усилия. Отсутствует точка приложения изменения.
что меняем? местоположение шатла (посадить шатл)

Прилагательное показывает качество, характеристику. Без него можно обойтись иногда, но оно уточняет очень сильно.
какой? как? посадить шатл 15 со скоростью 17

Это конечно все очень условно и топорно. Да и я не лингвист. Но в целом очень много что можно описать используя функцию (глагол) и аргумент функции(существительное) ну а прилагательное для детализации. Не знаю есть ли математическое обоснование прилагательного. Есть ли что-то что описывает качество функции или ее аргументов.

2 лайка

Просто оставлю это здесь. “Коды операций”, которые тут обсуждают:

https://en.wikipedia.org/wiki/Apollo_Guidance_Computer#/media/File:Agc_verb-noun-list.jpg

Видно, что идея притянута за уши. При всей, конечно, ее очевидности. Более “естественным” является только разбитие команды процессора на отдельные цифры, каждая из которых передается не на общий дешифратор, а в отдельную часть схемы.

Я думаю тут особенность в том что если у нас есть несколько простых тривиальных задач, то конечно их проще закодить конкретной кнопкой.

Проблема начинается тогда когда нужна вариативность.

Если есть 3 сущности которые могут быть или активны или неактивны ок работает. А если у нас 150 элементов и каждый может иметь 3-4 статуса. На такое кнопок не напасешься.

Это вопрос инженерии. Например, в старой игрушке BattleZone, команда вводилась тремя цифрами: номер группы (нападение, оборона, строительство), номер танка, действие (цель действия, все-таки, обычно указывалась мышкой, впрочем, мышкой можно было заменить и указание номера танка). Но когда, во второй версии игры, такой ввод стал мешать сюжету, ввели объединения танков не по группам, а по сценарию. Впрочем, “оцифровывать” логику поведения можно самыми разными способами Блог старого нелюбителя X-COM .