Each week, around 300 blazing-fast, game-changing, full-stack JavaScript frameworks are released into the developer ecosystem. They promise the discerning developer radical new approaches, life-affirming developer experiences, zero-config, maximum-config, all-bells, no-whistles, and the dopamine high of falling in love — over and over and over again.
Do you want to be a hero?
Open source maintainers of the billions of JavaScript frameworks now available for public consumption are worshipped as heroes of a new era, as they lead us boldly into a new landscape of JavaScript — and beyond.
And you're probably asking yourself — "Should I write a new JavaScript framework?"
What's the answer?
The answer to this question is far beyond the scope of this post. Instead, I built a website. This website takes you on an inspiring journey through the essential concepts to consider when building your new JavaScript framework, and gives you the confidence to finally mkdir bestframework.js && cd bestframework.js && git init
.
Top comments (37)
Counterpoint: yes.
Just dont expect it to take off. You'll learn a ton about what's going on under the hood of frameworks in general. And its fun.
Full disclosure: I'm currently writing a new JS framework.
Fair point BUT you can also gain that same knowledge by contributing to an already existing framework under the mentorship of established contributors and as part of a team 😃
You will never learn how to do something really new if you just follow someone else.
Thank you for the inspiration. We need an alternative to React. Something that uses JSX but without hooks. Instead it should use ES6 classes. /s
🤣
JSX is not the best solution, but if you really want it, I recommend trying $mol_jsx, which fixes most JSX problems:
✅ The component automatically tracks external states (not only inner state).
✅ Component parameters are updated without a parent re-render.
✅ Changing the callback does not result in a re-render.
✅ Our hook counterpart can be applied anywhere in the code, even in loops and conditions.
✅ For partial updates, you can create a component that accepts callback.
✅ Stateful components are fully controllable.
Classes don't have good class in JavaScript. 😁
What??
Answer: let company like vercel or netlify burn their VC funding 🤑
I'm currently writing one 😂
don't ask why 😃
It start from me trying to participate in a game jam. Only some UI libs fit the rules so I try to write it myself (along with other whacky_helper.js). Now I got immersed to it and this is the 3rd rewrite 😅. A quick summary: it's a library that combine Reactive Programming and Entity Component System.
In the past there is a gitter chat that discuss Reactive Programming in JS. The author of Solidjs is very active in there. I wonder if there a similar chatroom or new forem for this that still active 🤔
You might find the Reactive Contexts Proposal for JavaScript very interesting.
Over here: github.com/webqit/subscript.
I got on that work to explore the possibility of having reactivity as part of the JavaScript language. You'd realise that we've stretched JavaScript in all directions to speak "reactivity"! Speaking it natively should be all that makes sense now.
Thanks. I only skim the explainer and have 2 question.
await
syntax. All reactive variable will not get tracked afterawait
syntax.References:
Valid questions!
thread()
shouldn't be the best name for that function! I raised the first issue myself here: #5. Funny!Thankfully, that should be only a name change! And it's entirely open to inputs, should you have something in mind! I once used the following
reactive/react
paradigms:That is in hopes that
react()
sounds better, being that what it does is really to let the function react to its external dependencies!Talking about
async/await
... Subscript functions could be async functions...Now, on the above update, the
console.log()
expression only executes after theawait fetch()
expression resolves - as it would normally!Code inside Subscript Functions do not change runtime expectations.
Another way without syntax changing: AutoWire Proposal.
Cheers for the helpful links!
Haha, recently I had thoughts about this exact same thing as well and wrote about it. Doing so, I came across this. The presence of such websites really speaks about the severity of our problem…
Very nice article! You said much more than I did 😅
I expected to be rickrolled and instead, I got a piece of amazing advice instead.
Please feel free to invoice me for your consultancy work 😂
😂😂😂😂😂 Thank you for the best thing I’ve read all week 😂😂😂😂😂
I'm happy to say that I never finished or released the framework I once started to write, because while it would have gone in the same direction, it would never been as good as solid.js, which is now my favorite framework. I did help with the earlier versions of riot.js and wrote a few smaller libraries. In recent months, I wrote a few primitives for solid.js and one of them is already in production code and proven to work better than the alternatives (far smaller, faster, less bug-prone).
Still, I disagree with your sentiment. If you want a learning experience or an interesting hobby, by all means, write a framework or library. Just don't ever release it unless you can reliably prove that it does its job better than most others available on npmjs. And if it's not that good, don't feel bad about it. The best frameworks have grown over years and had the help of many very talented devs. You can't expect to best them so easily. Don't give up, you'll improve over time.
What's the harm in releasing it?
If it's not good, you're basically littering the package ecosystem with a bad package. You're responsible for all the problems arising from that.
Nice
If you can dethrone the big 3 one day go ahead 😄
I've already started, join in!
Hell No, don't create new framework 😁, contribute to existing ones instead if you feel like you can make them better. Js community needs to settle on some standards.
I had wondered why our community would rather celebrate a framework monoculture than encourage making things standard. So, I decided to explore a path with the standards.
For reactivity, here's something I've been working on for a while now - the Reactive Context Proposal for JavaScript - github.com/webqit/subscript
Hoping that that's indeed exciting. 😃
Yes Please 😁
Some comments may only be visible to logged-in visitors. Sign in to view all comments. Some comments have been hidden by the post's author - find out more