amarao: (Default)
[personal profile] amarao
Я долго-долго читал ГЭБ (http://flibusta.is/b/198312, описание в википедии: https://ru.wikipedia.org/wiki/%D0%93%D1%91%D0%B4%D0%B5%D0%BB%D1%8C,_%D0%AD%D1%88%D0%B5%D1%80,_%D0%91%D0%B0%D1%85).

Ещё дольше я её понимаю. В каком-то смысле, в районе научного футуризма - совершенно essential книга.

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


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

Одним из проявлений архитектурного редукционизма является "желание ассемблера". Когда-то, давным давно, я отметал всякие хаскелёвые абстракции, как не имеющие отношения к реальности (или имеющие, но по чистой случайности). А реальность эта - в каком байте MBR находится partition table, есть ли suid бит на исполняемом файле, и как именно выглядит вызов функции с точки зрения заполнения регистров (calling convention).

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

Максимализм повыветрился, а вот редукционистская ценность построения знания о системе "снизу вверх" осталась.

И вот, ГЭБ. В котором очень много посвящено как раз проблеме невозможности осознать сложность системы глядя на её редуцированные базовые правила. Половина книги как раз и посвящена построению очень сложного из очень простых механизмов так, что никакое знание об устройстве механизма не может понять то, что строят.

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

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

Я не могу просто так взять и заменить core believe на другой, это слишком большое и сложное изменение; но я признаю, что "закапываться в стек" не является эффективной стратегией изучения. Чем именно надо его заменить я пока не понимаю, пока что я всего лишь пошатнул одно из оснований своего собственного восприятия мира.

Date: 2023-09-09 04:50 pm (UTC)
From: [personal profile] zyxman
Приятного чтения! Вы кстати, спрашивайте, я давно этой темой занимаюсь, глубоко ее копнул и много могу рассказать интересного :)

Date: 2023-09-11 04:59 pm (UTC)
From: [personal profile] zyxman
> теорию эффектов..прям вершина мысли в программировании и светлое будущее

Это вы про внешние эффекты функций? - Ну потому как мне странно слышать про будущее.

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

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

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

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

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

Функциональное программирование про то чтобы жить БЕЗ внешних эффектов, вот почему мне странно слышать что за этим будущее.

Profile

amarao: (Default)
amarao

December 2025

S M T W T F S
 12 3456
78910111213
14151617181920
212223242526 27
28293031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 2nd, 2026 03:22 am
Powered by Dreamwidth Studios