I have been slowly getting acquainted with the language over the last few months and I really love it. It combines great features from multiple languages into a single one that is perfect for building back-end web apps:
- It is strongly typed, and has sum types like Rust, with very similar syntax, nice error messages, full type inference and first-party LSP implementation for great IDE tooling;
- Unlike Rust, it is a high level language with garbage collection and a sane concurrency mechanism;
- It follows the same concurrency paradigm from Erlang, since it is compiled to it and runs in the BEAM. It is quite performant for I/O stuff, apparently in the same ballpark as Go;
- It can also be compiled to JS either to run either in the back-end or the front-end side, making it possible to build isomorphic web apps if that's your thing.
Iām most excited about the Rust-ish types in a garbage collected language. Aside from the lack of compiling to static binaries, this fills an empty void for me between Go and Rustz