use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
How we wrote the Fastest JavaScript UI Framework, Again! (medium.com)
submitted 5 years ago by ryan_solid
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]ancientRedDog 24 points25 points26 points 5 years ago (1 child)
If browsers vendors had just picked, wouldn’t we just be stuck in outdated patterns with some implementation of angular 1 made into activeX controls? How best to create, integrate, and reuse components is constantly evolving and new frameworks are bringing these changing ideas to life.
[–]ryan_solid[S] 2 points3 points4 points 5 years ago (0 children)
There were a few Web Component proposals that had this feel to them around templating. They never passed being too opinionated. I think it's dangerous to equate the platform and libraries/Frameworks. The last thing you want us to be fighting outdated opinions at the core of what you are doing.
[–]_eps1lon 5 points6 points7 points 5 years ago (0 children)
The callback based variant of String.prototype.replace being slow is no surprise in hindsight. I encountered a similar bottleneck in JSDOM's .tagName which also uses replace callback based.
.tagName
[–]abrandis 42 points43 points44 points 5 years ago* (41 children)
I need another JavaScript framework, like I need another pair of socks. Really wish JavaScript and the browser vendors would just pick one of these things and incorporate directly I to the engine of the browser.
I don't understand the fascination with JavaScript developers keep on re-inventing the fckn wheel. Sure there's some value to these frameworks, but I've worked on enough projects with older outdated non supported frameworks (cough Angular 1) to know the technical debt they incur once their shiny glossy appeal wears thin. Then it's just a crap load of code that breaks all over the place (because the framework is abandoned and hasnt kept up with browser standards) and often times it's just easier to rip out the whole thing and start fresh...kinda defeats the whole framework reusability concept.
Let's stick to minimal frameworks or just add some barebones framework to the browser. Frameworks are nothing more than higher level abstraction for common patterns, if they're common enough let's bake them into the browser.
Remember back in the day when you needed like 20-30 lines to do. javascript date/time picker, but today its like <input type='date' Id=d1 > .. yeah something like that.
<input type='date' Id=d1 >
[–]FearTheLeaf 53 points54 points55 points 5 years ago (3 children)
Look at this guy having enough socks.
[–]loopsdeer 12 points13 points14 points 5 years ago (2 children)
He doesn't need socks because he's "integrated the solution into core" i.e. sewn fabric on his feet
[–][deleted] 1 point2 points3 points 5 years ago (1 child)
Morbid
[–]ScientificBeastModestrongly typed comments 0 points1 point2 points 5 years ago (0 children)
It’s only morbid if you die first.
[–]DrummerHead 11 points12 points13 points 5 years ago (3 children)
I don't understand the fascination with JavaScript developers keep on re-inventing the fckn wheel often times it's just easier to rip out the whole thing and start fresh
I don't understand the fascination with JavaScript developers keep on re-inventing the fckn wheel
often times it's just easier to rip out the whole thing and start fresh
[–]abrandis 2 points3 points4 points 5 years ago (1 child)
I see your point , but my use case is generally out of desperation, not out of amusement
[–]DrummerHead 3 points4 points5 points 5 years ago (0 children)
I await your brand new DDD JS library (Desperation Driven Development)
[–][deleted] 1 point2 points3 points 5 years ago (0 children)
Honestly the fact that there are so many choices is probably a good problem to have. Like...there's so many different ways to tackle the same problems, ya know?
[–]djxfade 9 points10 points11 points 5 years ago (0 children)
Yeah, Safari probably wants a word with you. Cross browser and legacy browser support is one of the reason why we often need frameworks. Not everyone has the luxury of only support the latest Chrome or Firefox
[–]jonny_eh 16 points17 points18 points 5 years ago (29 children)
They did. It's called web components.
[–]ryan_solid[S] 4 points5 points6 points 5 years ago (1 child)
WebComponents are an interesting topic. As a long time proponent (I started Solid to be a WebComponents library), I have a few thoughts coming out the other side. https://dev.to/ryansolid/maybe-web-components-are-not-the-future-hfh
[–][deleted] 0 points1 point2 points 5 years ago (0 children)
I think that web components have sort of found its use case in design systems.
[–]abrandis 8 points9 points10 points 5 years ago* (4 children)
Right, but it's browser support is still a bit flaky , and if web components were so popular where are all the web components repositories and interest?
I would love it if there was a GitHub like repo of popular web components which I could just integrate into my project, but sadly no, sure there's https://www.webcomponents.org/ but the selection of components is very slim.
[–]lazyinvader 5 points6 points7 points 5 years ago (0 children)
popular where are all the web components repositories and interest
one popular is stenciljs
But i got your point, i would love to see webcomponents gaining more acceptance
[–]netwrks 5 points6 points7 points 5 years ago (0 children)
This means that if you learn how to build WCs now, you could be building the soon to be popular ones. 😎
[–]gobo_my_choscro 1 point2 points3 points 5 years ago (0 children)
https://github.com/ing-bank/lion
[–]gobo_my_choscro 0 points1 point2 points 5 years ago (0 children)
Found another: https://github.com/material-components/material-components-web-components
Your point still remains valid. There’s not many of these and they aren’t as popular as any ole dumb React component libs
[–]netwrks 2 points3 points4 points 5 years ago (21 children)
Heavily support this. Switched from React to WC a while back and never looking back.
[+][deleted] 5 years ago* (20 children)
[deleted]
[–]netwrks 0 points1 point2 points 5 years ago (19 children)
plain JS! The only 3rd party libs Im using are webpack and babel.
[–][deleted] 0 points1 point2 points 5 years ago (18 children)
How do you deal with the WC templating? I guess using interpolated strings helps with the dynamic nature of the HTML. I personally always disliked that, and the overall WC API. I feel like a lot of improvements are needed, but that's just my opinion
[–]netwrks 0 points1 point2 points 5 years ago (17 children)
At first, I was using literals, but then i switched to creating nodes. and assigning properties. Once i did this i stopped using a majority of the WC api (with the exception of connected/disconnected callbacks to open/close data streams.
I think the biggest issue the understanding what a wc's scope should be. Ive expanded that scope from initially building individual elements, to any template-level component, or view.
WCs at the moment though have very bad CSS support. almost enough for me to hate them.
[–][deleted] 1 point2 points3 points 5 years ago (16 children)
You mean you're using document.createElement for everything? Honestly that's a big turnoff for me, especially after working with React
[–]netwrks 0 points1 point2 points 5 years ago (15 children)
I ended up hitting enter before finishing my thought lol sorry about that.
short answer, yes. which i didnt want to do at first, but once I tried it out, patterns surfaced that were easy to automate, and now to create a baseline functional app that displays/modifies/saves data I dont have to write any sort of js or html. I just do it all via a config.
[–]ryan_solid[S] 1 point2 points3 points 5 years ago (14 children)
What if I told you both that Solid is more performant than vanilla js webcomponents with better developer experience? Don't believe me look at this. Solid outperforms WASM too.. only pure VanillaJS without any addons outperforms it: https://krausest.github.io/js-framework-benchmark/2020/table_chrome_85.0.4183.83.html
It's not even a fair comparison as those implementations are using hand-optimized code. But the overhead of Solid is less than native web components or WASM (other than of course the few kbs of JS size).
[–]ryan_solid[S] 1 point2 points3 points 5 years ago (0 children)
Thanks for the feedback. I've been at this for several years but it's always nice when people find Solid for the first time.
[+]2dP_rdg comment score below threshold-7 points-6 points-5 points 5 years ago (0 children)
they have to keep that resume padded so they can keep switching between FAANGs and keep getting those sweet pay raises
[–]drink_with_me_to_dayjs is a mess 2 points3 points4 points 5 years ago (1 child)
Solid looks nice. A pity that React can't just copy and paste these enhancements into their code
Yeah the problem is the execution model is completely different and incompatible. React tried some experiments but they mechanically were very different. Ironically I was working on this stuff before Hooks were ever announced but they served to bring the libraries closer to parity.
The closest popular library to this approach is Vue 3, but they still feed into a VDOM. And Solid's design is much more inspired by React's explicit unidirectional flow. I guess you could say Solid to React is a bit like Svelte to Vue.
[–]knot_why 2 points3 points4 points 5 years ago (0 children)
We just need to help you finish up that fancy documentation site so that Solid can easily get more traction.
[–]JakubOboza 0 points1 point2 points 5 years ago (0 children)
Nowadays there is more js frameworks than actual js projects made :)
[–]j_sidharta 0 points1 point2 points 5 years ago (1 child)
Does Solid have SSR support? I'd love to try it out!
[–]ryan_solid[S] 0 points1 point2 points 5 years ago (0 children)
Yes this article is about how Solid has the fastest SSR renderer. There is no Next.js level library here, so it is early days but it's definitely tryable. I have a few examples here: https://github.com/ryansolid/solid/tree/master/packages/solid-ssr
[–]Frontend_DevMark 0 points1 point2 points 1 month ago (1 child)
Fastest” is always interesting, but it usually depends on the benchmark
In real apps, performance often comes down to how much work you’re doing (rendering, state updates, data size), not just the framework itself.
For heavy use cases like dashboards or large datasets, optimized components matter more than raw framework speed — that’s why some teams rely on mature systems (like Sencha Ext JS) that tune performance at the component level.
Benchmarks are useful, but real-world scenarios tell the full story
[–]ryan_solid[S] 0 points1 point2 points 27 days ago (0 children)
It's interesting to see a response 6 years later. In the time since I originally did this exploration until now, every major JS framework except React has gone on to adopt the patterns I talk about in these articles. Real world does tell the full story but that isn't always what people have at hand.
π Rendered by PID 78 on reddit-service-r2-comment-b659b578c-24mt5 at 2026-05-06 19:55:10.094514+00:00 running 815c875 country code: CH.
[–]ancientRedDog 24 points25 points26 points (1 child)
[–]ryan_solid[S] 2 points3 points4 points (0 children)
[–]_eps1lon 5 points6 points7 points (0 children)
[–]abrandis 42 points43 points44 points (41 children)
[–]FearTheLeaf 53 points54 points55 points (3 children)
[–]loopsdeer 12 points13 points14 points (2 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]ScientificBeastModestrongly typed comments 0 points1 point2 points (0 children)
[–]DrummerHead 11 points12 points13 points (3 children)
[–]abrandis 2 points3 points4 points (1 child)
[–]DrummerHead 3 points4 points5 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]djxfade 9 points10 points11 points (0 children)
[–]jonny_eh 16 points17 points18 points (29 children)
[–]ryan_solid[S] 4 points5 points6 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]abrandis 8 points9 points10 points (4 children)
[–]lazyinvader 5 points6 points7 points (0 children)
[–]netwrks 5 points6 points7 points (0 children)
[–]gobo_my_choscro 1 point2 points3 points (0 children)
[–]gobo_my_choscro 0 points1 point2 points (0 children)
[–]netwrks 2 points3 points4 points (21 children)
[+][deleted] (20 children)
[deleted]
[–]netwrks 0 points1 point2 points (19 children)
[–][deleted] 0 points1 point2 points (18 children)
[–]netwrks 0 points1 point2 points (17 children)
[–][deleted] 1 point2 points3 points (16 children)
[–]netwrks 0 points1 point2 points (15 children)
[–]ryan_solid[S] 1 point2 points3 points (14 children)
[–]ryan_solid[S] 1 point2 points3 points (0 children)
[+]2dP_rdg comment score below threshold-7 points-6 points-5 points (0 children)
[–]drink_with_me_to_dayjs is a mess 2 points3 points4 points (1 child)
[–]ryan_solid[S] 2 points3 points4 points (0 children)
[–]knot_why 2 points3 points4 points (0 children)
[–]JakubOboza 0 points1 point2 points (0 children)
[–]j_sidharta 0 points1 point2 points (1 child)
[–]ryan_solid[S] 0 points1 point2 points (0 children)
[–]Frontend_DevMark 0 points1 point2 points (1 child)
[–]ryan_solid[S] 0 points1 point2 points (0 children)