Updates
Latest Tweet
What's New?
Check out for latest innovation, a computer based training video collection
Like this Page
The Art of UNIX Programming Review by Cikkle
Unix is dead
This at least is the overarching message conveyed both directly and incidentally throughout Raymond's book. Unix in the concrete, non-abstraced sense has died and been replaced in practice by Linux and with the former solidly displaced from the market we can apparently begin to take to the bold liberty of refering to Linux interchangably with Unix's name. From the title the book advertises itself to be about Unix but from the opening chapters documenting the history and progression of Unix there is a clear effort to re-cast the decades long history and family tree of Unix operating systems into a footnote to the modern re-implementation in Linux and even the overall open-source movement at large. All of which the various originating UNIX architects solicited for in-line commentary seem to be conspicuously silent about. This is impressively maintained through the rest of the book without any substantial mention of BSD-derived operating systems or OSX beyond the opening of the text. Sadly, for what praises can be offered for this book, it's notable and distracting that Raymond suffers from a stark habit of inserting a number of personal biases and pet causes into his prose, as this book actually does otherwise serve a novel and admirable use in the valuable documentation of history and culture in passing eras of computing and development.
The close-knit communal spirit of timesharing on minicomputers in Bell Labs is seized on as a faint archetype of modern distributed OSS development while Ritchie, Thompson and the rest are curiously painted as disheveled and counter-cultural "hippies" "flipping a finger at the system", never mind these were the same hippies who would stay along for the ride on the side of Ma Bell and SVRx against the Berkeley Academia as the Unix market cannibalized itself in the late 80's. While nonetheless engrossing in its own right, there's some degree of romanticism and embelishment laced in the presentation of Unix history here, and unsurprisingly it tends to err quite clearly on the side of presenting the the earliest days of Unix as a directed progression toward the wider quasi-social movement of collaborative development and open-source software. This kind of disquieting historical reinterpetation and editorialization continues throughout in places both trivial and not: Raymond, for instance, clearly has a low personal opinion of Richard Stallman's attempted infusion of moral context into the realm of Free software development and regrettably manifests this, rightly or wrongly, in the unsubstantiated assertion that Stallman has been popularly marginalized, thereby imposing his personally-held disdain for FSF priniples on OSS developers at large. He can do this, you see, because he is authoring history.
Other varying idiosyncracies crop up: anywhere Perl is mentioned, Python (Eric's personal favorite scripting language) will appear by it's side. Emacs Lisp is inexplicably offered alongside established systems programming and RAD languages as a choice for a general-purpose programming language. And on the topic of Emacs, a partisan argument for rationalizing Emacs's notorious feature creep is presented in the form of describing it as a general extensible scripting framework in harmony with the Unix philosophy of modularity, rather than a conspicuously bloated but still useful text editor. This of course, is accompanied by apparently obligatory potshots taken at vi and Vim. It's less alarming that he'd reasonably arrive at a spirited opinion of this sort of thing than that minor personal convictions and editor war ammunation essays such as these would find their way into a text purporting to immortalize and document the Unix culture for all to refer to.
The less inflammatory parts of the book can laregly be summarized as case studies of the Unix spirit of design, effectively all of which can be distilled at some level as interpretations of the general KISS philosophy, which for the uninitiated basically translate to explicit warnings against overengineering. I'm suspicious of how much of this is simultaneously revelatory and actionable, but I suppose it's easy for ideas like these to be lost in the modern age of professional software development. Moreover, as this book explicitly aims to convey unquantifiable ideas and culture it's difficult to rate the book in terms of the knowledge imparted; it's a sometimes disjointed accumulation of essays on a wide range of topics spanning Unix history, various shell tools, predictable FOSS cheerleading, licenses and languages. And despite the above criticisms, much of the book actually makes for interesting reading despite the author's clear self-insertion into much of the book; it all actually makes for decent light reading even if the overall value is indeterminate.
But to end in the same manner as I believe other reviewers have, it is overall something to be taken with a grain of salt.