Покопавшись в Julia решил зафиксировать мысли о текущем состоянии популярных языков программирования и их будущем. Без сильной аргументации и очень субъективно.
Раз в несколько лет я нахожу время, чтобы покопаться в наработках сообщества по «продвинутым» проверкам типов. Благо у меня под рукой есть взрослый, большой и нетривиальный проект, на котором можно безбоязненно ставить эксперименты.
Не могу сказать что я разделяю оптимизм по поводу продвинутой типизации в Python. Наоборот, считаю, что это как попытка пришить змее ноги — забавно, но вряд ли удобно. Но раз куча людей тратит на это время, надо быть в курсе.
В этот раз я:
Рассказывать буду тезисно, без глубоких обоснований, так как делать нормального качества обоснования для таких холиварных вопросов слишком долго, а я уже дней 5 на копание в этом потратил.
Большая часть поста не про mypy, а про философию проверки типов и будущее Python. Поэтому должно быть интересно, даже если сам mypy вас не интересует.
В этом уроке рассказывается, как запрограммировать подземелье. Если вы не программист, вам будет интересно почитать как придумать подземелье.
Несколько вечеров проверял идею генерации космических баз. Космическая база в итоге не получилась, а вот на добротное подземелье результат похож. Поскольку шёл от простого к сложному и никакой суровой магии не делал, то решил переработать код в урок по генерации подземелий на Python.
В итоге у нас получится генератор подземелий со следующими свойствами:
Весь код можно найти на github.
Кода в посте не будет — все используемые подходы легко описываются словами.
Для каждого этапа разработки в репозитории будет создан отдельный тэг, содержащий код на момент завершения этапа.
Задача этого урока не столько научить программировать генераторы подземелий, сколько показать, что кажущиеся сложными вещи на деле довольно просты, если их правильно разбить на подзадачи.
И пять лет не прошло (на самом деле прошло), как у меня дошли руки рассказать чем генерируются тексты в Сказке (хабр).
Стастья о python библиотеке для генерации текстов с учётом зависимости слов и их грамматических особенностей.
Github: https://github.com/the-tale/utg PyPi: https://pypi.org/project/UTG/
Написал библиотеку для автоматического импорта модулей в Python. Анализирует код и самостоятельно импортирует что надо. Называется smart imports: pypi, github.
Написал год назад (то есть год уже использую в своих проектах), но написать статью только сейчас руки дошли :-)
Документация пока находится на хабре.