I’ve been playing with Go recently. I like it.
I’d read about Go and watched a few videos about it, but I’d never spent time writing Go in the editor. I use Hugo, a static site generator written in Go to make this site, so I thought it made sense to take the language for a spin.
What I like about Go:
- It’s a small language, which makes it easier to learn.
- It’s fast to execute and fast to compile.
- It’s strongly typed, which saves me from myself.
- The syntax is terse.
- The language is opinionated, so there are good constraints.
What I don’t like as much about Go is its lack of functional paradigms:
- Nascent generics (they’re still experimental)
- No tagged/discriminated unions
- No
map
orfoldl
- Pointers allow mutability and hidden side effects
- Iteration over recursion (recursion is non-performant)
Elm (my favorite language) and Go are dissimilar, but they share some core characteristics. A small language that runs and compiles quickly, while adding new features slowly, is ideal for a hobbyist like me.