UNIX Has 2 Vowels… and That’s About It

Edit: Some links no longer work.

Originally posted July 16, 2013 on AIXchange

While reading up on some of the activities surrounding the 25th anniversary of IBM i, I came across this tweet:

“Celebrating 25 years of vowel conservation”

Aaron’s point is that IBM i administrators — going all the way back to the AS/400 days — use precious few vowels on the command line:

            “The AS/400 operating system is consistent in its presentation and names. Commands have names of up to 10 letters. The commands typically take the form of three letters. For example, to work with active jobs, the command is WRKACTJOB. That’s a single word with no spaces. WRK is the AS/400 abbreviation for ‘work’ and ACT is the abbreviation for ‘active.’ Because the AS/400 is consistent in its naming style, after you know some of the abbreviations, you will be able to guess the names of commands.”

As I recently noted, I worked on the AS/400 back when, and I believe that AIX and IBM i pros have much to offer one another. Nevertheless, I have to stick up for AIX here. Look at these common UNIX commands: lsdev, lsattr, lscfg, chdev. Clearly, we’re not wasting vowels, either.In all seriousness, this methodology is pretty standard across all IBM systems. Check out this Tivoli page, for instance:

            “Vowels are often omitted to shorten the name of a command. Commands are named using two conventions, depending on their provenance…

            “Commands that are inherited from the previous versions of Software Distribution are named using the w+verb+object convention, which matches the way you might think of the action. For example, to import a reference model in Change Manager, you use the wimprmod command. To delete a reference model, you use the wdelrmod command.”

In UNIX you’ll find many commands that are or are nearly vowel-free — cp, rm, ls, awk and ln, just to name a few. And of course the UNIX philosophy permeates AIX:

            1. Small is beautiful.
            2. Make each program do one thing well.
            3. Build a prototype as soon as possible.
            4. Choose portability over efficiency.
            5. Store data in flat text files.
            6. Use software leverage to your advantage.
            7. Use shell scripts to increase leverage and portability.
            8. Avoid captive user interfaces.
            9. Make every program a filter.

            Unix is simple. It just takes a genius to understand its simplicity.
            – Dennis Ritchie 

Although I congratulate IBM i admins on their judicious use of vowels over the past 25 years, they’re not alone in this ongoing effort.