PS: i'll be publishing Ergo Framework for Rust soon (same actors, same network, fully interoperable peers)
Rust is a very poor compile target as the compiler is slow and not commonly available, and the aspects of Rust that make it good for humans to write make it a poor choice for compilers to target. With humans the produced code is verified, but with a compiler the compiler is what is to be verified, so the inflexibility of Rust are largely a hindrance compared to other native compilation targets.
I really love gleam and its community and I would really really love if gleam could be more like golang though, which can help it in compiling to machine code
gleam language but with the developer experience of golang (cross portability/small binaries/fast compiled language which is fast to compile) is honestly one of my fever dreams and I would love to know if it can ever be a reality!
> cross portability/small binaries/fast compiled language which is fast to compile
You don't need native compilation to build fast single file executables for a program, there's ways one can achieve this with Gleam today. Bundling the BEAM into your Gleam application executable with something like Gleepack is one option, and this will produce smaller executables than Go will by default for many applications.
- server target: BEAM
- client target: js
Once you've covered those bases, you're kind of done.
If the server needs to do something special in an OS process... might as well let the OS mediate that interaction so that it can be fully generic, rather than trying to bend the language around whatever the unknown action might be.
Lisette has been pretty straight forward, with its good Go interrop and familiarity (i have ocaml experience). Tooling is GREAT for such a young language. Im also a huge fan of the recent addition of a "zero" value. No nils like you get in vanilla Go.
I tend to write libraries in Lisette i then import in my go "shell", thats more or less a main function with some setup.
Full (lisette->go->lisette) Go interrop is still a WIP, but im certain it will be improved upon soon.
Some people like to live on the bleeding edge, and once again, that said, the Go runtime is just so good so you have a solid base, and can always eject from lisette by just keeping the generated Go source. That makes it a more safe language to choose.
I'm still not sure if I would rather test out Gala or Lisette or both, I appreciate hearing you've had a positive experience with Lisette!