Hi all, had this idea whilst watching the March monthly update so feel free to close if it's out of step with the general ideologies of the project.
One possible use for the new LibJS engine would be to build a desktop runtime to allow for the development of native Serenity desktop applications in JS. LibGUI would be exposed to JS programs running in the desktop runtime, allowing these JS applications to leverage Serenity's GUI controls directly; present a consistent look and feel with the Serenity system whilst remaining lightweight. Just to be clear, I'm not advocating for an HTML/CSS Electron-like app development process, but rather just exposing LibGUI in a special JS runtime to allow for development of native Serenity applications with JS, just as is currently possible with C++.
One possible benefit would be developer accessibility. For myself as an example, whilst I'm sure I can certainly become comfortable with C++ given enough time, I am already fairly confident with JS as it currently stands. Providing this environment would also place an impetus behind the development of LibJS, unlocking yet another place in the system where Javascript can be used.
Thoughts?
Hi @nvella! I think JS bindings for LibGUI are inevitable :) I'm sorta figuring out how to build bindings with LibWeb right now. When they start to feel nice & mature (and are mostly generated code instead of hand-written!), it's only logical to start adding bindings for other things.
Lovely :) So excited to see the direction you'll take the system in over the next few months, it seems the project is starting to begin a period of exponential growth
@nvella I started working on (highly experimental) LibJS bindings for LibCore and LibGUI: https://github.com/linusg/libjs-bindings
Just trying how this could work, how code can be generated as much as possible etc. Feedback welcome :)

So cool @linusg! Definitely going to have a play and see if I can implement some more bindings 馃榿
Just found out about this, wow! Will this continue to be updated?
Will this continue to be updated?
This issue - sure, when there's something new to talk about...
libjs-bindings - also yes, but I'm not actively working on it. Compilation breaks every now and then as Serenity and specifically LibJS has no stable API, but that's usually an easy fix. It's an experiment after all and will probably switch to using IDL sooner or later (not before someone builds LibIDL though, the current generator is very much specific to LibWeb).
Also the thing isn't going to write itself, and since you know both JS and C++ you're more than welcome to hack on it or other possible solutions for this issue :^)
Most helpful comment
@nvella I started working on (highly experimental) LibJS bindings for LibCore and LibGUI: https://github.com/linusg/libjs-bindings
Just trying how this could work, how code can be generated as much as possible etc. Feedback welcome :)