-
-
Notifications
You must be signed in to change notification settings - Fork 923
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mithril Framework Adding and Breaking Unnecessarily #2558
Comments
@ycadaner-merkos302 Many of those changes making it React-like were done by Leo Horie himself, the original creator of Mithril. And you can rest assured you're not alone in feeling Mithril is getting too React-like. 🙂
Some of the changes were specifically because the previous design itself was broken. Also, Mithril doesn't release updates that quickly - we move fairly slow. Compare that to React, which in the last four five updates:
Here's the last 5 releases for Mithril:
Couple critically broken, unpublished releases excluded. I also excluded all the other release candidates for brevity. We just had a major release, so that skews things a lot, but we do still move much slower than React does. We also try to be much smaller in code size, as that does have a major impact on startup, and this necessarily means being more judicious on what we do add.
Mithril has always been very oriented towards getting out of the developer's way. My thing is that I've been trying to take that even further, by altering Mithril to continue getting out of people's ways. And in some cases, it means making it more intuitive so you aren't having to think as hard when using it. Ideally, you shouldn't have to fight the framework at all. You're probably just looking at the feature requests and some of the early v3 investigation.
In much of this, I've been noticing survivorship bias at work, with occasional stories of why people stop using Mithril and why people chose to skip Mithril (usually in favor of React), despite being impressed by the framework. Their reasons are as valuable as the regular complaints I normally get with various aspects of Mithril, and are often far more informative of where the issues truly lie. Some things do truly need fixed, but the issues at play are much more in-depth and multi-faceted, and so I have to address them in multiple spots at once. Sometimes, it's as simple as adding a small feature, like Also, about half of these issues I linked to here have a fairly long history of discussion in our Gitter channel, here in our issue tracker, and sometimes elsewhere. Very little of this is even new.
That's not something I've been hearing. Most of those recommendations are people wanting stuff out of a router that not even the most massive of frameworks like Rails, Ember, and Angular offer out of the box, and I'm adding literally the bare minimum (like
Trust me: none of us active or former developers want to turn Mithril into anything React-like. Leo was heavily inspired by React in his v1 rewrite a few years ago, but we've been slowly undoing that ourselves, with even some of the initial rewrite becoming less React-like before it first went stable. I've personally been working on a redesign that captures the simplicity and power of Mithril without nearly the drawbacks of the design hacks that v0.2 suffered with extensively (like I do want to point out that some things one might think are React-isms aren't even React-specific and are just part of the immediate mode tree-patching UI paradigm that virtual DOM libraries and frameworks inhabit. And some are more general than even that. For example:
This is by no means complete (keys for one), but should hopefully give you a better idea of where things differ.
Many "thank you"s! Much appreciated! 🙂 |
BS"D
I am not the only one using mithril. I am not every day on github, but I'm seeing a repeating pattern of fixing what isn't broken.
I am seeing changes to the framework to the router, that before was solid, now the community is saying don't rely on it but use a third party.
A code base doesn't need to change every week or month, and I am seeing lots of changes to things that are not broken or just because we can - or because it's the way React does it... (If we wanted react we wouldn't be here)
It's probably good to create some policy for admitting changes. In general the foundation of the framework is based on keep it simple and bare, and if you need extraordinary additions - use a plugin. A vanilla, fast, and simple framework.
Also, there are times that bugs come up, and unfortunately mithril versions are no longer compatible because features are added on right and on left for single requests that nobody else needs and a scenario that can be tailored to that specific case, and not the framework.
I think it's healthy that most answers are how to make it work in mithril. But the trend has changed to let's change mithril to work for your question.
Mithril is an awesome framework, but if we turn it into Reactthril or vuethril, then it's not mithril anymore.
My immense gratitude to all contributors toward making Mithril better!
The text was updated successfully, but these errors were encountered: