Comment

Comment by PopsiclePete

I think it's a pretty mediocre language because of the compiler intrinsic data structures and functions like maps and slices that cannot be created by the language proper. It can be verbose and tedious, some of the std lib stuff like "context" ends up "infecting" everything (ala async/await), variable shadowing sucks, still has "nil" instead of something more modern and safe like Rust's Result<T>, etc, etc.

If I had designed this language in a "design a new programming language" college class, I'd probably have gotten a C+ for my efforts at best.

What Go is, is a great tool more than a great language. I like to use it because my output from it is usually reliable, is on time, is light on resources, is easy to deploy, and allows me to get kudos at my job and more $$$. It's wonderful screwdriver for today's screws.

But I don't think it's a great language the way a LISP is a great language, or Smalltalk, or Haskell, or OCaml. It won't really open your eyes to a new way of thinking about problems that you didn't already know from your C days. You still have too much interface{} stuff everywhere, or reflection (which is extremely tedious) or pretty-awful code generation compared to LISP macros.

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton