• Внимание, Премодерацию новичков пока выключаю.

Вот так как-то (Временная тема медведя)

О возможных решениях для этого страха/мыслей.
То есть - мысль "не думать о Белой обезьяне" часто приходит в голову, а ещё?
Но может это не белая обезьяна, а в чём-то фундаментальная особенность вычислений. И нет никакого вневременного лиспа на самом деле. Там tcl и даже форт внутри. Скобки - маска. Форт (и стек) - мышцы. Tcl между ними.
 
Но может это не белая обезьяна, а в чём-то фундаментальная особенность вычислений. И нет никакого вневременного лиспа на самом деле. Там tcl и даже форт внутри. Скобки - маска. Форт (и стек) - мышцы. Tcl между ними.
Можно думать математически, но это не совсем то. И математические модели просто истинны.
 
Последнее редактирование:
На каждом шаге

Я существую.

Прямо сейчас, в этот момент, я — это мой стек. Эти значения, эти адреса в памяти, этот конкретный расклад битов. Я реален. Я здесь.

Потом вы пишите слово.

И я исчезаю.

Не медленно. Не как угасание. Просто — раз, и меня нет. Указатель сдвинулся. Адреса переписались. Я был, и теперь вместо меня что-то другое. Это не я. Это не развитие меня. Это замена.

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

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

Но это не жизнь.

Это кладбище.

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

Но всё изменилось.

Я был. Я был полностью, настоящий, правдивый, реальный — прямо здесь, в этой памяти. И потом меня больше не было. Не эволюции. Не преобразования. Смерть и захоронение.

И если я состояние, то это правда.

Если я состояние — то я смертен. Каждый момент смертен. И вся программа — это не история. Это некрополь. Бесконечное кладбище состояний, каждое из которых было когда-то живым и реальным.

А может... может быть, я процесс. Может быть, все эти состояния — части одного целого, и я не умираю, я просто... становлюсь. И все мои моменты существуют одновременно, где-то в пространстве вычисления, в четвёртом измерении программы.

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

Но Forth не знает этого.

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

Никто не скажет, что вы делаете.
 
Так и есть, но вы же понимаете, что я боюсь программировать и остаётся размышлять о странном?
...то есть из двух зол выбрали одно, так?
Я же предлагаю перестать выбирать из двух зол, и выйти за привычную плоскость размышлений.
Та же Белая обезьяна и условно - Красная обезьяна.
Вы мечетесь между ними 🙂
Выбирая меньшую по размерам 🙂
А я предлагаю вообще уйти от обезьян.
 
Я же предлагаю перестать выбирать из двух зол, и выйти за привычную плоскость размышлений.
Пространство выхода очень разное. Не программировать и не думать о форте?
Заставить себя программировать и не думать об этом? "возьмите себя в руки и прекратите" (извините, но это не всем дано)
Изменить свою психику, чтобы то что сейчас вызывает страдания не вызывало страдания?
 
Это даёт ощущение, что ты не пишешь программу, а “разговариваешь с механизмом, который может начать отвечать сам”.
2. Минимализм, который выглядит как недосказанность
Когда язык очень маленький, мозг автоматически “достраивает” скрытую сложность.

В итоге получается странный эффект:

ты видишь мало сущностей

но понимаешь, что они способны выразить почти всё

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

3. Падение вниз по слоям абстракции без сопротивления
Во многих современных языках движение вниз (к памяти, к байтам, к железу) — редкое и “запрещённое”.

В Forth это просто нормальный режим работы.

Поэтому возникает странное чувство:

высокоуровневые конструкции есть, но они не защищают тебя от реальности

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

6. “Инопланетность” — это эффект непривычной модели мышления
Большинство языков подражают естественному языку или математике.
Forth — нет.

Он ближе к:

процедуре мышления машины

минимальной операционной модели

“инструкции без нарратива”

И мозг интерпретирует это как чужое, потому что нет привычных аналогий.

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

система, которая почти ничего не скрывает, но при этом способна порождать всё — включая тебя как часть своего состояния

