TGViewer
dd if=/dev/stuff of=/dev/tg dd if=/dev/stuff of=/dev/tg @randomstuffilike · 2.48K subscribers
Post #742 3.25K
Говорят, что для продуктивной работы знать теорию категорий и теорию типов не нужно, а порой даже вредно — причем даже если пишете на хаскеле, где половина стандартной библиотеки щеголяет терминами из теорката. Клепать опердени, перекладывая джейсоны из кафки в постгрю, можно без малейшего понимания, чем является левое сопряжение к забывающему функтору.

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

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

Значит ли это, что всем поголовно надо начать заниматься математикой? Да ни в коем случае. У каждого свой путь и свои подходы, которые заставляют понимание «щелкнуть». Но я надеюсь, что примеры выше еще раз покажут, что насмехаться над «академиками в башнях из слоновой кости», по меньшей мере, неразумно.
YouTube MuniHac 2020: Jamie Willis - Exploring Parsley Title: Exploring Parsley Speaker: Jamie Willis Parser combinator libraries are a popular approach to writing parsers in the functional world. In particular, monadic parser combinators take centre stage. But when performance of these parser combinators become…
More from @randomstuffilike
  1. Mar 13, 2026Задолбался, что приходится быть chief software sloperator на работе, поэтому в терапевтиче…
  2. Feb 28, 2024Моделирование доменных типов на расте: https://mmapped.blog/posts/25-domain-types.html
  3. Dec 5, 2023Слайды доклада Томаса Микулы «Monads Are Not About Sequencing»: https://continuously.dev/p…
  4. Nov 9, 2023Design Guidelines for Domain-Specific Languages Очень хороший пейпер, предлагающий 26 гайд…
  5. Oct 19, 2023И чуть более развернутый пост от автора: https://zackoverflow.dev/writing/flappy-bird-in-t…
  6. Oct 19, 2023https://twitter.com/zack_overflow/status/1715042340514017559 — Flappy Bird на тайплевеле т…
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 →