Borgo is a new programming language that compiles to Go.
use fmt enum NetworkState<T> { Loading, Failed(int), Success(T), } struct Response { title: string, duration: int, } fn main() { let res = Response { title: "Hello world", duration: 0, } let state = NetworkState.Success(res) let msg = match state { NetworkState.Loading => "still loading", NetworkState.Failed(code) => fmt.Sprintf("Got error code: %d", code), NetworkState.Success(res) => res.title, } fmt.Println(msg) }
Honestly it’s quite obvious from the code snippet and the diagram but I can spell it out:
Go is a quite nice language but mainly because of its fantastic infrastructure. Compilation is very fast, cross compilation is trivial, it makes static binaries that don’t even depend on glibc (compatibility nightmare on Linux), the module system is great, it even has built in fuzzing support - how many languages have that?
However the language is decidedly meh. It doesn’t have some modern features that make programming much more pleasant. Notably:
let msg
in the example are just so tedious ifmatch
is a statement.So this is basically a do-over of Go but if it had been designed by someone familiar with these modern best practices in language design.