But more seriously, I wrote a bit about the why in https://github.com/rach/pome#why-building-pome
To keep with the simplicity that I was aiming, I wanted a binary. I considered Rust, Haskell or Go (Swift was not opensource yet at the time) but went with Go because the libs that I will need (cron like scheduler, embedding assets, etc).
I had never written something in Go before but if I've known go then maybe I would have pick an other language as I started this project with a learning motivation.
Haskell has a cron like scheduler. What do you mean by embedding assets?
Java and C# do have AOT compilers to native code, capable of producing static executables, you just need to buy them.
[1] http://www.hanselman.com/blog/ExploringTheNewNETDotnetComman...
It hasn't yet been removed from GCC due to the set of unit tests it provides.
Deploying Go apps is not always easy from my experience(cross compiling for Android ARM). You need to cross compile Go source code for the target platform and it's not as simple as you hear from Go's tutorials on the internet. Most of them only demonstrate how to cross compile a small simple Hello World application. For actual app, you have dependencies from third parties and it's not always easy to cross compile with those deps especially when they rely on low level APIs(cgo).