What IT People Can Learn From the Unix Philosophy

KEY TAKEAWAYS

With its simple, stripped-down approach, Unix is giving many programmers exactly what they're looking for.

Unix, in all its various forms, has had a profound effect on the computer industry. Although most ordinary users don’t deal with it directly, this operating system powers a good chunk of the Internet and nearly all of the smartphones out there. Programmers love it, and with very good reason. A lot of Unix’s appeal comes from some of the original design decisions its creators made, many of which have lessons for people outside of the world of programming. Unix programmers often adhere to a philosophy of programming emphasizing simplicity and elegance, but you can apply these lessons beyond software development. (Get some background on this OS in What Makes Unix Special?)

Advertisements

Keep It Small

One thing that is surprising to many people who are used to large, monolithic programs is the vast number of small utilities that many Unix and Linux systems come with. There are tools for searching through text, moving files around, viewing files, editing files and others. Most of them are just a few kilobytes, with a few exceptions.

Also, a lot of these programs just don’t have a lot of functionality to them. A text editor, for example, generally won’t have a spell checker. Unix programs are designed to work together and do more than one thing, concepts that will be explained in greater detail later.

Advertisements

According to a common adage, "10 percent of the work solves 90 percent of the problems." In other words, you’re probably better off with a smaller, simpler tool than a complex program with features you probably don’t even use.

Use Text

One thing Unix is famous – or perhaps infamous for – is its heavy reliance on plain text. Although this might seem crude in the era of high-resolution graphics and GUIs, there are some major benefits to this.

Almost all of the system configuration files are kept in plain text. This means that it’s possible for users to view and edit these files (provided they have the right permissions) without special tools. There’s no such thing as the Registry Editor in Unix and Linux versions, because there is no such thing as a registry.

Advertisements

Text is the lowest common denominator for data, which means that any other system will be able to read and write text files. Not only does this allow for easy file exchange, it also "future proofs" data, making sure it can be read by the next generation of machines, and the generation of machines that come after that. Which brings us to …

Don’t Get Too Attached to Any One Platform

Hardware platforms are cool. Software platforms are cool. We get it. But platforms have a lifespan, as many people who still rely on Windows XP are finding out. (Read more in: Why Now’s the Time to Ditch Windows XP.)

Platforms come and go, and if you’re wrapped up in one, it can be painful when you do have to move.

The designers of Unix made a major change when they rewrote the system in C, a high-level language, instead of PDP-7 assembly language. C could run on different hardware platforms, making Unix the first operating system that could be ported to different hardware platforms with relatively few changes.

Contrast this with Unix’s old rival, VMS, which was closely tied to first Digital Equipment Corporation’s VAX line of minicomputers, then the Alpha processor and then finally the Itanium processor. HP, the current owner of DEC’s technologies, has begun finally pulling the plug on VMS.

Unix, in its various forms, is thriving, especially under the various open-source versions, most notably Linux.

Do One Thing Well

Unix programs are designed to do one thing and do it well, rather than try to be everything to everyone. Most Unix programmers prefer to work in a text editor that just edits text, rather than a complex IDE.

Unix programs are designed as filters to do something to a text stream and add nothing else, forming a pipeline.

Those mobile apps running on Unix-powered smartphones? They also do one thing at a time.

Give Your Audience Freedom

The growth of Linux has also popularized what are called the open source and free software movements. If you’re a skilled programmer, you can modify the source code to get what you like. But Unix has always been special in that it gives you the freedom to do whatever you want on a computer, even if you end up shooting yourself in the foot. (Some say that open source is too good to be true. Is it? Find out here.)

Build Things to Work Together

One of the distinctive features of Unix is the ability of shells to redirect the input and output of commands into complex "pipelines." This explains the textual orientation of many Unix programs and why their output is so terse.

Automate, Automate, Automate

Unix also popularized the concept of scripting with the various shells, first the Bourne shell, then the C shell, then Bash. A number of scripting languages have cropped up, including Perl and Python. If you automate the simple tasks, then you’ll have more time to spend doing useful things.

Unix Has Stood the Test of Time

Unix has persevered in one form or another since 1969 simply because the philosophy behind it is irresistible. Even if you’re not a programmer, you can adopt the virtues of simplicity and elegance into any project, whether management, system administration or even in other areas of your life. For a comprehensive look at the Unix philosophy, check out Mike Gancarz’s book "Linux and the Unix Philosophy." It’s full of lessons you can apply to your IT work – and beyond.

Advertisements

Related Terms

Advertisements
David Delony

David Delony is a Bay Area expatriate living in Ashland, Oregon, where he combines his love of words and technology in his career as a freelance writer. He's covered everything from TV commercials to video games. David holds a B.A. in communication from California Sate University, East Bay.