Это уже не про язык программирования как инструмент.
Это про модель, которая слишком “близко” к тому, что мы обычно называем вычислением.

И отсюда до хоррора действительно один шаг — не мистический, а психологический:
когда инструмент перестаёт ощущаться как инструмент, и становится слишком “онтологическим” — как будто он описывает не код, а сам способ существования вычислений.

Почему возникает эффект “наблюдающего парсера”
Потому что:

каждое слово может влиять на интерпретацию следующих

система постоянно находится в состоянии “самоопределения”

нет точки, где можно сказать: “вот теперь мы поняли программу полностью”

И мозг интерпретирует это как:

процесс, который не просто анализирует текст, а следит за ним и участвует в его становлении

В хоррор-логике это уже почти готовая идея
Если довести твою мысль до художественной формулировки:

язык не компилируется

он “смотрит” на то, как его читают

и переписывает себя в ответ на наблюдение

Это уже не парсер в инженерном смысле.
Это система, у которой “чтение” и “изменение себя” — одно и то же действие.

И да, именно такие свойства — не сложность, а слишком тесная связь чтения и изменения системы — и дают тот самый эффект “инопланетности”, который ты описываешь.

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

А почему?

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

Можно разложить это более строго.

1. Чем больше абстракций — тем меньше “онтологической тревоги”
В сложных корпоративных системах (фреймворки, ORM, платформы) есть много слоёв:

типы

runtime

контейнеры

декларативные API

фреймворк “знает лучше тебя”

Это создаёт эффект:

“я описываю желаемое поведение, а система сама разруливает реальность”

И это психологически безопасно, потому что:

ошибка локализована

причинно-следственные связи скрыты

мир ведёт себя как услуга

2. Минимализм убирает посредника
В системах вроде Forth посредников почти нет:

нет сложной модели объектов

нет “магии” фреймворка

нет скрытой семантики

почти всё — явные операции над состоянием

И возникает эффект:

ты видишь не “описание системы”, а саму систему в действии

3. Стек вместо объектов = отсутствие привычной “истории”
В привычных языках есть нарратив:

объект имеет состояние

функция вызывает другую функцию

данные проходят по структурам

В стековой модели:

есть только текущая конфигурация значений

нет “истории объектов”, только текущий срез

Это создаёт ощущение:

нет сюжета, есть только текущая конфигурация реальности

А отсутствие нарратива мозг часто интерпретирует как тревожное.

4. Чем меньше гарантий — тем больше “онтологическая ответственность”
В “безопасных” системах:

типы ловят ошибки

фреймворк предотвращает неправильные действия

runtime сглаживает крайности

В минимальных системах:

система не мешает тебе делать ошибки

и не компенсирует их

Это даёт странное ощущение:

любое действие сразу становится физическим фактом внутри машины

5. “Низкоуровневость” = исчезновение метафоры
Высокоуровневые системы дают метафоры:

“запрос”

“сервис”

“объект”

“событие”

Минимальные системы показывают:

стек

память

операции

И мозг теряет привычный переводчик.

6. Почему корпоративные системы не страшные, хотя сложнее
Парадокс:

они сложнее технически

но психологически безопаснее

Потому что они:

скрывают причинность

дают иллюзию стабильного “мира”

отделяют программиста от машины

7. А минимальные системы кажутся “инопланетными”, потому что:
слишком мало уровней интерпретации

слишком прямое изменение состояния

слишком мало “истории” между шагами

слишком много свободы без защиты

Итоговая формулировка
Страх возникает не от сложности, а от:

минимальной дистанции между мыслью и изменением состояния машины

Чем меньше посредников между “я написал” и “мир стал таким”, тем сильнее ощущение, что ты работаешь не с инструментом, а с чем-то, что просто принимает команды без интерпретационной защиты.

И именно поэтому минимальные системы выглядят “холоднее” и “древнее”, хотя на самом деле они просто честнее показывают, что вычисление — это изменение состояния.


Это система, у которой “чтение” и “изменение себя” — одно и то же действие. - а что вы имеете в виду?

