Комментарии 33
Понятно, что без них сейчас никуда, однако когда без них вообще всё не работает — это так себе.
Upd: домашняя страница тоже пустая со включенными скриптами. Без — показывает юзерагент.
Но можно пойти еще дальше и сделать транспиляцию Numl в HTML. Тогда будет работать вообще всё, что может работать без JS.
У меня нет ресурсов на подобные эксперименты. Но я всегда рад контрибьютерам, которые приходят с интересными идеями и помогают их реализовать.
На домашней если нажать сразу на месяц в опере (с разрешенным всем) переключается на ч/б и зависает в этом режиме намертво.
Если уж искать альтернативу, то лучше что-то на Web Components.
С динамическим обновлением у Numl проблем нет.
Интересно, какие проблемы вы решаете пререндерингом?
А что если заказчик попросит переехать на React и придётся искать новый набор библиотек?
А что если заказчик попросит вас переехать с numl на react?
angular поддерживает web components.
Однако, в некоторых простых задачах Numl может заменить JS-фреймворк, если вам нужно динамически менять любые стили или атрибуты на элементах (например, показывать/прятать элемент), а также корректировать надписи.
Numl можно использовать с чистым HTML или с любым популярным фреймворком — Angular, Vue, Svelte, React.
надеюсь, быстрее чем он
Разрабатываю на angular с 2 версии по 10, не сталкивался с проблемами производительности. Думаю в любом фреймворке/библиотеке проблемы производительности из-за прослоек между креслом и монитором.
2. Почему отказались от синтаксиса
shadow:hover[:1]="0"
?+ можно сделать синтаксис:
(shadow="0" size="2rem"):hover[:1]
Я так понял, что речь идет не про альтернативный язык, а про просто библиотеку компонентов.
Мне нравится идея задавать стиль на самом компоненте, но по-сути это тот же самый
style="..."
. Ну погранулярней, ну можно задавать псевдоклассы.КМК, если делать такой ход конем:
<button>
<style>
:self {
box-shadow: 1px;
}
</style>
</button>
Это будет и покрасивее и поудобней. Почему так не стали?
1. Поддержку IDE всегда можно добавить при желании и будет подсвечиваться. Хотя в данном случае я согласен, что реализовать адекватную подсветку будет сложно. В целом синтаксис достаточно понятный и без подсветки. Значения CSS свойств например почти никто не подсвечивает, а там синтаксис ну очень комплексный может быть. И вроде это не вызывает проблем.
2. Во-первых, такое название атрибута не поддерживается спецификацией Custom Elements, я даже не уверен, что ваши примеры это валидный HTML. Во-вторых, такой синтаксис менее очевидный и сложнее мапится на CSS.
Можно рассматривать Numl как библиотеку элементов, но по факту это язык описания семантики + язык описания стилей + фреймворк, который позволяет инжектировать поведения в элементы и даёт им возможность понимать свой контекст. Также тут скорее UI-библиотека, но более правильное название — HTML Framework.
По сути, это ближе к атомарный CSS-фреймворкам вроде Tailwind, только мощнее по возможностям благодаря кодогенерации.
Про кусочек кода:
Я не стал так делать, 1) потому что это обычный CSS со всеми особенностями описанными в статье. 2) это очень длинное и немасштабируемое описание стилей.
Дальше вы делаете очень много утверждений, которые видны только из вашего опыта. Я не знаю, насколько ваш опыт типичен, но де-факто, сейчас уже смотрят на то, как живые люди пишут код. Фреймворки Angular, React, Vue (отчасти) сделаны, смотря на то, как реальные люди пишут много кода в больших компаниях. Я не знаю кто вы и где работаете, но если это ваше мнение построено не на анализе поведения живых людей, то практически без шансов. Конкурировать с одним только ангуляром сегодня чистое самоубийство а их там три с кепкой.
Подход Numl существенно отличается от других CSS-фреймворков и Дизайн-систем. Только время покажет, насколько людям будет удобно с ним работать в реальных проектах. Но по предварительным отзывам у людей очень приятный опыт его использования. Посмотрим, что будет дальше.
Значения CSS свойств например почти никто не подсвечивает, а там синтаксис ну очень комплексный может быть. И вроде это не вызывает проблем.
WebStorm подсвечивает и подсказывает CSS:
Спасибо за картинку. Оказалась очень кстати. Так совпало, что я её увидел в момент когда писал родмап, по своему решению последней проблемы человечества, и в нём она отлично смотрится.
Хотелось бы, конечно, иметь русскую версию документации для проекта, созданного русскоговорящими людьми. Я сам особых проблем с английским не имею, но, если делается упор на русскоязычное коммьюнити, это, имхо, must-have.
Я очень много сил и времени вложил в этот проект, потому что верю в него. Если появится хотя бы пара человек, которые меня в этом поддержат, то появятся и новые фичи и документация на разные языки и много чего еще :)
Вы написали коммерческий проект на своем новом языке разметки, но только вот я попробовал зайти на него с телефона Android 7 браузер Firefox последней версии. Страница с ценами просто не открывается — чистый лист. На главной верстка едет, появляется горизонтальный скролл у страницы. В Edge верстка сайта едет, как будто просто нет стилей. Сайтом не возможно пользоваться.
Исходя из этого возникает вопрос: что это за язык разметки и стилизации, если у него такая низкая совместимость с браузерами?
Как разработчик вы наверно получается огромное количество дофамина от своей работы
Как бизнес вы теряете клиентов и деньги
Как пользователь вы не можете пользоваться продуктом
Я не скрываю и даже подробно упоминаю, что Numl поддерживается только современными вечно-зелёными браузерами, хотя при желании можно добавить поддержку и более старых браузеров вплоть до Edge15.
Конкретно для нашего проекта такой совместимости было достаточно, а поддержка более старых браузеров в любом случае сделало бы разработку значительно дороже, не оправдав кол-во привлёченных пользователей. Поэтому мы экономим свои деньги.
Всегда важно оценивать, подходит конкретный инструмент вам или не подходит. Нам данный инструмент подошел и даже полностью оправдал усилия вложенные в его разработку.
Устройства устаревают, даже без изменений охват устройств на которых работает Numl будет только расти. Его использование на различных в проектах будет становиться более оправданным.
Я конечно не исследовал эту тему досконально, но умозрительно кажется, что большое количество селекторов и классов у элементов могут произвести к падению производительности в отрисовке… не исследовали ли вы эту догадку более глубоко?
Для каждого элемента Numl предварительно генерирует много селекторов, чтобы иметь возможность использовать конкретное CSS-свойство (например, `box-shadow) в нескольких стилях: `border/shadow/inset/mark`. Я надеюсь, что в будущем удастся еще сильнее оптимизировать этот подход.
Касаемо темы, не совсем понял проблематику и как следствие для меня повисло в воздухе и решение.
Не секрет, что индустрия устала от новых технологий, есть предположение, что к любому новому стеку/синтаксису уже будет предвзятое отношение. Исходя из этого, хотелось бы увидеть какие-то сравнения с существующими решениями и доказательства, что Nulm более эффективен. Как он будет выглядеть и вести себя в реальном приложении?
Если же это не цель, то конечно, как творчество, самовыражение и возможная альтернатива, имеет место быть.
Думаю придираться к синтаксису дело не очень благодарное, это вкусовщина, но для меня не совместимость с HTML/CSS является минусом. Это подразумевает более высокий порог вхождения.
В любом случаи, желаю удачи и очень интересно будет понаблюдать за развитием проекта.
По факту, Numl совместим с чистым HTML и CSS, вы можете перемешивать их использование, хоть это и не рекомендуется. Плюс, там, где это возможно, Numl повторяет синтаксис и именование HTML/CSS/ARIA, чтобы разработчик переиспользовал свои знания (в обе стороны). Пилить радикально отличающийся язык было бы неэффективно по многим причинам. Цель Numl сделать возможности CSS более доступными для разработчиков, а не обрезать его, как ИМХО, делают большинство Дизайн-систем.
В конце статьи я привёл ряд ссылок на реальные приложения с открытым кодом. Но, чтобы понять, насколько система удобна, нужен разумеется личный опыт.
Сравнивать Numl с другими фреймворками довольно сложно. В нём много возможностей, которых нет в других фреймворках. Некоторые возможности, такие как привязка стилей к состояниям, работают эффективнее, но это может быть не так очевидно, как хотелось бы. Тем более, чтобы качественно сравнить Numl с тем же Tailwind, нужен человек, который много писал на Tailwind, чтобы мы с ним вместе сели и расписали сильные и слабые стороны и сделали понятную таблицу сравнения.
Только он должен быть как TS для JS, его не должно быть на клиенте в таком виде.
На самом деле, я рассматривал подобный вариант, но его потенциальная сложность меня отпугнула. Сила Numl в том, что он в runtime анализирует атрибуты и их комбинации, выдая корректные стили, независимо от того, в какой момент и кем эти атрибуты были назначены. Это очень важная фича, которой пришлось бы пожертвовать, если бы мы обрабатывали это на сервере.
Возможно в будущем, Numl сможет переползти на сервер и даже мобильные платформы. Посмотрим :)
Numl – Альтернативный язык разметки и стилизации для веб