Lux: A luxurious package manager for Lua
Lux - новый менеджер пакетов для Lua, позиционируемый как "роскошное" решение для управления зависимостями. Проект разработан сообществом lumen-oss и доступен на GitHub. Хотя подробные технические спецификации в предоставленном тексте отсутствуют, название предполагает фокус на улучшенном пользовательском опыте и возможно расширенных возможностях по сравнению с существующими решениями.
В экосистеме Lua уже существуют менеджеры пакетов как LuaRocks, поэтому Lux, вероятно, стремится предложить альтернативу с уникальными особенностями. Точный набор функций, совместимость и преимущества по сравнению с аналогами остаются неясными без доступа к документации проекта.
Комментарии (27)
- Пользователи обсуждают, что выбор TOML вместо Lua для конфигурации в проекте Lux обусловлен в первую очередь эргономикой и простотой, а не только лишь из-за того, что Cargo использует TOML.
- Участники спора поднимают вопрос о том, что выбор TOML вместо Lua может быть неоправданным, так как Lua лучше подходит для конфигурации, и что выбор TOML может быть вдохновлен Cargo, а не техническими требованиями проекта.
- Некоторые участники высказывают мнение, что использование излишне пафосных эпитетов для описания технических проектов может быть излишне, и что вместо этого следует демонстрировать качества проекта в действии.
- Также обсуждается, что проект вроде Lux не должен позиционировать себя как менеджер пакетов, а как проект-менеджер, и что он не должен быть ограничен только лишь уровнем "сделанности" вместо того, чтобы быть полезным.
Show HN: Halloy – Modern IRC client 🔥 Горячее
Разработчики создали IRC-клиент Halloy в Rust. Проект примечателен тем, что это не просто кроссплатформенный инструмент для чата, но и open-source проект, доступный на GitHub. Вместо стандартного подхода, Halloy предлагает современный интерфейс и функционал, вроде поддержки расширений и тем оформления, что редкость для IRC-клиентов, которые часто застревают в прошлом.
Основная идея — сделать IRC доступным и удобным для современных разработчиков, интегрируя его с современными инструментами. Например, Halloy поддерживает встраивание медиа и интеграцию с сервисами вроде GitHub. Проект набирает популярность, так как сочетает ностальгический протокол IRC с современными практиками разработки.
Комментарии (92)
- Halloy — современный IRC-клиент, написанный на Rust и использующий iced.
- Пользователи отмечают высокую скорость, стабильность и удобство настройки через TOML-файл.
- Поддержка нескольких серверов и каналов, но пока нет вкладок; вместо этого используется буфер-менеджер.
- Проект открытого кода, активно развивается и принимает PR.
- Некоторые пользователи отмечают, что Halloy всё ещё не поддерживает некоторые функции, такие как вкладки, минимизация в трей и полная поддержка экранных читателей.
MAML – A new configuration language
MAML — это минималистичный формат для данных, который сохраняет читаемость для человека и при этом остаётся простым для машинной обработки. Он сочетает лучшее из JSON, дополняя его комментариями, многострочными строками и необязательными запятыми и кавычками.
MAML уже реализован в нескольких языках, включая JavaScript, Python, Rust, C и PHP. Эти реализации находятся на разных стадиях разработки: от готовых к использованию до находящихся в активной разработке.
Проект полностью открыт, с кодом на GitHub, и распространяется по лицензии MIT, что позволяет свободно использовать, модифицировать и распространять его.
Комментарии (145)
- Обсуждение вновь подтвердило, что вместо улучшения JSON/YAML/TOML появляется всё больше новых конфиг-языков, но никто не решает их проблемы с синтаксисом, датами, комментариями и т.д.
- Участники обсуждения отмечают, что большинство этих новых языков не решают фундаментальные проблемы, такие как отсутствие типов данных, дат и комментариев в JSON.
- Некоторые комментаторы подчеркивают, что вместо того, чтобы изобретать новые языки, лучше бы улучшить существующие инструменты, такие как JSON5 или TOML.
- Другие участники поднимают вопрос, что если бы разработчики потратили усилия на улучшение существующих инструментов, вместо создания новых, это было бы более продуктивно.
Configuration files are user interfaces
Файлы конфигурации — это пользовательские интерфейсы. Мы часто сталкиваемся с ситуацией, когда растущее ПО требует настройки, но полноценный графический интерфейс кажется избыточным. Прагматичное решение — текстовый файл конфигурации, который легко версионировать и который оставляет возможность для будущего развития.
Выбор языка для конфигурации — непростая задача. JSON кажется слишком техническим, TOML — слишком минималистичным. И тут возникает соблазн использовать YAML: он приятен глазу и популярен. Однако за кажущейся простотой скрываются pitfalls, как показывает печально известный «документ из ада». Со временем даже небольшой YAML-файл может превратиться в кошмар поддержки.
Корень проблемы не в выборе языка (YAML vs. альтернативы), а в том, что мы недооцениваем конфигурационные файлы как пользовательские интерфейсы. Они должны обеспечивать отличный UX: предотвращать ошибки, вести пользователя к успеху и работать как «велосипед для ума».
Пример реализации такого подхода — проект KSON, который позиционируется как более эффективная альтернатива YAML/JSON/TOML. KSON является верифицированным надмножеством JSON, поддерживает JSON Schema и предлагает инструменты для улучшения работы с конфигурациями.
Комментарии (81)
- Критика KSON за отсутствие чувствительности к пробелам, что может приводить к неочевидным ошибкам парсинга, как в примере с вложенным списком портов.
- Обеспокоенность рисками безопасности из-за единственной реализации на Kotlin и сложностей сборки для других языков, таких как Python и Rust.
- Предложение использовать полноценные языки программирования (например, Python) для конфигурации вместо специализированных форматов, чтобы дать пользователям больше инструментов.
- Аргумент в пользу того, что конфигурационные форматы должны быть выразительными, но ограниченными (как Cue, Starlark или Dhall), а не просто данными, как JSON или YAML.
- Подчёркивание различия между форматами для людей (конфигурация) и для компьютеров (данные), и критика попыток совместить их в одном формате.
- Замечание, что сложная конфигурация часто указывает на проблемы в дизайне ПО, и что лучше предоставить пользовательский интерфейс вместо сложных файлов.
- Упоминание альтернатив, таких как TOML, HJSON, HOCON, KDL и Jsonnet, с различными подходами к простоте, выразительности и проверке типов.