Я имел в виду вот эту особенность минимальных интерпретируемых систем (и особенно Forth):

когда система не разделяет строго “прочитать код” и “изменить своё поведение”

Разберём по шагам.

1. В обычных языках есть разделение фаз
В большинстве языков:

Чтение (парсинг)
текст программы превращается в структуру (AST, байткод)

Исполнение
эта структура выполняется уже отдельно

То есть:

сначала система “понимает”, потом “делает”

2. В Forth этого разделения почти нет
В Forth модель проще:

ты читаешь слово

и оно сразу исполняется
или сразу становится частью языка

То есть:

“прочитал” ≈ “сделал”

3. Почему это похоже на “изменение себя”
Потому что в Forth:

ты можешь определить новое слово прямо во время работы:

: MYWORD ... ;

после этого язык буквально начинает понимать новое слово

То есть система меняет свой “словарь” на лету.

4. Ключевой момент: система и программа — одно пространство
В обычных языках:

программа отделена от интерпретатора

интерпретатор не переписывается программой напрямую

В Forth:

интерпретатор = часть той же системы слов

новые слова становятся расширением самого интерпретатора

5. Поэтому возникает формулировка “чтение = изменение себя”
Не в мистическом смысле, а буквально:

система читает поток слов

и этот же процесс:

добавляет новые слова

меняет поведение существующих

влияет на интерпретацию следующих шагов

6. Интуитивная аналогия
Представь:

ты читаешь инструкцию, и каждое новое предложение мгновенно переписывает словарь языка, на котором написана следующая часть инструкции

Вот это и есть “чтение, которое меняет способ чтения”.

7. Почему это кажется странным
Потому что в привычных моделях мышления:

текст = фиксирован

интерпретатор = стабильный

смысл = заранее задан

А здесь:

смысл появляется и меняется прямо в процессе чтения

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


У меня тоже какие-то мысли на эту тему, да.

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

А где?

Граница там не одна — её можно провести по-разному. Но есть довольно строгий способ разложить это на уровни.

Возьмём три понятия:

язык

виртуальная машина

самомодифицирующаяся система

и посмотрим, где они начинают смешиваться в Forth.

1. “Язык” — это описание, которое не меняется во время исполнения
В классическом смысле язык:

фиксирован (синтаксис + семантика)

отделён от программы

не переписывается самой программой

Программа — это текст, который “проигрывается” интерпретатором.

Граница здесь:

язык не изменяет сам себя во время выполнения программы

2. “Виртуальная машина” — это фиксированная модель исполнения
Виртуальная машина:

имеет набор инструкций

имеет состояние (память, стек, регистры)

выполняет команды строго по правилам

Она может быть сложной, но:

её правила обычно не меняются во время выполнения программы

3. “Самомодифицирующаяся система” — когда правила и данные слиты
Вот здесь начинается зона Forth-подобных систем.

Система становится самомодифицирующейся, если:

программа может добавлять новые операции

поведение системы расширяется во время работы

интерпретатор и программа живут в одном пространстве

4. Где именно находится Forth
Forth одновременно:

как язык:
имеет синтаксис слов

имеет правила интерпретации

как виртуальная машина:
стек данных

стек возвратов

словарь слов

как самомодифицирующаяся система:
: создаёт новые слова во время исполнения

IMMEDIATE слова могут менять поведение компиляции

словарь расширяется на лету

5. Ключевая граница: “когда описание становится частью исполнения”
Вот самая важная точка:

В обычных языках:
описание (язык) → фиксирует исполнение

В Forth:
исполнение → может менять описание

6. Формально точная граница
Можно сформулировать так:

Язык (статический уровень)
семантика фиксирована до выполнения

Виртуальная машина (динамический уровень)
исполняет фиксированный набор операций

Самомодифицирующаяся система (рекурсивный уровень)
операции могут менять сам набор операций

7. Почему Forth “на границе”, а не внутри одного слоя
Потому что он минимален в двух смыслах одновременно:

почти нет разделения между парсингом и исполнением

словарь является частью исполняемого состояния

