Hopefully that is just how things are in my little bubble (as this survey would indicate). I think Go is really cool and I will continue to lobby to implement some mission-critical systems with it.
Hopefully that is just how things are in my little bubble (as this survey would indicate). I think Go is really cool and I will continue to lobby to implement some mission-critical systems with it.
That has not been my experience. Go is a learner friendly language with plenty of introductions and great, clean examples. If one has a basic familiarity with other languages learning Go is just as easy (or easier) than learning kotlin (python, tcl, java, c#, ...).
For me a bigger hurdle is the lack of some features: no generics is a pain. I would love to use Go for scientific computing, but libraries are not there yet. Writing my own I really miss operator overloading: operator and matrix/function algebras are the only areas where I miss this, but there I miss it badly -- (AB + BA)^2 is so much cleaner than Power(Add(Mult(A, B), Mult(B, A), 2). Writing a simple Kalman gain formula becomes an involved magic incantation.
Just a personal data point.
So it is both easy to learn and intimidating.
To be fair, the issues that you've cited don't seem specific to Go. Static typing is actually being adopted in both Python and JavaScript (via TypeScript), so people who keep up with the trends in those languages now have relevant examples of it.
In any case, it is good to see static typing support among dynamic languages. Hopefully that will help more people try Go. I have yet to find another programming language that makes application development so holistically easy.
C++ solves that with expression templates, which compiles something like ABC from the two step
tmp = AB Result = tmp*C
To the transformation in one traversal. D is also capable of those types of compile time expression evaluation, and is a nice language, but sadly doesn't have a huge following yet.