Hey HN
Borgo is a programming language I've been working on for the past year. It looks like Rust (because I didn't want to write a parser) and compiles to Go.
What I want from a programming language is:
- Sum types
- Pattern matching
- Option/Result types
- Garbage collected
- Concurrency without async
- Good third-party package ecosystem
Borgo is my attempt at filling the gaps in the list above, adding features seen in ML-like languages to Go.
One ambitious goal of this project is to be compatible with existing Go packages. Generating bindings is pretty much automatic (there's an importer tool) and should help massively with adoption. The repo includes bindings to some packages in the stdlib already.
The compiler is in no way complete, but you can definitely build some interesting programs with it.
The online playground runs the compiler as a WASM binary, stitches together the transpiled Go code and sends it off for execution to the official Go playground.
The playground contains quite a few examples and goes more in depth into each feature: https://borgo-lang.github.io/
Would appreciate any feedback! :)
I suppose this is mostly about making Go more expressive. I don't really understand why you wouldn't just use Haskell, OCaml or even Rust, but maybe you have a ton of Go code that you need to play nicely with?