Programming Tips #1
I propose to write a short series on various programming tips I learn as I go through various computer books.
Doug McIlroy, the inventor of UNIX pipes and one of the UNIX greats, said this about the Unix programming philosophy in The Bell System Technical Journal, "Unix Time-Sharing System Forward", 1978:
(i) Make each program do one thing well. To do a new job, start afresh rather than complicate old programs by adding new features.
(ii) Expect the output of every program to become the input to another, as yet unknown program. Don’t clutter output with extraneous information. Avoid stringently coumunar or binary input formats. Don’t insist on interactive input.
(iii) Design and build software, even operating systems, to be tried early, ideally within weeks. Don’t hesitate to throw away the clumsy parts and rebuild them.
(iv) Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you’re finished with them.
Later, he said this in A Quarter Century of Unix, by Peter H. Salus, ISBN 0-201-54777-5).
This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
Posted in Programming, Uncategorized | View Comments