Some random thoughts:
1. If I had the same scalability and capacity requirements as the author, I might have chosen a language/environment that I already knew would support what I needed to do, rather than pick a new language with unknown (to me, at the time) and likely-to-change (new versions of Go seem to appear relatively frequently, which I would expect given its relative newness).
2. The main complaints are largely aimed at performance and actual bugs (leaky go-routines) - both of these will affect any new language/environment.
3. I, myself, like Go for reasons that are not explored at all in this critique - they were apparently not as important for the author:
* Type-checking before runtime. This solves almost all bugs I ever write (leaving only the really tough ones ;), before I’ve even run the program. I love that. In general, the other pre-runtime checks on imports and so on are also really helpful, and help me get to the smallest amount of necessary code to have my program working, really really quickly. In most cases, this means I have a running and correctly designed program after “mere” type-checking. I’m amazed by that, but it really seems to work that way for me.
* Simple concurrency which I largely don’t have to personally police (I hate callbacks in callbacks, for example) but which does not require entirely unfamiliar (to me) syntax (e.g. functional programming) to achieve.
* Simplest possible syntax in most places, leading to the simplest possible correct code. I contrast that to Java, say, where I have to write an awful lot of code to get what I want (contrast, say, Go package accessibility rules like upper/lower case vs. the Java private/public/package debacle). This again helps me get running code very quickly without lots of boilerplate or other extraneous stuff.
* A bonus, for me, was discovering how easy it was in Go to marshall/serialize other things like JSON, HTML forms and XML. This has shortened my development cycles with those integrations too.
In summary, the issues mentioned in the slides seem quite valid, but are only a subset of all of the reasons one might choose, or discard, a language/environment. YMMV, basically, so you should choose the right language for the job. Go shows a lot of potential to be that language in a large subset of cases, even if not all.
- johnk