Go has less features than other programming languages…and it was intended that way!
On the first day of the conference, I had the chance to take Mat Ryer’s 8-hour Go workshop. Within the first 15 minutes, he opened with one statement: “Go has less features…on purpose”
Go was designed to take the “good parts” from OOP languages such as C and Java. With less abstractions, the syntax is much easier to read!
- No classes — everything is divided into packages
- No constructors
- Does not support inheritance. (Although this seems like a limitation, this will make code easier to maintain in high-scaling apps. No mutations!)
Go is super opinionated
There are some aspects of Go that are very opinionated. For example, the default linting tool decides exactly where there should be new lines (no more than one additional between function, etc.), automatically formatting brackets, code not executing if you start your curly brace on a new line, and no semicolons. This means code is very readable, easily worked on between teams, and people can easily move between projects and be effective.
Community is Everything