Давно хотел посмотреть на Julia, так как встречал его (её?) упоминание в очень разных и не всегда относящихся напрямую к программированию местах. Пока изучил только документацию и ничего серьёзного на нём не писал (это будет следующим шагом), но уже хочется сказать пару слов. В соответствии с собственными заветами :-D
Изначально я планировал сделать что-то вроде сводной таблицы «плюсы и минусы Julia», но по прочтении документации передумал.
Во-первых, язык достаточно самобытен, имеет множество мелких нюансов, эффекты которых проявляются только эмерджентно, а копировать всю документацию сюда я не планирую.
Во-вторых, такие таблицы уже есть.
Поэтому я ограничусь личными впечатлениями и пересказом его идеологии, как я её вижу.
Раз в несколько лет я нахожу время, чтобы покопаться в наработках сообщества по «продвинутым» проверкам типов. Благо у меня под рукой есть взрослый, большой и нетривиальный проект, на котором можно безбоязненно ставить эксперименты.
Не могу сказать что я разделяю оптимизм по поводу продвинутой типизации в Python. Наоборот, считаю, что это как попытка пришить змее ноги — забавно, но вряд ли удобно. Но раз куча людей тратит на это время, надо быть в курсе.
В этот раз я:
Рассказывать буду тезисно, без глубоких обоснований, так как делать нормального качества обоснования для таких холиварных вопросов слишком долго, а я уже дней 5 на копание в этом потратил.
Большая часть поста не про mypy, а про философию проверки типов и будущее Python. Поэтому должно быть интересно, даже если сам mypy вас не интересует.
Открыл для себя доклады, которые Squirrel Eiserloh делал для математической секции GDC. Очень наглядно и доступно рассказывает о процедурной генерации, случайности и прочей математике.
Доклады:
Доклады о процедурной генерации особенно интересны.
Обновлено: исходники проекта открыты — https://github.com/Tiendil/morphologic
В марте я писал в фейсбуке про софт для «поддержки принятия решений». О том, что не могу найти ничего подходящего.
В итоге я решил, что если гора не идёт к Магомету, то Магомет пишет необходимый софт сам.
На текущий момент у меня есть рабочий прототип, который очень надо проверить на людях.
Софт может пригодиться, если вам необходимо найти решение / выбрать архитектуру / определить лучшее сочетание параметров в сложной и / или слабо формализированной области.Например, вы знаете, что решение может обладать свойствами A, B, C, D, … Z, но не знаете какое сочетание свойств будет оптимальным. При том, что A и D несовместимы, а сочетание свойств B+X+Y выглядит лучше, чем P+Q.
В этом случае вы можете ввести список свойств, ограничения, и поэкспериментировать, меняя правила подбора и оценки решений.
По сути, софт помогает делать полный перебор всех вариантов решений с ограничениями.
На странице софта есть более подробноее описание и инструкция.
Посмотрите пожалуйста. В основном на предмет полезности для вас лично и идей в какую сторону двигать разработку.
Прототип:: https://tiendil.github.io/morphologic/
Группа в телеграм для обсуждения: https://t.me/morphologic_soft
В этом уроке рассказывается, как запрограммировать подземелье. Если вы не программист, вам будет интересно почитать как придумать подземелье.
Несколько вечеров проверял идею генерации космических баз. Космическая база в итоге не получилась, а вот на добротное подземелье результат похож. Поскольку шёл от простого к сложному и никакой суровой магии не делал, то решил переработать код в урок по генерации подземелий на Python.
В итоге у нас получится генератор подземелий со следующими свойствами:
Весь код можно найти на github.
Кода в посте не будет — все используемые подходы легко описываются словами.
Для каждого этапа разработки в репозитории будет создан отдельный тэг, содержащий код на момент завершения этапа.
Задача этого урока не столько научить программировать генераторы подземелий, сколько показать, что кажущиеся сложными вещи на деле довольно просты, если их правильно разбить на подзадачи.