Эссе о разработке игр, мышлении и книгах

Минидрама: Python, C, Rust, криптография и Gentoo

Новость с деталями.

  1. Часть кода популярной Python криптобиблиотеки переписали на Rust.
  2. Сломалось CI у кучи людей.
  3. Дополнительно сломалось чегой-то в пакетном менеджере Gentoo.
  4. Изменения незаметили, так как… ну кто следит за криптолибами? Их просто ставят.
  5. Все думали, что cryptography следует semantic versioning, оказалось, что нет :-D

В итоге:

  • Разработчики сказали, что откатывать Rust взад не будут — это более кошерный язык для криптографии, чем C.
  • Gentoo оказалась не так уж и поломана — зависимость оказалась ненужной, но осадочек остался.
  • Люди с CI поплакали, но донастроили что надо было донастроить, и вернулись к своим делам.

Соль драмы в том, Gentoo поддерживает часть архитектур, которые не умеют в Rust. Одновременно Gentoo сильно зависит от Python. В этот раз пуля пролетела мимо, но возникли опасения, что Rust будет всё активнее использоваться к инфраструктуре Python. и в какой-то момент станет необходимой зависимостью. Что в этом случае случится с поддержкой минорных архитектур не ясно.

Далее

Google стал Visionary Sponsor для Python

Новость в блоге PSF.

Не знаю что в PSF понимают под Visionary, но ничего хорошего такое визионерство языку не несёт. Конечно, если оно вообще что-то несёт. Но не вижу смысла продавливать отдельный термин для простого спонсорства — вряд ли PSF сама выбрала такую формулировку.

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

Своим текущим состоянием: идеологией, возможностями, распространённостью Python обязан в первую очередь рядовым пользователям, не Google.

В частности, одно из очевидных противоречий — вопрос гибкости и контролируемости кода.

Далее

Тарантога: модель данных

Постепенно пилю Тарантогу. Дело идёт не быстро: отвлекаюсь то на праздники, то на сторонние эксперименты, то на разбирательства с современными пайплайнами. Но постепенно что-то вырисовывается. Довольно странное :-)

Кстати, я завёл отдельный тег для постов про него.

Так вот, о странном и расскажу — о модели данных. Но без обоснования решений, какие обоснования в прототипе.

Далее

Системное мышление на практике

Спросили, использовал ли я системное мышление в реальной жизни и как оно мне помогло. А вот и не знаю, использовал ли :-)

Конечно знаю: использовал, помогло. Но чтобы ответить подробнее надо больше строк.

Есть несколько нюансов, которые усложняют ответ.

Во-первых, термины «система», «системное» перегружены значениями. Особенно в русском языке. В непрофессиональном контексте они имеют очень широкую трактовку, а профессионалы не горят желанием формализировать понятия. Особенно в рунете. В англоязычной среде дела идут лучше, но я бы не сказал, что на много.

Во-вторых, «системное мышление», «системная инженерия» — это мемплексы — наборы мемов-практик. Если я использую 2 практики из 10 — я использую мемплекс? А если 51 из 100? Кто вообще определяет входит практика в мемплекс или нет?

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

Поэтому отвечу сразу для нескольких контекстов.

Далее

Как я знакомлюсь с историей

История — наука во многом субъективная — каждый трактует её как хочет. Поэтому я стараюсь избегать исторических книг от историков. Особенно от современных. Особенно жизнеописаний. Особенно научно-популярных.

Однако, история — штука интересная и полезная для формирования более-менее объективной картины мира. Либо набиваешь шишки на личном опыте, который ограничен временем жизни и источниками информации, либо изучаешь историю. Можно ещё копать в сторону психологии, антропологии и смежных дисциплин, но там свои нюансы.

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

Когда человек пишет что-то, он, обычно, хочет повлиять на своих современников. Максимум, на ближайших потомков. Поэтому, через 100, 200, 1000 лет после автора, становится намного легче вычленять суть из его текстов:

  • Совершенно точно автор не пытается залезть именно в ваш мозг.
  • Мир сильно изменился и многие авторские искажения видны на контрасте.
  • Контекст, в котором жил автор, известен не хуже, чем современная повестка, а часто — лучше. Это упрощает понимание мыслей и поступков автора.
  • Вклад автора в развитие цивилизации, его место в истории, если не определены точно, то по крайней мере под них размечена область на его полотне.
  • Часто известно зачем именно автор писал свои тексты.

Конечно, не всегда получается придерживаться этого принципа.

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

В остальном же, читать явно пропагандистские Записки Цезаря или наполовину технический судовой журнал Джеймса Кука, о котором будет следующий пост, в плане восприятия информации на много легче, чем книги наших современников. Вы могли обратить внимание, что в их обзорах я периодически жалуюсь на проскальзывание повестки со слабым обоснованием.