I really hope this tech doesn't take off - the web has been so successful _because_ it was declarative and not imperative. Now we're going to be baking in all the subtleties of Chrome and/or Firefox's handling of callbacks in a language that was never really designed to run inside of a layout engine.
Yes, a declarative web API is _far_ harder to get right, but the web community has created an amazing long-term compatibility story. It _should_ be difficult to add things to the web-at-large precisely because it has to live, essentially, forever.
Respectfully, that's a stretch - WebAssembly + (display tech) is a completely different stack in the browser. Houdini is bolting on a bunch of imperative stuff directly inside the browser engine with knock-on effects up and down throughout all of the web umbrella technologies.
With a wasm+web hybrid, there's a clear separation between the imperative wasm bits and the declarative web bits, so you can even combine them in ways that allow both stacks to perform well.
Houdini is not that much different from CSS Shaders.
I don't consider it a stretch, as I see a future where Flash gets its revenge and HTML is only used to import the starting WASM module, like on those Qt WebAssembly demos.
I tried those too... after three seconds of waiting and watching the "Downloading..." message with no app loaded, I felt the same dreadful feeling I used to get when I'd see a Java applet. I'm sure there are some use cases that will benefit from this, but I'm bummed thinking about how much crap is going to be needlessly delivered in a clunky way if we return to that HTML-as-bootloader app paradigm.
Comments
I really hope this tech doesn't take off - the web has been so successful _because_ it was declarative and not imperative. Now we're going to be baking in all the subtleties of Chrome and/or Firefox's handling of callbacks in a language that was never really designed to run inside of a layout engine.
Yes, a declarative web API is _far_ harder to get right, but the web community has created an amazing long-term compatibility story. It _should_ be difficult to add things to the web-at-large precisely because it has to live, essentially, forever.
It already took off.
Even if Houdini fails adoption, WebAssembly + Canvas/WebGL/WebGPU will do it.
https://www.qt.io/qt-examples-for-webassembly
https://platform.uno/
https://blogs.autodesk.com/autocad/autocad-web-app-google-io...
https://dotnet.microsoft.com/apps/aspnet/web-apps/client
Respectfully, that's a stretch - WebAssembly + (display tech) is a completely different stack in the browser. Houdini is bolting on a bunch of imperative stuff directly inside the browser engine with knock-on effects up and down throughout all of the web umbrella technologies.
With a wasm+web hybrid, there's a clear separation between the imperative wasm bits and the declarative web bits, so you can even combine them in ways that allow both stacks to perform well.
Houdini is not that much different from CSS Shaders.
I don't consider it a stretch, as I see a future where Flash gets its revenge and HTML is only used to import the starting WASM module, like on those Qt WebAssembly demos.
CSS shaders, like GL shaders, are declarative programs that look somewhat imperative. The GPU makes the decisions on how to shard/distribute those.
As for your second point, I agree to some degree. I don't necessarily see an issue with it - the two different models make sense in different places.
I tried those too... after three seconds of waiting and watching the "Downloading..." message with no app loaded, I felt the same dreadful feeling I used to get when I'd see a Java applet. I'm sure there are some use cases that will benefit from this, but I'm bummed thinking about how much crap is going to be needlessly delivered in a clunky way if we return to that HTML-as-bootloader app paradigm.
Just like all those SPAs used to display text.
I also worry about the increase in security surface area. A ton of additional C-level operations exposed to JS in all browsers. What could go wrong?
How are these C level operations?
They should make Houdini available to use not just with JS but also with WebAssembly. Then you could use a more fitting language of your own choice.