I wrote this years ago in my old blog. I’m republishing it here, thinking it would be still relevant to share.
I love reading books that could be considered “historical artifacts” in the computer world. They help me understand both previous technologies and how today’s technologies and ideas have been developed. Although many of their contents seem outdated, they contain information that forms the foundations of today’s technologies.
Some of them never lose their relevance. For example, “The UNIX Programming Environment”. This book, written by Brian Kernighan and Rob Pike, explains programming under the UNIX operating system, and much of the information in it remains valid.
Reading such old books also allows some concepts — which are superficially explained or not explained at all in today’s books, as if they have been there from the very beginning— to gain meaning. A very simple example: concepts like EOF, NULL, TRUE, FALSE, etc., may be perceived by someone reading current C books as if such data types have always existed. However, when you look at code examples in an old C or UNIX programming book, you’ll see that these are actually defined using #define and that their values are integer values like 0 and 1. In current C books, when creating a file, the stdio.h file is included, and the fopen() function is called. In the code examples in The UNIX Programming Environment, however, you see that the standard UNIX file creation call, creat(), is used. This helps the reader understand that the fopen() function actually uses system calls like creat(), and that stdio.h is not the essential opening statement in C.
Of course, I could only start acquiring these kinds of old books after moving to the US. While it’s quite difficult to find such books in Turkey, it’s extremely easy to find on eBay. In fact, I’m quite surprised at some of the books I’ve found. For example, the last book I bought was called Programming Under Mach. It describes programming with the Mach kernel, and although the Mach kernel (at least the original) is no longer actively developed, it’s quite surprising that this book is still circulating out there. Another book I was surprised to find was Inside OS/2, written by none other than Gordon Letwin himself.
Apart from these, other very valuable and old books I’ve found include The Design and Implementation of The 4.3BSD UNIX Operating System and Compilers – Principles, Techniques and Tools, known as the “Dragon Book”.
So, do I read all of these as soon as I get them? No. I just buy them when I find them, thinking that it might not always be possible to find these books in the future. Whenever I get the chance, I slowly enjoy reading them.
Leave a Reply