
Комментарии 17
это конечно всё очень здорово, но очередной тупик
Если вы хотите реальное приложение сразу для Web / Windows / macOS / Linux / Android / iOS + WebExtension
Которое работает и ощущается как нативное, то вам нужен $mol
Он не создаёт вам ограничения, а даёт возможности, одинаково хорошо подходит как для статичного сайта так и для динамического приложения, и даже игр
О, молы пришли)
1) $mol поддерживает JIT и AOT компиляцию?
2) «Web / Windows / macOS / Linux / Android / iOS ». Можешь показать, где именно в $mol есть нативная поддержка этих платформ, кроме как через обычный WebView/Electron, как у любого веб-фреймворка?
3) Есть список нативных фич, которые $mol даёт на десктопе/мобилке, помимо того, что даёт сам браузер?
4) Тема статьи — Dart и Jaspr. $mol как TypeScript-фреймворк тут при чём? Он внезапно научился компилироваться из Dart или просто решил заехать в любой тред, где слово «веб» встречается?
5) Ты серьёзно считаешь, что собственный DSL, свой формат .view.tree, свой монорепо-тулчейн и специфичный стиль кода — это «не ограничения»? Тогда как по-твоему выглядят ограничения?
6) Про «даже для игр» особенно интересно. Можешь привести пару публичных игр на $mol с нормальной нагрузкой (а не демку на 50 строк) — чтобы увидеть, как это «подходит» на практике?
7) интеграция с C и Rust есть?
8) чем $mol решает именно те задачи, про которые говорит статья про Jaspr — единый язык Dart для фронта и бэка, SSR/SSG на Dart и шаринг бизнес-логики, — кроме как «забудьте про всё это и перепишите на мой любимый TS-фреймворк»?
9) синтаксис из категории "ты себя в зеркало видел? тебе не удастся потеряться в толпе вас там не смущает?
10) $mol в канвас умеет? 120 фпс дает? есть выбор как между jaspr и flutter из хтмл в канвас с сохранением бизнес логики?
о, крутой комент! реально, постараюсь ответить
1 в результате сборки получается бандл как и в других веб фреймворках, там index.html web.js web.css можно глянуть пример тут
2 я делал через tauri тут, нативной поддержки нет, но браузер сейчас может буквально всё, тут действительно любой другой веб-фреймворк может так же
3 да, в мол заложена невероятная гибкость, и адаптивность под все экраны из коробки, это всё еще браузер, но кода будет меньше, гораздо меньше чем у конкурентов. Я так делаю, так как считаю что "мы" незаслужено обходим вниманием лучшее решение на рынке
4 я пришел из рекомендаций гугла, да, я слежу за всем "web" и стараюсь распространять знание о $mol. К сожалению о нем знают очень мало людей
5 .view.tree - это dsl как раз, да, для изучения это барьер, но не сказать что большой
если коротко - любой html элемент это класс $mol_view
про монорепо тулчейн тут немного неккоретно, это репозиторий с компонентами просто, если разделить их на разные репозитории сборка затянется сильно, так как придется делать много git pull
но я веду отдельными репозиториями, мол не ограничивает стиль ведения кода, хоть мульти хоть монорепо, как угодно
на самом деле у страха глаза велики, все так боятся dsl, а ведь это просто еще один ЯП, с небольшим ( около 10 ) кол-вом ключевых знаков, и парой правил
я помогаю с преодолением барьера, через текст понять, гораздо сложнее, я созваниваюсь и бесплатно даю консультации
6 да, конечно, вот, в 3д https://game.hyoo.ru/
7 нет, но в MAM можно добавить, это несложно ( но как связать его с js я сам не знаю, наверное как то можно)
8 на $mol тоже можно писать бэк, есть улучшенный REST - HARP
а так же гипер база, благодаря которой писать бэк вообще не нужно
9 не понял вопроса
10 да конечно, да, более 60 фпс думаю выдаст, какой нить треугольник серпинского без проблем рендерит тут пример не вспомню, можно в чатике @giper_dev узнать, там вроде недавно спрашивали похожий вопрос
есть выбор как между jaspr и flutter из хтмл в канвас с сохранением бизнес логики?
тут как напишите, не вижу проблем так реализовать, это же по сути будет класс с методом экспорта, а метод внутри не сложно поменять
сам класс должен поддерживать свои инварианты ( поведение ) https://www.youtube.com/watch?v=ByBzzsnBnAY - тут про классы и бизнес логику, от Алексея Голобурдина, диджитализируй
спасибо за классный список вопросов
если где то показалось что я выражаю негативную эмоцию то уверяю - показалось!! пожалуйста давайте пообщаемся лично! если это интересно для вас
Отвечу по пунктам, по сути.
По факту ты сам подтвердил, что у $mol нет ни JIT, ни AOT на уровне самого фреймворка — это просто JS-бандл, а JIT/AOT делает движок V8, как и для любого другого веб-фреймворка; это нельзя честно сравнивать с Dart, который реально компилируется AOT в нативный код и работает вне браузера.
Ты честно написал, что нативной поддержки платформ нет и всё решается через Tauri — ровно так же можно упаковать React/Vue/любой другой веб-UI, так что исходный тезис про Web/Windows/macOS/Linux/Android/iOS как фичу именно $mol был маркетинговым преувеличением, а не реальным отличием. И бэк у Tauri - это Rust. А тут фронт, бэк, мобилы - везде один язык - Dart, понимаешь?
На вопрос про нативные фичи ОС ты ответил «адаптивностью» и «меньше кода» — это свойства верстки и архитектуры UI, но они никак не дают доступ к чему-то сверх того, что и так умеет браузер, то есть $mol остаётся обычным веб-UI без дополнительных системных возможностей.
Фраза про «пришёл по рекомендациям гугла и распространяю знания о $mol» прямым текстом показывает, что это прежде всего промо любимого фреймворка, а не ответ по теме статьи про Dart/Jaspr и их конкретные задачи.
DSL
.view.treeи свой тулчейн — это как раз и есть серьёзные ограничения: дополнительный язык, собственный формат, зависимость от одного экосистемного центра и повышенный порог входа; даже если монорепо формально не обязателен, большинство примеров и инструментов завязаны на эту модель, и это объективно сложнее, чем обычный TS/HTML. (GitHub)Ссылка на game.hyoo.ru показывает, что на $mol можно сделать демку-игру, но это одиночный экспериментальный проект с нулём звёзд и минимальной активностью, а не доказательство, что фреймворк «одинаково хорошо подходит» для игр так же, как специализированные движки или даже те же Unity/Godot. (GitHub)
По C/Rust ты прямо сказал «нет, но можно добавить, как связать — сам не знаю», то есть сейчас никакой реальной интеграции нет, а обещание «когда-нибудь можно прикрутить» — это уровень идей, а не фича, сравнимая с официальным FFI у того же Dart.
HARP и «гипер база» — это просто ещё один набор TypeScript-библиотек поверх стандартного JS/Node-мира, они не дают того же эффекта, что единый Dart-стек с общими моделями, типами и null-safety между фронтом и бэком, и не отвечают на вопрос, почему ради этого нужно выкинуть Dart/Jaspr и пересесть на $mol. (harp.hyoo.ru)
Про «синтаксис» имелось в виду, что
.view.treeвыглядит максимально нетипично для веб-мира, и это реальный риск для команды: читать и поддерживать такой код смогут в основном люди, уже глубоко погружённые в $mol, а не обычные фронтендеры с рынка.В ответ на вопрос про canvas ты отвечаешь в стиле «думаю, выдаст больше 60 fps», но по факту $mol — DOM-ориентированный фреймворк без готового сценария «одна бизнес-логика, две официально поддерживаемые реализации (HTML и Canvas)», а значит всё придётся делать руками, как и в любом другом стеке, тогда как у связки Dart+Jaspr+Flutter именно это разделение слоёв и было изначально целью. Кстати изучи вопрос, больше 100fps некоторые функции анимации в чистом жс не дадут по определению.
если где то показалось что я выражаю негативную эмоцию то уверяю - показалось!! пожалуйста давайте пообщаемся лично! если это интересно для вас
Насчет негатива - вообще нет, даже не показалось, я вижу, что ты заинтересованный парень, который верит в свой фреймворк и это хорошо. Мне нравится что ты сектант своего фреймворка, после Дарта, я конечно в сторону мола не посмотрю, тут свои фреймворки, а наоборот, хочу завербовать тебя в секту Дарта, здесь, поверь, очень круто. К тебе у меня тоже негатива нет, наоборот позитивное отношение, а вот негатив в сторону мола со стороны сообщества заслужил джин, закрыв план по негативу на пару-тройку десятков лет)
1 да
2 да, но с оговоркой, на мол можно писать отдельный backend сервис
3 да, но опять же, браузер уже всё умеет
4 тут поинт про одну кодовую базу везде, и тут у веба есть плюс, так как сайт можно сунуть и в tg/vk/max, ну и tauri
5 это всё ещё легче, чем учить новый язык)
6 мол выигрывает за счёт архитектурных решений, я считаю, с играми да, надо ещё много вкладываться, но есть поддержка gsl, можно писать шейдеры и графику, а потом использовать в js
7 прикрутить в сборку не сложно, там будет 1-2 функции в строк 50, тут вопрос целесообразности скорее этого действия
8 harp это улучшенный протокол rest
А вот гипер база это как раз таки общие модели для всех, при этом нам не нужно писать back вообще !
Написал модельки для базы, а данные сами синхронизируются, UI сам обновляется, это просто невероятно круто
Синхронизация без конфликтов ( crdt ) и все данные зашифрованы
9 да не, я за пол часа могу объяснить любому фронту как верстать на view.tree, главное понять что такое mol_view ( любой html element, по умолчанию div )
10 https://life.hyoo.ru есть во такой пример на канвасе
В моле тоже разделение слоёв, UI отдельно, логика отдельно, стили отдельно
Дарт посмотрю как нибудь, изучу
Мне вот просто чем мол нравится, там каждое решение - основано на тех анализе. Из за этого там просто комбо классных архитектурных решений
Например название класса всегда соответствует месту в файловом дереве
Локализация поддержана из коробки
Offline first режим из коробки 1 строчкой подключается для любого приложения без ограничений
Адаптивность встроенная под все экраны, что очень актуально для планшетов и складных телефонов, так как для них приложения выглядят, ну не очень)
Хороший "спор" получился, спасибо
Пишите если остались вопросы, или напишите такие же крутые фишки но со стороны Дарта)
Я не знаком с $mol, но в выборе фреймворка больше руководствуюсь выбором языка, я люблю Дарт, т к тс, или особенно жс - для меня больший тупик.
Как попробовал jasp на новогодних, отлично подходит для сео одностраничников, очень легко получилось подключить scss препроцесор и даже перенести его генерацию в lib, чтобы компоненты на .dart лежали в одной папке с .scss, можно писать стили и внутри dart файла, но scss удобнее будет, а в режиме сср почти полноценная замена next
Дожили, чтобы выдать Hello world - 6 строк кода 😁
Строгая типизация и null-safety. После хаоса в мире JavaScript это как глоток свежего воздуха. Большая часть ошибок отлавливается на этапе компиляции.
А так ли реально много ошибок из-за null в TS, которые как-то по глупости совершаются? Ну то есть шанс некий словить неочевидное из-за пользовательского кода - определенно есть. Но это не похоже на хаос, лишь тонкие эдж-кейсы в редких случаях. Или у вас есть правдоподобная статистика?
Ну смотрите, здесь хорошо было бы выделить что именно мы рассматриваем, JS или TS.
Ну то есть шанс некий словить неочевидное из-за пользовательского кода - определенно есть. Но это не похоже на хаос, лишь тонкие эдж-кейсы в редких случаях.
это про TS, но не про JS.
Я говорил именно про JavaScript-рантайм, где null/undefined-баги до сих пор в топе. TypeScript — это попытка навести там порядок, но он не отменяет проблем JS по умолчанию и далеко не везде используется строго, хотя он значительно лучше в плане предсказуемости результата. (я для себя сравнивал Dart, TS и JS)
+ личный опыт с тех времен когда еще не было TS, а был JS, который еще не был по ES6. Это был поистине ужасный язык.
Ко временам ES3 и ES5 вопросов нет. Но сейчас уже, спустя десятилетие, подлечили все болячки.
Я согласен, что JS сильно вырос, а TS — удобная надстройка над ним, но в итоге он всё равно транслируется в JS, а там сюрпризы не только на уровне типобезопасности, плюс зависимость от конкретных браузеров.
Dart выигрывает у TS там, где нужны более жёсткие гарантии типов и возможность идти в нативный мир, а не только в “удобный слой над JavaScript”.
Очень грустно что попытка сделать DartVM для браузера у гугла завершилась неудачей сечас бы все эти пляски с жабаскриптом были в прошлом
Flutter — для веб приложений, Jaspr — для веб сайтов