web assembly is a cross operating system virtual machine
And then there is chicken. Chicken started as a DSL I designed as a subset of TCL. It was named tcldsl with roots from picol.go and picol.c but deicded to call it chicken because of the pets and cattle story… and my belief that chickens are better than cattle when you’re already a farmer.
The parser for chicken is only about 500 lines. Then I added some core functions similar to tcl and then I added more predicates as needed like sql, http, xlsx, dovnc and so on. The reason for chicken is that in my line of work capturing the design, configuration as code, and literate programming are all more important than raw bare metal performance. If for some reason golang were no longer in fashion the interpreter could be rewritten in rust, c, or any other language.
write once; execute anywhere golang does
WebAssembly is an interesting choice. There are clearly some benefits… but in my disaster first plan I’ll assume that I’d rather build another interpreter from scratch rather than having to replace all the business logic.