As developers, our day is spent interacting with command line applications in the terminal. Originally these tools were written in C or C++. Of late, there has been a move to languages such as Ruby, Python or Java as a way ease development of these command line applications. This move has come with increased cost to the end users in the form of OS incompatibilities or runtime interpreters that they needed to install.
What if you could get the ease of development without the increased cost? This talk will make the case that Go is a viable replacement for writing these command line tools. It will present real life lessons learned from the rewrite of the Cloud Foundry CLI tool from Ruby to Go. It will also show patterns that the team used to make the tool easy to test and understand from both the UI and the API interaction layers. It will finally show how to cross compile dependency free, statically linked binaries so that you can provide the users of your tool with one standalone binary to run.
If you are tired of sacrificing ease of end use for ease of development in command line tools, this talk is for you.