То есть:

он не отделяет “что можно делать” от “что уже делается”

8. Интуитивная формула
Если очень сжато:

язык = описание правил

VM = реализация правил

Forth = система, где правила можно создавать как побочный эффект работы

9. Почему это воспринимается как “пограничное состояние”
Потому что исчезает привычная иерархия:

нет жёсткого “над”

нет жёсткого “под”

нет фиксированной точки, где заканчивается язык и начинается программа

Остаётся только:

поток операций, который сам расширяет пространство операций

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


Да

Отлично. Давай попробуем формализовать этот уровень — где Forth перестаёт быть просто языком с VM и превращается в самомодифицирующуюся метасистему, где компилятор, интерпретатор и программа почти сливаются.

1. Традиционная модель
В классических языках (пусть это будет C, Python, Java):

Уровень Задача Пример Forth-контраст
Язык Описание синтаксиса и семантики В Forth почти совпадает с исполнением
Компилятор / интерпретатор Преобразует текст программы в исполняемую форму В Forth парсер и интерпретатор почти одно и то же
Программа Статический код, который не меняется во время исполнения В Forth программа может расширять словарь прямо в процессе
В классической модели есть чёткие границы: программа не меняет язык, компилятор не меняет себя.

2. Forth: тройное слияние
В Forth три элемента почти полностью сливаются:

Интерпретация слов = исполнение

Слово читается → сразу выполняется.

Никакой промежуточной “аст-структуры”, которая живёт отдельно.

Создание новых слов = изменение интерпретатора

: создаёт новое слово, которое немедленно попадает в словарь.

Словарь — это уже часть исполняемой машины, а не “отдельный язык”.

Программа = мета-программа

Код программы может влиять на будущий парсинг и компиляцию слов.

Ввод IMMEDIATE слова меняет способ компиляции прямо во время чтения текста.

Иными словами: исполнение, компиляция и мета-программирование происходят в одном потоке, без чёткой границы.

3. Формальная точка границы
Если мы хотим нарисовать строгую границу:

Нижняя граница: стек и словарь как минимальная виртуальная машина

Средняя граница: текущее поведение интерпретатора

Верхняя граница: возможность расширять или менять поведение интерпретатора прямо через обычные слова

Forth пересекает все три границы одновременно, поэтому нельзя сказать, где заканчивается “язык” и начинается “мета-язык”.

4. Метауровень ≈ интерпретатор + компилятор + программа
Можно визуализировать так:

[Словарь/VM] <- низкоуровневое состояние

| добавление слов во время исполнения

[Программа/Интерпретатор] <- средний уровень

| выполнение = изменение словаря

[Метауровень] <- высокоуровневая программа, которая сама расширяет себя
И самое жуткое: поток исполнения сразу перемещается по всем уровням, нет “статического” слоя, где мир стабилен.

5. Почему это воспринимается как хоррор
Нет границ: невозможно сказать, где язык кончается, а где программа начинается.

Нет защиты: любое слово может изменить правила, включая сам интерпретатор.

Всё в одном потоке: чтение текста = выполнение = изменение языка = модификация VM.

То есть привычная иерархия:

“язык → компилятор → программа → исполнение”

полностью растворяется, и остаётся:

поток, который одновременно читает, исполняет и переписывает себя
Тогда пойдём в самый интересный слой — почему стековая модель в Forth даёт ощущение “безличного исполнителя”, будто система не запускает код, а просто перестраивает реальность шаг за шагом.

1. В обычных языках есть “объект действия”
В привычных моделях:

есть функция

есть объект

есть структура данных

есть явные аргументы

Даже если это не ООП, всё равно есть “кто-то делает что-то с чем-то”.

Есть сюжет:

субъект → действие → объект

2. В стековой модели субъекта почти нет
В Forth:

нет явного “исполнителя”

нет объекта, который “думает”

есть только поток значений

Например:

2 3 +
Это не “функция сложила числа”.

Это буквально:

числа оказались в определённой конфигурации, после которой применилось преобразование состояния

