@opensas@RyanCarniato@malinajs Browsers and computers have become more productive, if you look at angular-1 (still in the test), it can give not bad result, a few fixes and it could have a result in range angular/react.
Idea based on: DOM is expensive, but JS is cheap, so extra checks usually is not a problem
@opensas@RyanCarniato@malinajs Main: cloneNode for templates, optional synthetic event delegation, (these are similar to Solid), and probably less amount of executed js-code, e.g. Svelte generates context for every item of list for every update, when Malina.js uses natural JS scope, though JS nowadays is fast.
@RyanCarniato If to make a bundle with a bunch of components it'll give smaller size than just a calculation, because every next component consists of similar parts (which are already compressed in first component), so Svelte bundle of 10 components can be in range of 7-15kb instead of 20kb.
@RyanCarniato@kvncnls@mikenikles@solid_js@sveltejs if you have a binding like {company[0].user.name}, it's not needed to check whole object "company", it's enough to compare "company[0].user.name != prevValue" then render it.
deep-checks can be used optionally in some cases, but it doesn't affect perf. of app if do it properly.
@RyanCarniato@kvncnls@mikenikles@solid_js@sveltejs (because it could be affected), so Malina does more checks, but it's lightweigh checks as result it works a little faster than Svelte and less mem-usage (by my testing via js-framework-benchmark).
about deep checks ...
@kvncnls@mikenikles@solid_js@sveltejs Malina.js is slightly simpler than Svelte, e.g. if you want to pass CSS class to a component, or another example - to remove an element from the middle of an array:
Svelte: array = [... array.slice (0, i), ... array.slice (i + 1)]; // taken from SO
Malina.js: array.splice(i, 1);
@evanyou I've made another experiment with Svelte-TodoMVC, I made 4 todomvc components with small changes in each and added them to bundle one by one, so every next todomvc component increases final bundle on 200-400 bytes (brotli), so final bundle grows not so fast. @Rich_Harris