Pretty image

Developing software is complicated. This month, as every month, PragPub brings together some bright author/programmers to cut through some of the complexity.

David Copeland is on a campaign to raise the quality of command-line apps. He wants everyone to stop writing scripts and start writing applications. Calling something a script, he says, can be an excuse not to care about writing good code. In “What Makes an Awesome Command-line Application?” he shows how to approach command-line programming with respect.

Jim R. Wilson points out that things have gotten more complicated when it comes to the structure of your application’s data. Do you put all the intelligence about that structure in the application, or in the data store? Today, more often than not, the answer is some combination of the two. And, as Jim details in “Beyond the Bit Bucket,” you have a lot of options.

Josh Carter’s contribution to this issue is called “Effective Emails.” A lightweight article, you figure? Guess again. The various things you need to consider in writing and sending emails in a professional setting are almost as tricky as anything you’ll encounter in writing command-line apps or designing data structures.

Thinking recursively can be tricky until you get the concept. Then it’s simple—until you run into the limitations of pure recursive algorithms and start trying to optimize the code. But if you’re working in Scala, “Recursions and Tail Call Optimization” will ease your mind, because both the language and author Venkat Subramaniam have got your back.

On a lighter note, John Shade shows that privacy may be more complicated than you think.