Pull to refresh

Comments 13

Мне абсолютно импонирует способ выражения мыслей Андреем — «в основном вся энергия обсуждений рассеивается где-то в районе синтаксиса» — это же офигительно образно!

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

Один из то ли (научных) журналистов, то ли писателей, пообщавшись с ученым мировой величины, когда-то очень емко сказал, что явно чувствовал гравитацию от масштаба (читай, массы) личности, находящейся с ним рядом. Здесь похожая история — масштаб личности чувствуется из интервью абсолютно явно. Спасибо!

Приятно было почитать про осознанность. Особенно интересно, что было упомянуто два её вида. По той о которой говорит Андрей, если я правильно помню, была книга "Думай медленно, решай быстро" Д. Канемана, а по той, которая про медитации есть другая книга с большим набором практик, которая так и называется "Осознанность". Рекомендую обе.

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

1. «А про синтаксис понятно, синтаксис — это просто». Действительно, в современном учебнике по компиляторам теме синт. разбора (должно быть) отведено от силы 10-15% материала. Остальное-то, как раз, и есть самое сложное, интересное и плохо формализованное. Впрочем, понятно, что для пользователей языка это самое «остальное» не столь заметно, как синтаксис.

2. «Например, нам бы в компиляторе очень пригодились некоторые языковые фичи, которые больше никому не нужны». Вот этот момент по поводу использования конструкции сопоставления с образом для меня является очень важным. Потому что во многих даже очень солидных современных компиляторах все еще применяют неуклюжий шаблон Visitor (родом из корпоративной/ООП-культуры разработки) для обхода и трансформаций AST/IR. При этом, опять же, в хорошем учебнике по компиляторам вы «посетителей» не встретите. Вместо них используются функции высших порядков и сопоставление с образцом на деревьях/термах. На эту тему высказывались и Питер Норвиг (https://norvig.com/design-patterns/ ), Мартин Одерски (https://www.artima.com/weblogs/viewpost.jsp?thread=166742 ). В связи с этим приятно, что автор Kotlin думает о том, как переписать компилятор в более изящном, декларативном духе.

Вот здесь я тоже по Visitor прошёлся на пути к паттерн-матчингу писал https://habr.com/post/270173/
Вообще, паттерн-матчингу (ПМ) находится применение довольно быстро… если он есть. Мой самый востребованный сейчас юскейс — ассёрты в тестах. Иногда гораздо проще с ПМ писать, чем кастить результат и доставать необходимое для сравнения.
Аргументы "у нас не будет ПМ" — понятны. В дизайне языка — всё компромиссы. Но вот что интересно было бы услышать — есть ли попытки сделать синтаксис языка таким, чтобы сторонние решения по ПМ было удобно использовать (пусть даже и не так эффективно как будь это встроено в язык).

“Какие у моего велосипеда промышленные аналоги?”
В первую очередь вспоминается LLVM-код: llvm.org/doxygen/PatternMatch_8h_source.html

Вопрос по поводу реализации сопоставления с образцом «из подручных средств» мне тоже весьма близок. Для решения сложных задач внутри компилятора не хватает возможностей и в тех языках, где эта конструкция имеется (да, даже в Haskell). Кстати, в этом смысле любопытно представить, что в идеальном мире разработчики с конца 70-х годов компиляторы пишут на Пролог-подобном языке. Есть совершенно замечательная статья как раз на эту тему:
sovietov.com/tmp/warren1980.pdf

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

И еще отдельная интересная тема — сопоставление на произвольных графах.
Для сопоставления на произвольных графах (и строго, и нет) мне пока хватает простого поиска в ширину. Может что-то интересное и появлялось, давно не следил
Списки когнитивных искажений.

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


Когнитивное искажение формируется чаще всего из-за определённой внутренней компенсаторной потребности: "больно думать" / "больно признать" / "приятно думать" / "приятно думать только о приятном" etc


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


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

Переход от Blame Culture к Compassion Culture не решён — все коллективы успешно невротизированы, ведомы страхом и подчинением, с эмоциональной и вербальной депривацией. Subordinate Satisfaction даже у Google сейчас около 17%, и это считается нормальным повсеместно в Штатах.


Blame на русский прямо не переводиться и состоит из Accusation, Criticism, Punishment и Humiliation. Как раз то что принято у англоговорящих называть токсичным поведением.


когда при этом другие злорадствуют — это очень неприятно

Коллективов нет — есть стада и племена, с стандартными племенными "обычиями" и "ритуалами". Задачи достигнуть поставленной цели общими целями нет в принципе, потому что отношение к работе "мы — не продукт", "мы — не компания", "З/П платят — вот и чудно".


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

«Очень мало кто страдает от того, что нет чистых мейнстримовых языков.»
От этого страдают пользователи, когда программы падают, когда уводят деньги со счета, когда разработчики не могут реализовать нужные фичи.
Только связь не все понимают.
Вы можете привести реальный пример того, как деньги были уведены со счёта из-за недостаточной чистоты языка?
Из-зи арифметического переполнения в Solidity.
Много случаев взлома из-за переполнения буфера в C/C++, но я не знаю, использовались ли они для кражи денег.

Спасибо за интервью.
Приятно изучать практичный и эффективный язык программирования, и вдвойне приятно когда за ним стоит Культура во многих смыслах.

UFO just landed and posted this here
Sign up to leave a comment.