Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don’t have to answer so many questions about it.
Larry Wall, creator of Perl
Aside from rockin’ an awesome ‘stache, I have a good level of respect for Perl’s first author. The language he created is totally pragmatic and probably holds the Internet together. (Aside: if you’ve ever looked at the Debian installation process, you may have noticed that Perl is used at an incredibly early stage and does some serious lifting. I think that’s really cool.)
Larry’s mindset about laziness motivates me to focus intently on the tool’s that I make. A good tool makes it look like everything is easy and you’re being lazy by using them. So, for command line tools, I have some rules of thumb:
foobar help). If you don’t keep the help docs close to the implementation, you run the risk of getting out of sync. Additionally, documentation should also be accessible from more than just the Internet. I work in an industry that frequently uses private networks that don’t have direct access to the Internet. Without local docs, learning about a product can become a harder task. Lower the barrier of entry for your users whenever possible.
If you factor in some of these tips, you’ll let your users be truly lazy. Your tool will be easier to understand, there will be less for them to remember, and getting the right information would be simple. With an easier tool, users can be lazy and focus on more important things, like grooming an amazing mustache.
If you want to chat about this with me, I'm @mblayman on Twitter.
A release announcement for handroll 1.1
Matt is the lead software engineer at Storybird.
Always eager to talk about Python and other technology topics, Matt organizes Python Frederick in Frederick, Maryland (NW of Washington D.C.) and seeks to grow software skills for people in his community.