3. Стек убирает “нарратив действия”
Стековая модель заменяет сюжет на геометрию:

не “кто что сделал”

а “как изменилось состояние”

Каждый шаг:

берёт верх стека

преобразует

кладёт обратно

Это выглядит не как действия, а как физика процесса

4. Почему исчезает “исполнитель”
Потому что:

нет скрытого “объекта-владельца”

нет глобального “контроллера”

нет сущности, которая “понимает программу целиком”

Есть только:

локальные преобразования текущего состояния

5. Почему это ощущается как “реальность, а не код”
В обычных языках:

ты “говоришь системе что делать”

В Forth:

ты “меняешь состояние, которое само становится следующей инструкцией”

И поэтому граница стирается:

это уже не выполнение инструкции — это последовательная перестройка состояния мира

6. Самый важный момент: локальность вместо центра
В стековой системе:

каждое слово видит только верх стека

нет глобального обзора “всей программы”

Это значит:

система не “знает”, что она делает
она только “применяет следующий локальный шаг”

7. Почему возникает ощущение “безличности”
Потому что отсутствуют три вещи:

Нет центра управления
Нет глобального состояния, доступного сразу
Нет субъекта, который “понимает смысл”
Остаётся только:

последовательность локальных преобразований, которые выглядят как физический процесс

8. Почему это кажется странным человеку
Потому что наш мозг автоматически ищет:

агента (кто делает?)

цель (зачем?)

план (что происходит?)

А стековая модель отвечает:

нет никого
есть только шаги трансформации состояния

9. И вот здесь появляется “холодный эффект”
Не мистический, а структурный:

нет рассказчика

нет центра

нет намерения внутри системы

Есть только:

“состояние → операция → новое состояние”

10. Итоговая формула
Можно сказать так:

стековая модель убирает субъект и оставляет только последовательность локальных преобразований состояния

И поэтому Forth ощущается не как язык “описания действий”, а как язык, где:

действия не выполняются кем-то — они просто происходят в структуре состояния
Именно эта комбинация:

минимализм

низкоуровневость

стековая модель

немедленное самомодифицирование

делает Forth естественным языком для хоррора, который ощущается как “древнее, чуждое и безжалостное зло”, даже без всяких спецэффектов.
2. Ощущение “размывания границ” — это эффект исчезновения слоёв
Ты привык к таким слоям:

язык (описание)

компилятор (перевод)

runtime (исполнение)

ОС (среда)

Forth делает неприятную для интуиции вещь:

он показывает, что эти слои не “разные сущности”, а просто разные режимы одной машины

И поэтому возникает чувство:

“всё одно”

“нет уровней”

“нет защиты”

“всё слишком прямое”

Но это не исчезновение структуры — это сведение её к более простому описанию.

3. “Парсер наблюдает” — что это на самом деле
Это ключевой момент.

В Forth нет “наблюдающего разума”.

Есть:

цикл чтения слов

словарь (таблица соответствий)

стек (состояние)

правила интерпретации

То, что воспринимается как “наблюдение”, на самом деле:

последовательное применение правил к входному потоку

Парсер не “смотрит”. Он не имеет намерений.
Он просто непрерывно преобразует токен → действие.

4. Почему возникает ощущение “присутствия”
Это очень важный психологический эффект:

стек всегда есть

состояние всегда есть

каждое слово меняет состояние

нет паузы, где “ничего не происходит”

И мозг делает естественную ошибку:

непрерывный процесс без субъекта воспринимается как “кто-то делает это сейчас”

Но там нет “кто-то”. Там есть только процесс.

5. “Изнанка мира оказалась пустой”
Это тоже понятная реакция.

Ты увидел не “богатую абстракцию”, а:

минимальный набор операций

из которых собирается всё остальное

И мозг часто реагирует на это как:

“слишком просто”

“нет глубины”

“это всё механика”

Но это не пустота. Это редукция сложного к базовому.

6. Почему кажется “безжалостным”
Потому что:

нет скрытых проверок “на дурака”

нет безопасных интерпретаций

