Sciter+Node versus Electron

Electron

As we know Electron.js is built of Chromium and Node.js. Where Chromium is a full scale Web browser that even uses its own, independent JavaScript engine.

Therefore each Electron.js application is essentially a separate Web browser and Web server installed on your machine – as many Electron applications you are running – as many browsers and servers you have in your RAM. Yet each Electron application runs at least three separate processes on your machine.  

But what if to replace Chromium in Electron by Sciter?

To answer this I’ve created very basic Sciter as NodeJs native module.

In order to get some stats I’ve compared Microsoft Visual Code, as typical Electron.Js application, with the “IDE” sample from Sciter’s SDK that has similar UI structure:

sciter.node – Sciter IDE demo

Here are some numbers for you to consider:

 Sciter+NodeElectron
Distribution size (zip)12mb60mb5 times smaller
Size on disk15mb90mb6 times smaller
RAM consumption50mb318mb6 times less
N of processes188 times less
Startup time34ms670ms12 times less

I think the numbers are at least motivating.

Ideal Sciter / Node integration model

Sciter is made of the following modules: HTML, CSS, Graphics, Script compiler and VM, libUV and script runtime.

And NodeJs is essentially V8 script engine, libUV plus script runtime. 

So ideally sciter.node is just HTML, CSS, Graphics modules of Sciter compiled into NodeJs statically – it will use JavaScript instead of Sciter’s Script and common libUV. But that will be not Sciter nor NodeJs but something else at the end.

9 Replies to “Sciter+Node versus Electron”

    1. Also, if it takes 90 mb for one application, how many such applications can you run at once?

      Also apply the same logic to when the usage is 1gb per application. That makes us think.

  1. I like the idea a lot.. the resources consumption comparison tho’ it doesn’t come close to being fair.. a simple Hello World would’ve been better.

    1. It is fair in the sense that 80% (YMMV) of Electron features is not used by any given application. Why do you need WebGL implementation to be present in the code of your text editor? Compare Sublime with Visual Code. Sublime also uses it’s own DOM + script for plugins but it takes 30mb of RAM versus 300mb in case of Visual Code.

      If to compare pure Sciter solutions then https://html-notepad.com versus https://typora.io/ – both are capable of Markdown editing. Typora is an Electron application. Ratios are the same – Typora consumption metrics are 5-6 times larger than they should.

  2. Hi Andrew,

    thanks for sharing, and good luck with this project!

    I’ve been thinking about using Node.js and Sciter UI after participating in a similar project Thorium. Unfortunately that project was experemintal and had no further development.

    As a former HTMLayout user, I would happy to help you anything related to V8 and Node.js naitve addons. I’ve been using embedded V8 this way since 2011 in various projects.

  3. that’s amazing…really.
    im wondering if u could do a variant with whitespace-sensitive syntax throughout (script, html, css) similar to coffeescript (or the icedcoffescript) and jade for css? or even better, a totally new language that is a cross between your script and erlang but still no end-of-the-line punctuations. that would be very nice, indeed. hopefully.

Leave a Reply

Your email address will not be published. Required fields are marked *

seventeen + 18 =