← Back to context

Comment by Imustaskforhelp

1 day ago

I always wonder about what sort of js engine such projects use since at the end of the day imo, it is all just a dance b/w js engine, html and css. Html & Css feels a little solved problem but the problem is of the js engine.

Sciter uses quickjs and I just checked and its like 35-36x times slower than V8 JIT

Also another interesting rabbit hole is that I found Duktape in the quickjs benchmarks and I saw https://blogcpp.org/ as one of the projects within Duktape but I can't even see the project on github. We really need some better way of preserving open source stuff I guess

> We really need some better way of preserving open source stuff I guess

Not some rando's blog engine in C++, or other kinds of stupid throw-away code

Anyway <https://web.archive.org/web/20241122030659/https://github.co...> -> $(fossil clone https://code.rosaelefanten.org/blogcpp) which takes a stunning amount of time but then reports

    Round-trips: 15   Artifacts sent: 0  received: 2751
    Clone done, wire bytes sent: 4127  received: 124543126  remote: 2a03:4000:34:5e::1
    Rebuilding repository meta-data...
      100.0% complete...
    Extra delta compression... none found
    Vacuuming the database...
    project-id: 40a055cb170ae83c46b4ed9bf3b6a60e6e541aa0
    server-id:  cee9059305219c887fd29c677cbafb372252518a
    admin-user: mdaniel (password is "x2hEAaXUDj")
    opening the new ./blogcpp.fossil repository in directory ./blogcpp...
    3rdparty/ConfigParser/ConfigParser.cpp
    ...
    project-name: BlogC++
    repository:   /home/runner/blogcpp.fossil
    project-code: 40a055cb170ae83c46b4ed9bf3b6a60e6e541aa0
    checkout:     fbea390316bc3aace7de0a9ccdba90ecc1949a10 2024-12-17 22:03:16 UTC
    parent:       9e604d205e7922ef1af87952fe1bebef0cbac336 2022-01-15 02:22:33 UTC
    tags:         trunk
    comment:      fuck you github (user: Cthulhux)
    check-ins:    20

good callout wrt being slower than JIT. ofc for certain applications it's not a showstopper, ie, if you're not using javascript for your MVC but doing more of a progressive enhancement thing.

CSS2 is closer to trivial, but CSS3 is practically a 3D game engine with all of its matrix transforms, transitions, animations, variables - not to mention all the different layout schemes (Sciter blogged about introducing display:flex and display:grid two months ago)

The most interesting part of Sciter to me is that data persistence goes way beyond localStorage (string key: string value) or filesystem API, instead it's DyBase [0][1] behind the scenes, which looks to be a very intriguing style of storing trees of data in the host language's datatype (including whatever classes you define) without mucking about with the leaky abstractions of an ORM.

[0] https://github.com/c-smile/sciter-js-sdk/blob/main/docs/md/s...

[1] http://www.garret.ru/dybase.html