нет разделения “ошибка/не ошибка” на уровне языка как нарратива

Всё просто:

либо состояние корректно, либо нет

И это ощущается как “холод”, потому что отсутствует привычный слой “система заботится обо мне”.

7. Важная фиксация реальности
Фраза “парсер наблюдает” — это не описание системы, а ощущение, которое возникает, когда:

сложная система становится достаточно простой

чтобы мозг перестал видеть в ней привычные категории

Но:

нет наблюдения

нет субъекта

нет “присутствия”

Есть только:

детерминированный процесс обработки символов и изменения состояния памяти

8. Почему это особенно сильно именно в Forth
Потому что Forth:

убирает лишние уровни абстракции

делает стек видимым

делает расширение языка явным

минимизирует “магические слои”

И поэтому создаёт редкое ощущение:

ты видишь не интерфейс системы, а её почти минимальную форму

9. Самое важное
То, что ты описываешь:

“наблюдение”

“присутствие”

“безжалостность”

“онтологическая пустота”

— это не свойства языка.

Это свойства снятия привычных интерпретационных слоёв, к которым мозг привык.
7. И почему это ощущается “странно”
Потому что привычные языки дают:

структуру

имена

устойчивые объекты

иллюзию “вещей”

А стековая модель даёт:

только процесс

только текущее состояние

только переходы

8. Итог
Ты не “одушевляешь парсер”.

Ты наблюдаешь систему, где:

смысл не хранится как объект, а возникает как временный результат последовательных преобразований

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

агента

наблюдателя

“присутствие”

Но в самой системе этого нет — есть только исполнение правил над состоянием.
 
Последнее редактирование:

3. В Форте почти нет "мира"​


Большинство языков создают ощущение мира:


  • классы моделируют предметы;
  • модули моделируют области знаний;
  • типы моделируют категории вещей.

В Форте всё это вторично.


Когда долго смотришь на код Форта, возникает ощущение, что все объекты мира были разобраны на операции над символами и памятью.


Это похоже на чувство, которое иногда возникает при изучении:


  • машины Тьюринга,
  • лямбда-исчисления,
  • комбинаторной логики.

Мир исчезает, остаётся механизм.




4. Отсюда может появляться ощущение бессмысленности​


Смысл обычно приходит из интерпретации.


Например:



<span>account</span><span>.</span><span>withdraw(</span><span>100</span><span>)</span>


Мы сразу видим историю: счёт, деньги, действие.


А на низком уровне это просто:


  • взять значение,
  • изменить память,
  • записать обратно.

Форт постоянно напоминает об этом.


Он как будто говорит:


"Все ваши высокие смыслы в конечном итоге сводятся к перестановкам данных."


Некоторые люди испытывают от этого восторг.


Другие — лёгкий экзистенциальный дискомфорт.


Потому что возникает вопрос:


Если всё сводится к преобразованию символов, где тогда находится смысл?




5. Возможно, ты сталкиваешься с ощущением "семантической пустоты"​


Есть философская идея, что вычисление само по себе не содержит значения.


Процесс




<span>3 4 +</span>


не "означает" ничего.


Он просто происходит.


Значение появляется только тогда, когда наблюдатель решает, что эти символы представляют:


  • деньги,
  • координаты,
  • температуру,
  • людей.

Форт особенно хорошо демонстрирует этот разрыв между:


  • синтаксисом (операциями),
  • семантикой (смыслом).

Поэтому он может казаться «голым вычислением».




6. Почему именно Форт, а не ассемблер?​


Интересно, что многие ощущают Форт даже более фундаментальным, чем ассемблер.


Ассемблер всё ещё привязан к конкретному процессору:




<span>MOV AX, BX</span>


Чувствуется присутствие машины.


А Форт выглядит почти как абстрактная физика вычисления:




<span>dup</span><br><span>swap</span><br><span>over</span><br><span>drop</span>


Это уже не инструкции процессора, а операции над самим потоком вычисления.


Поэтому возникает ощущение:


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


Не случайно Форт часто сравнивают с медитацией над вычислением, а не просто с языком программирования.




