There's WebView binding for Nim [NimView](https://github.com/marcomq/nimview), but it still use JS. Why it still use JS?
I'm confused how it works, it says: > Use Nim, Python, C or C++ for your back-end Use any HTML/CSS/JS based UI you > want - Svelte, Vue, React, plain JS etc.. Well, if I'm going to use React/Svelte for my Desktop App UI, why would I need Nim? I get why you may use two languages for **Web App** , because for Multi User Web App the Server Part is huge and Svelte UI + Nim Server with code split like 50% in JS and 50% in Nim (or maybe even much more), using two languages looks reasonable. But for **Desktop App** , business logic usually small, so do you really want to have Svelte UI + Nim Business Logic, with code like 90% in JS and 10% in Nim? Really? You want to bring another language just so you will be able to write those 5-10% of codebase in Nim? **Second question** : I'm wondering why do we need JS at all? We don't need JS, what we need is 1) CSS render 2) minimal DOM API and 3) minimal events. All those provided by WebKit. Isn't it possible to just bypass the JS runtime and modify DOM and register events directly from Nim? (as C handlers, via Nim C interface)? The DOM API and Event Model don't need to adhere to full JS spec, 90% of it could be ignored, only the minimal basics needed, like add/remove/modify DOM nodes and listen to **click** and **keypress** events. So the UI loop may look like: * Nim runtime connected to WebKit directly via C interface. * Your Desktop App code written in Nim invokes Nim DOM API to assemble HTML Tree in WebKit. * Your Desktop App code written in Nim attaches Nim procs, as event handlers to HTML Tree in WebKit. * When event happens, the Nim handler gets called, and it modify HTML Tree by calling Nim DOM API. Is there any such UI kit in Nim?