rfcs
choose-mithril
Our great sponsors
rfcs | choose-mithril | |
---|---|---|
17 | 4 | |
793 | 46 | |
0.5% | - | |
9.2 | 0.0 | |
4 days ago | almost 5 years ago | |
Shell | ||
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
rfcs
-
Support for in/inter page linking / scrolling in EmberJS
Navigating to URLs with #hash-targets in them is not supported by most single-page-app frameworks due to the async rendering nature of modern web apps -- the browser can't scroll to a #hash-target on page load / transition because the element hasn't rendered yet. There is an issue about this for Ember here on the RFCs repo.
- 🎉 The JS representation of Template Tag has moved to Final Comment Period! This RFC coincidentally exposes a much nicer runtime compiler API! (so I'm interested in this for my REPL, tutorial, and docs sites)
- Official support for pnpm has moved to Final Comment Period -- soon you won't have to add `--skip-npm` and other dances when wanting to use `pnpm` with Ember.
-
The road from Ember classic to Glimmer components
Ember.js development doesn’t stagnate. Progress is already being made for new improvements to the current component model. The RFC for first-class component templates has been accepted and merged in 2022 and will provide new benefits to Ember users. By first adopting Glimmer components, we’re prepared for what’s coming next.
-
"Why would I use Ember over Vue?" or "Are my impressions of the framework landscape based at all in current fact?"
yeah, I think that's being designed (for runtime).We have build-time efforts / validation already via official typescript support https://github.com/emberjs/rfcs/pull/748 with Glint: https://typed-ember.gitbook.io/glint/
-
[AskJS] What's your opinion about React 18 and do you feel the framework is at the forefront of innovation compared to Vue, Angular, Ember, Meteor, Mithril, Polymer and the others... is it going the right way for you or you would have changed a few things ?
During the 4.x series, we aim to finish the work to officially support TypeScript.
-
TypeScript Features to Avoid
The latest versions of Ember.js (Octane) have built-in decorator support and they're discussed in the RFC:
https://github.com/emberjs/rfcs/blob/master/text/0408-decora...
https://guides.emberjs.com/release/in-depth-topics/native-cl...
-
[oc] svelte-tippy a tippy.js action for svelte with full typescript support!
At ok, legit. that's like a modifier from ember.
-
Real talk: Did I make a mistake choosing Ember for my app?
have you seen: https://github.com/emberjs/rfcs/pull/779? I think that addresses the "where does this come from?" in completion.
-
Vercel Welcomes Rich Harris, Creator of Svelte
What I like about Ember is that it gives a lot of rigid structure that, at least at one point, made it comparatively easy to work on multiple Ember based projects and be productive sooner.
As you've pointed out, a problem with that project is that there's a ton of intimate knowledge for how things work under the hood or why things are the way they are. They also seem to oscillate between opting for simplicity and opting for complexity and magic.
One example would be the latest version of Ember which doesn't even ship with `@ember/render-modifiers` by default despite how everyone will end up installing it anyway because it's necessary; they were talking about providing an alternative based on the actor model, despite modifiers being far easier to understand, somehow they are still wrong:
> Either way, we recommend using these modifiers with caution. They are very useful for quickly bridging the gap between classic components and Glimmer components, but they are still generally an anti-pattern.
https://github.com/emberjs/ember-render-modifiers
Why on earth did they reinvent components and ship them without providing the supposedly correct way of interacting with their lifecycle? You actually have to install a separate add-on to develop a production-ready app with Ember, which completely flies in the face of the idea that you can run `ember new` and have pretty much everything you need.
Strangely (an thankfully), the RFC for the needlessly complicated alternative for lifecycle interaction is effectively stalled:
https://github.com/emberjs/rfcs/pull/567
By their own language, the only official way to interact with component/element lifecycle is an antipattern.
/rant
choose-mithril
- I Prefer Mithril over Angular and React
- Ask HN: Why can't I learn anymore?
-
[AskJS] What's your opinion about React 18 and do you feel the framework is at the forefront of innovation compared to Vue, Angular, Ember, Meteor, Mithril, Polymer and the others... is it going the right way for you or you would have changed a few things ?
Another selling aspect for me is the dirty checks mithril uses and how efficient the redrawing engine runs. While not a Svelte/Mithril comparison, this write up explains some the key goodies of mithril.
-
Alternative lightweight UI library to modern day frameworks
Hi Leo. Thanks for creating Mithril.
Likewise at work I currently have to deal with React and its challenges. I have previously built other applications in Mithril (and still do in my spare time). I much prefer Mithril. But sadly React has so much more mindshare which was persuasive to management despite that. The only plus to that is that I can increasingly see firsthand how better the developer ergonomics are for Mithril over React, and eventually wrote the essay about that linked below.
As an example on libraries and React patterns, the emphasis on Redux for React in particular can rapidly create messy bloated codebases that are hard to maintain. That is due to the accidental complexity in React by its premature optimization of requiring use of setState() on components to queue redraws and then how Redux tries to wrap that to support global state. Mithril by contrast makes it possible for developers to store state however they want by the brilliance of (by default) just assuming any time the user touches the UI (via anything with an added event handler like for a button press) that the UI needs to be rerendered (unless the developer choose otherwise).
Here's a longer list of reasons why I prefer Mithril to React: https://github.com/pdfernhout/choose-mithril "l;dr: Choose Mithril whenever you can for JavaScript UI development because Mithril is overall easier to use, understand, debug, refactor, and maintain than most other JavaScript-based UI systems. That ease of use is due to Mithril's design emphasis on appropriate simplicity – including by leveraging the power of JavaScript to define UIs instead of using an adhoc templating system. Mithril helps you focus on the essential complexity of UI development instead of making you struggle with the accidental complexity introduced by problematically-designed tools. Many popular tools emphasize ease-of-use through looking familiar in a few narrow situations instead of emphasizing overall end-to-end simplicity which -- after a short learning curve for Mithril -- leads to greater overall ease-of-use in most situations."
You rock, Leo!!! Thanks again for making the programming world a better place.
What are some alternatives?
prepack - A JavaScript bundle optimizer.
solid - A declarative, efficient, and flexible JavaScript library for building user interfaces. [Moved to: https://github.com/solidui/solid]
jsx - The JSX specification is a XML-like syntax extension to ECMAScript.
sciter-js-sdk - Sciter.JS - Sciter but with QuickJS on board instead of my TIScript
language-tools - The Svelte Language Server, and official extensions which use it
eureka - Lucene-based search engine for your source code
svelte-native - Svelte controlling native components via Nativescript
lit - Lit is a simple library for building fast, lightweight web components.
react-use - React Hooks — 👍
Svelte - Cybernetically enhanced web apps
denoflare - Develop, test, and deploy Cloudflare Workers with Deno.
react-router - Declarative routing for React