-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature] Swappable renderer #20648
Comments
Starbeam's vanilla renderer would be a good candidate here as well: starbeamjs/starbeam#152 |
Another use case: Terminal UI renderers -- similar to Ink https://github.com/vadimdemedes/ink |
Looks like the place to implement this is in registry.register('renderer:-dom', Renderer); This is called from And that's called from init(properties: object | undefined) {
super.init(properties);
this.buildRegistry();
} And we know application init occurs during boot with the Application class we create in app/app.js/ts. So, we should be able to override the So now it's a question of how much of |
woah, look at all the renderers React has: https://github.com/chentsulin/awesome-react-renderer there is certainly demand for this. |
Based on how much struggle I've been having with the VM latetly:
vendor.js
grows by 52 KB in production minified build in 5.6.0 compared to 5.5.0 #20628And with the lack of ability for folks to iterate on implementing language improvements: emberjs/rfcs#816 (not due to lack of trying, but due to how the VM is hard to work with / maybe has a lot of baggage)
And with the amount of progressing happening on an alternate renderer:
compat todos are done: Ember.js compatibility lifeart/glimmer-next#10 (we'll see tho if it works with ember-modifier, ember-resources, and bigger projects)
faster reactivity technique: Reactivity concept lifeart/glimmer-next#41 (Update-only VM)
looks like this is a list of remaining stuff: Explore lifeart/glimmer-next#3
glimmer-next compared with svelte and ember
https://krausest.github.io/js-framework-benchmark/2024/table_chrome_121.0.6167.85.html#eyJmcmFtZXdvcmtzIjpbImtleWVkL2VtYmVyIiwia2V5ZWQvZ2xpbW1lci0yIiwia2V5ZWQvZ3h0Iiwia2V5ZWQvc3ZlbHRlIl0sImJlbmNobWFya3MiOlsiMDFfcnVuMWsiLCIwMl9yZXBsYWNlMWsiLCIwM191cGRhdGUxMHRoMWtfeDE2IiwiMDRfc2VsZWN0MWsiLCIwNV9zd2FwMWsiLCIwNl9yZW1vdmUtb25lLTFrIiwiMDdfY3JlYXRlMTBrIiwiMDhfY3JlYXRlMWstYWZ0ZXIxa194MiIsIjA5X2NsZWFyMWtfeDgiLCIyMV9yZWFkeS1tZW1vcnkiLCIyMl9ydW4tbWVtb3J5IiwiMjNfdXBkYXRlNS1tZW1vcnkiLCIyNV9ydW4tY2xlYXItbWVtb3J5IiwiMjZfcnVuLTEway1tZW1vcnkiLCIzMV9zdGFydHVwLWNpIiwiMzJfc3RhcnR1cC1idCIsIjMzX3N0YXJ0dXAtbWFpbnRocmVhZGNvc3QiLCIzNF9zdGFydHVwLWludGVyYWN0aXZlIiwiNDFfc2l6ZS11bmNvbXByZXNzZWQiLCI0Ml9zaXplLWNvbXByZXNzZWQiLCI0M19maXJzdC1wYWludCJdLCJkaXNwbGF5TW9kZSI6MX0=
And with the desire to use Starbeam in the future, tho no one is really working on that as I write this
And with how we don't score whell in https://github.com/krausest/js-framework-benchmark (like it or not, this is how we are judged, so we must play the game)
And since we kinda need to migrate away from a pure-JSON representation of the complied templates so that we can explore more expressive syntax (something glimmer-next is already prepared to enable)
And with the ovelwhelming effort it feels like it would take to merge the 3 repos:
(which honestly needs to happen anyway)
I've been wondering if we can work out a minimal public/intimate API for completely swapping out glimmer-vm / runtime such that folks can better experiment with improvements to ember.
As a quickly, barely thought out psuedo API, it could look like this, to support what we have today
which could allow for someone to easily choose to use
glimmer-next
without forking ember-source.Or could allow someone to work on developing a native renderer for iOS and Android.
One may consider that we have a lot to do, and we don't have enough steam to work on anything like this (like a native renderer).
I think we have people who currently aren't contributing as much, but would if they were able to, so we could enhance our parallel efforts -- widen the pipe, so to speak
Note as well, this issue could also be a call-for-help to have someone dedicate a bunch of time to improve the existing glimmer-vm.
The text was updated successfully, but these errors were encountered: