Turning into Command-Line, Turning into Ruby
review of Build Awesome Command-Line Applications with Ruby from David Copeland
I've thrown away Windows XP from my netbook and install Lubuntu Linux on it. I can elaborate another time about why I did so, but important part of the move was "return to command-line". Partly it is the normal way of working if you are on Linux (and it doesn't matter if you have to, or if it is just because of productivity increase), partly I was impressed by rise of new tools, which take the form of mighty command-line suites (starting with git, and going on with heroku, jitsu etc.).
I assume the similar reasons, which are behind my purchase of David Copeland's book, are also behind his motivations to write the book. We are in the important time, when there is no space for mouse on our desks and we need to decide what we want: either we replace mouse with our fat fingers, the direction we are pushed by consumer marketing heavily, or we decide to keep the keyboard as our main device, but then we need to achieve with keyboard much more than today.
While the book is on first view a tutorial, how to write command-line app in Ruby, especially with help of David's own framework, called GLI, on second view it is a wonderful collection of best-practices and recipes for two independent topics:
- understanding, designing and writing mighty command-line applications, addressing all the aspects of the topic, like semantics and naming of commands and switches, documentation and configuration of useful command-line apps and support for pipelining and in general using of your command-line app in the general Unix system of cooperating apps
- developing larger Ruby projects and keeping them under control: book covers the things like standardized folder structure, usage of Bundle tool, way to deal with gems (on consumer as well as on producer end), way to deal with source control and automated tests. Simply, this was a missing book in my Ruby-related library, which would allow me to start.
All together, this means it was a good deal with two books for one price, plus these two themes support each other well.