This really gets at the issue with JavaScript in the age of AI: it’s just not a terribly statically verifiable language, and DOM work is incredibly prone to failing silently while the app itself is clearly not working. We’ve had to paper over it with TypeScript and frameworks that impose constraints just to stop several classes of bugs, and even then it doesn’t go terribly well.
The flip side is that AI is making the underlying code more like a..compilation target? At least in the sense that, yes, as this site mentions, Scheme is ugly to read and would be hell to write the old way, but with the new way..maybe we can try because it would give us what native JavaScript and the latest browser standards never could: reliability
I don't understand this, if I'm honest. WebAssembly is the compilation target. It's a Scheme compiler for wasm, right? Why is it pretending to be a way to rewrite websites? Wouldn't that be a job for literally any possible language compiled to WebAssembly?
I read the "Why Scheme?" page and it looked entirely AI generated, inasmuch as the reasoning presented confused me, because it didn't make sense. It references homoiconicity as pretty much the only reason to do this, mentions Lisp once or twice, and then just sort of talks about AI not understanding HTML because it doesn't understand compiling.
But putting it under the prompt of "must pass compiler" makes an AI exactly as capable at the task of making websites as it is capable at the task of making correct programs in any language - which is to say that it can't be guaranteed. Which in turn puts into the question the whole purpose of this project, and particularly, why Scheme chosen at all? Why not Lisp? Why not C? Or Erlang? Or Clojure?
1 Self hosting in browser with hygienic macros
2 handle HTML and CSS like Scheme (Expand with macro)
3 Use S-expr to send / receive message with server
Hoot[1] already exists and does a very good job of running scheme in web assembly. Everything Spritely is working on is pretty cool.
1: https://spritely.institute/hoot/
Hoot is also not a 2 day old vibecoded project.
thx good to know
This really gets at the issue with JavaScript in the age of AI: it’s just not a terribly statically verifiable language, and DOM work is incredibly prone to failing silently while the app itself is clearly not working. We’ve had to paper over it with TypeScript and frameworks that impose constraints just to stop several classes of bugs, and even then it doesn’t go terribly well.
The flip side is that AI is making the underlying code more like a..compilation target? At least in the sense that, yes, as this site mentions, Scheme is ugly to read and would be hell to write the old way, but with the new way..maybe we can try because it would give us what native JavaScript and the latest browser standards never could: reliability
I don't understand this, if I'm honest. WebAssembly is the compilation target. It's a Scheme compiler for wasm, right? Why is it pretending to be a way to rewrite websites? Wouldn't that be a job for literally any possible language compiled to WebAssembly?
I read the "Why Scheme?" page and it looked entirely AI generated, inasmuch as the reasoning presented confused me, because it didn't make sense. It references homoiconicity as pretty much the only reason to do this, mentions Lisp once or twice, and then just sort of talks about AI not understanding HTML because it doesn't understand compiling.
But putting it under the prompt of "must pass compiler" makes an AI exactly as capable at the task of making websites as it is capable at the task of making correct programs in any language - which is to say that it can't be guaranteed. Which in turn puts into the question the whole purpose of this project, and particularly, why Scheme chosen at all? Why not Lisp? Why not C? Or Erlang? Or Clojure?
the syntax-case marco
I tried to edit the Scheme source but it seems to have a bug where every editing action seems to happen a row above of where the cursor is.
same. Chrome on MacOs. But the code can actually compile and run, once you adjust for the cursor positions.
please retry :)
please retry :)
Pretty slick it has Three.js built in. I've not sure I've seen that in a language before in the standard library.
it's standard r6rs scheme
1 Self hosting in browser with hygienic macros 2 handle HTML and CSS like Scheme (Expand with macro) 3 Use S-expr to send / receive message with server