choose-mithril
sciter-js-sdk
choose-mithril | sciter-js-sdk | |
---|---|---|
4 | 43 | |
46 | 1,632 | |
- | - | |
0.0 | 9.3 | |
almost 5 years ago | about 2 years ago | |
Pawn | ||
MIT License | BSD 3-clause "New" or "Revised" 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.
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.
sciter-js-sdk
-
GameScripter.JS — write games in JS, compile to tiny executable
How tiny is the output? What is the API? (I couldn't find any documentation. I thought maybe it's in the Help menu in the app itself but all I found was this https://i.imgur.com/6puOMIe.png - On that note, what level of JS is supported? As far as I can tell it uses this https://github.com/c-smile/sciter-js-sdk which is based on Fabrice Bellard's QuickJS ) Is there sound?
-
What technologies to use for a desktop app
JavaScript & Electron Sciter!
-
Ultralight VS sciter-js-sdk - a user suggested alternative
2 projects | 4 Apr 2022
- Ask HN: Why aren't there any real alternatives to Electron?
-
Zig Build System Internals
Having normal procedural language for build automation is of course useful. That's for those 10% of cases when "standard" build DSL (make,CMake,etc.) simply do not have facilities.
But the rest of 90% tasks should have compact (easily readable) definitions.
I personally found that Premake5 has quite good balance for these tasks.
Premake files are plain .lua files and due to Lua syntax they are easily readable. And if needed you can call from them procedures defined in again Lua.
So typical project (multiplatform) definition looks pretty readable, for example one project from Sciter SDK:
https://github.com/c-smile/sciter-js-sdk/blob/main/premake5....
-
Alternatives for realtime offline-first JavaScript applications
More details.
-
App Localization in Flutter
That's why in Sciter I've extended JSX with translation meta instruction @:
-
Tauri – Electron alternative written in Rust
Note Tauri is full fledged Client/Server with WebView (client) is running in separate process with RPC between UI process and Rust code (Server).
For the comparison:
Standalone Sciter (scapp.exe, https://github.com/c-smile/sciter-js-sdk/tree/main/bin) takes ~8 MB of RAM (with minimal Cairo and GDI backends).
That's 20 times less than even Tauri.
WebView based solutions are not suitable for applets - small portable desktop applications.
-
Dioxus v0.1 - a new Rust GUI toolkit for Web, Desktop, Mobile, SSR, TUI that emphasizes developer experience [WebView-based rendering]
scapp.exe ( Standalone sciter engine ) takes 45 Mb showing its default "about" document.
-
Sciter, the 5 MB Electron alternative, has switched to JavaScript
It does support , with limited support but still.
See: https://github.com/c-smile/sciter-js-sdk/tree/main/samples/c...
Sciter also supports immediate mode painting on any element (like in DearIMGUI):
element.paintBackground = function(gfx) {
What are some alternatives?
solid - A declarative, efficient, and flexible JavaScript library for building user interfaces. [Moved to: https://github.com/solidui/solid]
tauri - Build smaller, faster, and more secure desktop applications with a web frontend.
eureka - Lucene-based search engine for your source code
chromium - The official GitHub mirror of the Chromium source
lit - Lit is a simple library for building fast, lightweight web components.
vue-native-core - Vue Native is a framework to build cross platform native mobile apps using JavaScript
Svelte - Cybernetically enhanced web apps
react-native-web - Cross-platform React UI packages
react-router - Declarative routing for React
svelte-nodegui - Build performant, native and cross-platform desktop applications with native Svelte + powerful CSS-like styling.🚀
htmx - </> htmx - high power tools for HTML
sciter - Sciter: the Embeddable HTML/CSS/JS engine for modern UI development