It is great that Go1.20 improves compile times after generics were added in Go1.18 [1]!

Overall, I think adding generics to Go was a big mistake. It brings the following drawbacks:

- Slower compile times, even if generics aren't used. This slows down development pace in Go.

- The reduced code readability if generics are used. This slows down development pace in Go.

- The increased complexity of Go compiler. This slows down Go compiler development and increases chances for bugs.

- Very low adoption of generics in practice, since they aren't useful in most Go code bases. The generics are actively used in some freaky packages only after the year since they were released in Go1.18.

The only useful thing from Go generics is a syntactic sugar, which allows replacing `interface{}` with `any`.

[1] https://go.dev/doc/go1.20#compiler

You acknowledge in the first sentence that compile times are back in line with Go 1.17 (i.e. pre generics), yet you claim that generics mean slower compile times.

Go1.18 and Go1.19 have slower compile times comparing to Go1.17 even for codebases, which do not use generics. For example, VictoriaMetrics [1] - the project I work on, which is written in Go without generics.

[1] https://github.com/VictoriaMetrics/VictoriaMetrics/