| The question is: what are the alternatives? I was recently modernizing a system administration script, and I ended up rewriting in in Go. And yes, I hated Go's error handling every time. So why Go? Because this was the best available option. I had to talk to AWS, so I needed a language supported by SDK (https://aws.amazon.com/tools/). Existing app was in Python and too slow, so Ruby, PHP, node.js etc.. would not work either. This leaves C++, Go, Java, .NET. We have a lot of C++ code, but the compilation times are very long, and the proper build system is tedious to set up. And I am not willing to start thinking about pointer types unless I have to. Java requires dependencies to run, and is really not suitable for system administration tools given it seems to need JNI for anything slightly advanced. Plus I don't want to write .sh launchers for each my application, nor learn about finer details of memory management. I just don't know anything about .NET -- I've heard that nowadays, you can run it on Linux and don't have to install Visual Studio to develop for it, but I assume I'll be a second-class citizen if I use it like this, and it probably needs runtime anyway. This only leaves Go, so with Go I went. I was impressed with compilation speed, with the vendoring support, and with the fact that I can just "go run" any app without writing any build files. I would love to experiment with D or Zig or some other system-ish languages, but they are just too risky for work stuff... I want something used by hundreds of thousands of people so that all the common bugs are caught and fixed. ---- So, did I chose to use Go because "Google pushing for it so aggressively"? On one hand, Google was not involved in my decision. On the other hand, Google definitely helped Go's adoption when they hired and paid all the Go authors, so that the language started with good stdlib, documentation and examples. |