We shipped a very major product (300 person company) on Mithril.js a few years back when React was young and Angular was the go-to in this space. We had a fairly positive experience, but ran into enough problems here and there with vdom rendering bugs that we eventually decided to rewrite the entire product 4 years later in React. Certainly, it did was it was supposed to very well, until we really pushed it to its li…
Alternative lightweight UI library to modern day frameworks
11–20 of 73 posts
Re: Alternative lightweight UI library to modern day frameworks
#12We shipped a very major product (300 person company) on Mithril.js a few years back when React was young and Angular was the go-to in this space. We had a fairly positive experience, but ran into enough problems here and there with vdom rendering bugs that we eventually decided to rewrite the entire product 4 years later in React. Certainly, it did was it was supposed to very well, until we really pushed it to its li…
ten years ago I was writing UIs in Qt, given that comment in ten years I'm confident I'll still be writing UIs in Qt
Re: Alternative lightweight UI library to modern day frameworks
#13If you want to try mithril in a mid-sized project, sure do it, cause it is a nice, free as in freedom library to render vdoms without imposed opinion on how to manage state. But be aware that it has no error handling around view() method and any error thrown from there will irreversibly break mithril internals everywhere on the page, this is by design. Second thing, I didn’t push it to the limit as another commenter,…
Not sure if it’s exactly what you’re looking for, but Vue 3 separates its core into independent modules that you can use outside of Vue if you want to.
Re: Alternative lightweight UI library to modern day frameworks
#14Earlier quoted context omitted.
> but massive vdoms (many tens of thousands of vnodes) are slow to even rebuild and compare Sounds like a terrible user experiance? Would you mind educating me on an appropriate scenario where you may need tens of thousands of vnodes? Maybe large unpaginated tables? A chat panel where you have scrolled through a large history? Even if a framework like React can handle that many nodes, surely there must be better ways…
It was a master-detail “form”, rich-formatted financial records in the left pane and svg-heavy graphs for attributing records to edges on the right. Already heavily filtered on both sides, and required to be navigatable without constantly changing subfilters. Estimating, every left row could consist of 15-20 vnodes and every graph of around 50+ min. I think I’ve seen 12-15k vnodes on average day, depending on how muc…
Re: Alternative lightweight UI library to modern day frameworks
#15We shipped a very major product (300 person company) on Mithril.js a few years back when React was young and Angular was the go-to in this space. We had a fairly positive experience, but ran into enough problems here and there with vdom rendering bugs that we eventually decided to rewrite the entire product 4 years later in React. Certainly, it did was it was supposed to very well, until we really pushed it to its li…
The 1.0 release was a complete rewrite of the previous codebase, and included a very aggressive optimization inspired by inferno.js (called node recycling) that turned out to cause issues in some edge cases and didn't materialize significant enough performance benefits given the added internal complexity. I suspect that this is what was causing you grief.
This optimization has since been removed.
Re: Alternative lightweight UI library to modern day frameworks
#16I currently use Preact and am pretty happy with it, even though it doesn’t check most of those boxes. Is there something that does?
Anyway, Mithril looks nice. I’ve kicked the tires a few times, but comments like the ones here in this thread have prevented me from adopting it.
Re: Alternative lightweight UI library to modern day frameworks
#17Earlier quoted context omitted.
> but massive vdoms (many tens of thousands of vnodes) are slow to even rebuild and compare Sounds like a terrible user experiance? Would you mind educating me on an appropriate scenario where you may need tens of thousands of vnodes? Maybe large unpaginated tables? A chat panel where you have scrolled through a large history? Even if a framework like React can handle that many nodes, surely there must be better ways…
It was a master-detail “form”, rich-formatted financial records in the left pane and svg-heavy graphs for attributing records to edges on the right. Already heavily filtered on both sides, and required to be navigatable without constantly changing subfilters. Estimating, every left row could consist of 15-20 vnodes and every graph of around 50+ min. I think I’ve seen 12-15k vnodes on average day, depending on how muc…
With that said, for mithril specifically, there are a few different techniques that I've heard people use to avoid overly slow diff times:
- design changes (search, filtering, pagination, etc)
- occlusion culling (basically render only list items that are actually visible on screen)
- islands (basically mount a sub-app onto a vnode.dom so that it renders independently without forcing a rerender of the parent app; this takes advantage of the idea that data-down, events-up is a pattern that works across sub-app boundaries)
Re: Alternative lightweight UI library to modern day frameworks
#18I’d like to use a simple front end library that doesn’t use a vdom, doesn’t require a special state system, doesn’t require special compilation, is performant, and largely gets out of my way. I currently use Preact and am pretty happy with it, even though it doesn’t check most of those boxes. Is there something that does? Anyway, Mithril looks nice. I’ve kicked the tires a few times, but comments like the ones here i…
Re: Alternative lightweight UI library to modern day frameworks
#19Re: Alternative lightweight UI library to modern day frameworks
#20I’d like to use a simple front end library that doesn’t use a vdom, doesn’t require a special state system, doesn’t require special compilation, is performant, and largely gets out of my way. I currently use Preact and am pretty happy with it, even though it doesn’t check most of those boxes. Is there something that does? Anyway, Mithril looks nice. I’ve kicked the tires a few times, but comments like the ones here i…
"Alpine.js offers you the reactive and declarative nature of big frameworks like Vue or React at a much lower cost. You get to keep your DOM, and sprinkle in behavior as you see fit... Alpine doesn't use a virtual DOM. This implementation allows Alpine to stay rugged and use the real DOM to work its magic" https://github.com/alpinejs/alpine