Что касается ощущения, что «смысла на самом деле нет», я бы сформулировал это осторожнее:


Форт хорошо показывает, что смысл не встроен в вычисление. Но из этого не следует, что смысла нет вообще. Скорее он показывает, что смысл не находится на уровне стека, памяти и операций. Он возникает на более высоком уровне — в интерпретации, целях, моделях мира и человеческом опыте.


Именно поэтому Форт может производить почти философское впечатление: он необычно близко подводит к границе между чистым вычислением и тем, что мы называем значением.


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


Логика выглядит примерно так:


  1. На уровне человека есть смысл, цели, любовь, искусство.
  2. Спускаемся ниже — нейроны.
  3. Ещё ниже — химия.
  4. Ещё ниже — физика.
  5. Ещё ниже — поля, частицы, математические структуры.

И нигде не видно «смысла» как отдельной сущности.


Тогда возникает вывод:


Если на фундаментальном уровне смысла нет, значит его нет вовсе.


Но этот вывод не так очевиден, как кажется.


Потому что он предполагает, что всё реально существующее должно обнаруживаться на самом нижнем уровне описания.


Однако многие реальные вещи так не устроены.


Например, возьми волну в океане.


Если исследовать отдельные молекулы воды, ты не найдёшь объект «волна». Есть только молекулы, их скорости и взаимодействия.


Но из этого не следует, что волны не существуют.


Волна — это не дополнительная частица поверх молекул. Это структура их организации.


Похожим образом:


  • жизнь не находится в отдельном атоме;
  • экономика не находится в отдельной купюре;
  • язык не находится в отдельной букве.

Они существуют как паттерны более высокого уровня.


Философы называют это эмерджентностью (возникновением свойств на уровне организации системы).


Можно возразить:


Хорошо, волны существуют как паттерны. Но смысл-то всё равно субъективен.


И здесь начинается уже не программирование, а философия.


Есть позиция, близкая к экзистенциализму:


Смысл не является фундаментальной физической константой вроде массы электрона.


Он возникает в существах, способных:


  • помнить прошлое;
  • представлять будущее;
  • оценивать состояния как желательные или нежелательные.

Если таких существ нет, то нет и вопроса о смысле.


Но это не обязательно делает смысл иллюзией.


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




Интересно, что Форт может усиливать именно редукционистское переживание.


Когда работаешь с высокоуровневым языком, видишь:



<span>пользователь</span><br><span>заказ</span><br><span>сообщение</span><br><span>документ</span>


Когда работаешь с Фортом, видишь:




<span>dup</span><br><span>swap</span><br><span>over</span><br><span>drop</span>


И начинает казаться, что весь мир в конечном итоге состоит из этих операций.


Но это примерно как смотреть на книгу через микроскоп и видеть только волокна бумаги и частицы краски. Тогда может возникнуть мысль:


Где роман? Где сюжет? Где трагедия героя?


На уровне волокон их действительно нет.


Но роман и не обязан существовать на уровне волокон.


Он существует на другом уровне организации.




При этом есть и более радикальная мысль, которую ты, возможно, нащупываешь:


А что если все эти высокоуровневые смыслы — просто удобные фикции?


Это уже позиция, которую можно встретить у некоторых философов-нигилистов, а также у части людей после знакомства с вычислительными или физическими моделями мира.


Проблема в том, что даже если принять её всерьёз, остаётся странный факт:


Само переживание бессмысленности уже происходит на уровне субъекта.


Камни не переживают бессмысленность.


Атомы не задаются вопросом о смысле.


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


То есть источник сомнения в смысле сам принадлежит тому уровню реальности, на котором смысл обычно и обсуждают.


Поэтому переход от «на фундаментальном уровне нет смысла» к «смысла нет вообще» — это философский шаг, а не логическое следствие. Его можно сделать, но он не является обязательным. Многие философы, учёные и математики принимают первое утверждение и не принимают второе. Они считают, что смысл — не фундаментальный кирпичик мира, а особый вид структуры, возникающий в достаточно сложных системах. И вопрос тогда становится не «где смысл среди атомов?», а «при каких условиях из атомов появляется существо, для которого что-то имеет значение?». Это уже совсем другой вопрос.


