TGViewer
Книжный куб Книжный куб @book_cube · 15.8K subscribers
Post #4560 3.71K
[1/2] Clojure: The Documentary (Рубрика #Architecture)

Посмотрел новую документалку CultRepo про Clojure и это история о том, как взгляд Rich Hickey на сложность превратился в язык, комьюнити, базу данных Datomic и вообще production-стек для компаний уровня Nubank (о котором я как-то уже рассказывал). В самом фильме появляется не только Рич, но и остальные ключевые люди, которые строили язык, писали про него книги, внедряли его в компаниях и использовали в больших системах.

Ниже интересные моменты, подсвеченные в документалке и которые я вынес для себя (отдельно отмечу, что я не являюсь фанатом Clojure и мне этот язык всегда казался далеким от прода)

1️⃣ Язык программирования - это не синтаксис, а способ думать

Clojure важен не потому, что это наследник Lisp и работает поверх JVM, этот язык навязывает определенную модель мышления, где программа строится из простых частей: immutable data, pure functions, explicit state transitions и минимального количества лишних приседаний. И это хороший вопрос для любой команды: ваш основной язык и фреймворки помогают думать проще или просто делают привычные вещи удобнее?

2️⃣ Simple и easy - разные вещи
Фильм постоянно возвращается к идеям Rich Hickey из доклада "Simple Made Easy" 15 летней давности. И Рич разделяет их между собой так
- Easy - это то, что рядом, знакомо и быстро дается текущей команде.
- Simple - это то, где меньше переплетений, меньше скрытых зависимостей и меньше случайной сложности.
Понимать это различие важно для технических руководителей - часто команда выбирает easy: знакомый фреймворк, привычную ORM, еще один слой абстракции, еще один микросервис, еще одну интеграцию. А потом через год оказывается, что система стала не simple, а просто знакомо-сложной.

3️⃣ Mutable state - главный источник боли

Clojure пытается убрать из программы не всю изменяемость, а неуправляемую изменяемость. В официальном rationale прямо говорится, что Clojure строится вокруг Lisp, functional programming, JVM и concurrency, а также вокруг immutable persistent data structures и STM. Самая сильная идея здесь - разделить identity и state. Identity может жить во времени, но конкретное значение состояния должно быть immutable. Значение не меняется; система просто связывает identity с новым value. Это радикально меняет то, как мы думаем про баги, concurrency, аудит, отладку и историю данных.

В посте-продолжении расскажу про оставшиеся интересные моменты.

#Architecture #SoftwareDesign #EngineeringManagement #SystemDesign
YouTube How One Programmer's Pet Project Changed the Way We Think About Software This is the story of how one programmer's obsession with simplicity quietly reshaped how the software world thinks about time, immutability, and what it means to write code that lasts. From a sabbatical pet-project to the backbone of one of the world's largest…
  • 👍 11
  • ❤ 6
  • 🔥 3
More from @book_cube
  1. Oct 8, 2026Материалы Code of Leadership №84: разработчик становится менеджером в эпоху AI? (Рубрика #…
  2. Oct 8, 2026Проектирование обвязки для длительной (автономной) разработки приложений (Рубрика #AI4SDLC…
  3. Oct 8, 2026Материалы выпуска Research Insights #33: SWE-agent (Рубрика #AI4SDLC) Собрал материалы сол…
  4. Oct 8, 2026Justin Reock: код менять легче, деплоить страшнее (Рубрика #AI4SDLC) Новый доклад Justin R…
  5. Oct 7, 2026Зачем руководитель возвращается к коду — материалы выпуска (Рубрика #Leadership) Вышел 82-…
  6. Oct 7, 2026Harness engineering: как экспериментальная команда внутри OpenAI перестраивала разработку…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →