
Show HN: Solid – An Ultra Quick, WC Friendly, Modern JavaScript UI Library - ryansolid
https://github.com/ryansolid/solid
======
ryansolid
Any feedback is very much appreciated. I know no-one is asking for another
JavaScript UI library. But I've built the features and "proven" the
unparalleled performance. No empty promises here. Now I'm at your mercy.

~~~
neurotrace
Looks like a great almost-drop-in replacement for React. Have you performed
any benchmarks for performance against React or other VDOM based libraries?
Have you had any issues with debugging when something goes wrong in a
component?

~~~
ryansolid
Yes I have been very inspired by portions of React and when they announced
Hooks suddenly it converged with what I was already doing. Since then I set
out to bring feature parity even though I had to solve problems completely
differently. Of course there are some pretty big key differences both in
render cycle and how data is passed around.

I've done a number of benchmarks that are linked off the Github page. The most
notable is the JS Framework benchmark. Chrome 73 had a bit of a regression
that slowed down Solid a bit comparatively but it's still right up there. Here
the latest results: [https://krausest.github.io/js-framework-
benchmark/current.ht...](https://krausest.github.io/js-framework-
benchmark/current.html). You should see Solid in the 5th slot around a lot of
reference (basic JS implementations). If you look right you will see ivi the
fastest VDOM library, and if you keep scrolling you will the more popular
libraries.

Debugging is a different beast because the rendering isn't top down and the
library produces native DOM instructions. As some one familiar with the
imperative DOM the lack of abstraction for debugging I feel welcome. I can
literally drop in on el.textContent = state.name or in an effect and see when
updates happen. The compiler writes the updates in such a way that it shows on
the surface in your implementation code rather than deep in the library for
simple updates (reconciliation is buried). This makes most things easy to
access for debugging.

Thank you for the comments I definitely going to spend some time investigating
what debugging experience makes sense for a library like this but still has
familiarity for the VDOM crowd.