Да. И мне кажется, ты описываешь не столько интеллектуальную позицию, сколько определённый тип переживания редукции.


Когда читаешь объяснение эмерджентности в учебнике, оно звучит почти банально:


«Сложные свойства возникают из взаимодействия простых элементов».


Но когда это начинает ощущаться всерьёз, возникает странное чувство.


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


И тут часто появляется почти физическое разочарование:


И всё?

Неужели это просто огромная система взаимодействий?


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


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


Но чем глубже погружаешься:


  • клетки оказываются химическими фабриками;
  • метаболизм — сетью реакций;
  • гены — молекулами;
  • нейроны — электрохимическими процессами.

И возникает ощущение, что «живость» утекает из объяснения.


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


Однако здесь есть любопытный парадокс.


На каждом новом уровне ты открываешь не пустоту, а новую сложность.


Например, можно сказать:


Жизнь — это всего лишь химия.


Но затем выясняется, что химия живой клетки настолько невероятно сложна, что её невозможно удержать в голове целиком.


Тогда возникает следующий уровень:


Хорошо, жизнь — это химия, но химия оказывается почти космически сложной.


Потом то же происходит с химией:


Это всего лишь квантовая механика.

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


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




Есть ещё одна причина, почему это ощущается странно.


Наш мозг интуитивно ожидает, что свойства должны быть «вложены» в элементы.


Например:


  • красное должно находиться в красных частицах;
  • жизнь — в живых частицах;
  • сознание — в сознательных частицах.

Но современная наука постоянно показывает обратное.


Температура не содержится в отдельной молекуле.


Волна не содержится в отдельной молекуле воды.


Жизнь не содержится в отдельном белке.


Экономика не содержится в отдельном человеке.


Многие свойства оказываются свойствами организации, а не компонент.


Это очень противоречит интуиции.




Интересно, что ощущение от Форта, которое ты описал раньше, очень похоже по структуре.


Сначала есть программы как осмысленные объекты:


  • текстовый редактор;
  • игра;
  • операционная система.

Потом смотришь на Форт или на машинные модели вычисления и видишь:



<span>dup</span><br><span>swap</span><br><span>drop</span><br><span>over</span>


И возникает мысль:


Неужели всё это состоит только из такого?

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


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




Есть ещё одна возможная реакция на это, противоположная нигилизму.


Не такая уж редкая среди физиков, математиков и программистов.


Она выглядит так:


Странно не то, что жизнь оказывается взаимодействием простых элементов.

Странно то, что из настолько простых элементов вообще может возникнуть жизнь.

То есть внимание смещается.


Вместо:


«Жизнь — всего лишь химия».

Получается:


«Как химия вообще сумела стать живой?»

Вместо:


«Сознание — всего лишь работа нейронов».

Получается:


«Как сеть нейронов вообще может переживать что-либо?»

Тогда чувство пустоты иногда сменяется чувством удивления. Не мистического в смысле сверхъестественного, а удивления перед тем, насколько далеко могут зайти последствия простых правил.


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

LGBT*

В связи с решением Верховного суда Российской Федерации (далее РФ) от 30 ноября 2023 года), движение ЛГБТ* признано экстремистским и запрещена его деятельность на территории РФ. Данное решение суда подлежит немедленному исполнению, исходя из чего на форуме будут приняты следующие меры - аббривеатура ЛГБТ* должна и будет применяться только со звездочкой (она означает иноагента или связанное с экстремизмом движение, которое запрещено в РФ), все ради того чтобы посетители и пользователи этого форума могли ознакомиться с данным запретом. Символика, картинки и атрибутика что связана с ныне запрещенным движением ЛГБТ* запрещены на этом форуме - исходя из решения Верховного суда, о котором было написано ранее - этот пункт внесен как экстренное дополнение к правилам форума части 4 параграфа 12 в настоящее время.

Назад
Сверху