Here is a confession. The first drafts of this issue of De Programmatica Ipsum were written under the name "Structured Programming". Understandably enough, the news of Niklaus Wirth's passing triggered a prompt renaming and the choice of a somewhat narrower focus. However, Pascal's rise in popularity during the 1970s and 1980s cannot be explained unless we elaborate on Structured Programming, and this month's Library book is among the most important ones ever written about the subject.
Last September, we reviewed our first "coffee table book": a precious and unwieldy volume by Taschen called “The Computer”, written by Jens Müller and Julius Wiedemann. At the end of that article, we mentioned another coffee table book, and it is about time we talk about it in detail. This month's Library entry is, then, "Home Computers: 100 Icons that Defined a Digital Generation" by Alex Wiltshire, featuring photographs by John Short, published by MIT Press in 2020.
The news of a software patch uploaded to the Voyager probes reminded me of a 1980 book telling precisely the story of how their journey began 46 years ago. When said book hit the publishing press, Voyager 1 had just finished its flyby of Saturn, a planet which Voyager 2 was about to survey a few months later. Assisted by gravity slingshots, the latter probe would reach Uranus in 1986 and Neptune in 1989. Both Voyagers would cross the Heliopause decades later, one in 2012, and the other in 2018. Against all odds, they are both beeping back to Earth as you read these lines.
It turns out that IBM has an internal policy forbidding employees to write books about the company while they are employed by it. This is the major common point among the three authors of this month's Library article: they were all IBMers at some point, and they all wrote their books after leaving.
As much as the NoSQL pundits would like to make us think otherwise, learning about relational database technologies is still, and hopefully will still be, a staple of computer science education in the years to come. There are quite a few authors considered as references in the field, but without any doubt, the subject of this month's Library article is by far the most prolific of them all.
None of the previous 48 entries in the Library section of this magazine have dealt with what is commonly referred to as a "coffee table book". Today we rectify such omission by showcasing a massive, recent, and by all standards, very desirable book from Taschen, the legendary German publishing house.
The history of the BASIC programming language is, at best, scattered across countless books, a consequence of the disdain and arrogance of generations of programmers who loudly advocated for the dismissal of such a lesser language. Or maybe it is not, and it just so happens that the language was so wildly influential that it is impossible to elaborate on any computer in the past 50 years without coming across the path of a BASIC dialect at some point.
In the twenty-five years since the appearance of the phrase "Open Source", many authors have tried to explain this simple fact: why do software developers willingly and spontaneously collaborate, often on a pro bono basis, to the creation of open-source software? And most importantly, how does this even happen? Many books have been written around this seemingly illogical fact.
One of the saddest realizations of my career in the software industry has been discovering that no "Human Resources" manager I have worked with had heard about "Peopleware: Productive Projects and Teams" by Tom DeMarco and Timothy Lister. Not a single one. I'm not even talking about having read it, but at least knowing of its existence. None. Nothing. Nada.
Most of you are reading this article on a computer running some flavor of Windows, macOS, iOS, Android, or Linux, on your browser of choice–with a large majority using Google Chrome at the time of this writing. If you are serious about software development, it makes sense to understand how those operating systems work, even if your day-to-day bread-winning activity involves only "higher-level" concepts such as HTML, CSS, and JavaScript. The preeminence of web browsers as the de facto operating system for "front end" web developers, means that a lot of knowledge of the actual underlying operating system is lost, and this is a tragedy in itself.