Knowledge for Its Own Sake - The Open-Ended Goal
Edward Nilges writes in a recent blog post about a reviewer of his book Build Your Own .Net Language and Compiler who was put off by what I would describe as Edward's discursive style. As Edward puts it, "Eric agrees with many that my digressions and cultural references get in the way. I am not certain what I shall do about this."
Normally, I would reserve this level of comment on an author's writing to a private communication, or perhaps a formal book review, but since Edward has raised the issue publicly I will respond in kind. Maybe it will lead to some interesting discussion. In my comments I'll set aside discussion of the technical points in Eric's review and Edward's post, and focus only on the writing-related issues raised. Please take my comments as coming from one who is an admirer of Edward's writing, ideas, intellect, and energy.
Edward describes in his post a struggle to balance his desire to acknowledge the wider cultural--and, if you will, "moral"--context of technical matters with his desire to fulfill a "responsibility to the reader." This is a significant struggle to be sure, especially for one such as Edward who (if I may put words in his mouth) feels strongly that technical matters should not be considered as if they existed in a vacuum--like those physics problems you learn in high school in which you are supposed to pretend that things like wind resistance and gravity do not exist. This is one of the thing that sets Edward apart in the world of software development literature.
Is this a bad thing or a good thing? I don't think there's a simple answer to that question.
Most readers who are buying a book, reading a magazine, or perusing a software development web site like this one are in what I call a goal-oriented mindset. There is something specific, technically speaking, that they are searching for. The goal-oriented reader has an implicit expectation of a stick-to-business writing style that limits the content to the important technical facts. If there is too much humor, too much theoretical discussion, or too much background information, the reader's goal to learn specific facts and techniques in order to accomplish specific tasks and goals is thwarted.
There is another mindset that a smaller percentage of readers will have, and that is a state of seeking "knowledge for its own sake." When in this mode (for indeed any given reader may switch easily and frequently between goal-oriented and knownledge-seeking modes, particularly in a slipstream medium like the web) the knowledge-seeking reader will tend to be more open to the unexpected, and to a style such as Edward's, which draws from the entirety of human knowledge, merrily diving down whatever rabbit holes seem interesting.
My point in making this comparison is not to say that one style or "reader mode" is better than the other. It's purely situational. Any judgment would at minimum need to consider the goals of the author (within the scope a particular book, article or essay or within one's career as a Writer). Certainly commercial and marketing concerns come into play also. What I want to get at is that it's a game of goals and expectations--those of the reader, those of the author, and those of the publisher.
Do we as authors have, to use Edward's phrase, a "responsibility to the reader"? I don't like the word "responsibility" in this context, but I will say that an author would to well to ensure that he or she is acutely aware of the reader's expectations (as best as we can divine them), and to do his or her level best to meet or exceed those expectations. (Unless of course one's goal is to confound expectations, blazing a new path whatever the cost.)
A book packaged as a "how to" book and bestowed a title in the imperative case ("Get rock hard abdominal muscles now!") is going to attract a goal-oriented reader with goal-oriented expectations.
On the other hand, the same book packaged in a more ambiguous visual style with a provacative title like An Exploration Compiler Theory and the Morality of Code (Using the .NET Framework) would attract knowledge-seeking and unconventional readers with a set of expectations that put them in position to meet the material halfway. Such readers are also goal-oriented, but with a more open and exploratory set of expectations.
There is little doubt that a book packaged and titled using the second strategy will attract fewer readers. But I say better to have a smaller number of passionate readers than a larger number of readers with confounded expectations.
Please understand that this is not intended as a back-handed criticism of APress's packaging of Build Your Own .NET Language and Compiler. I'm an admirer of APress, and I give Gary and Dan a lot of credit for publishing this book. Few software development book publishers today are willing to take a risk on any kind of material that's not purely how-to/reference. (And, for the record, I like the sort of "hobby kit" idea that the title evokes, which lightly suggests the "knowledge is fun" idea.)
It is difficult in today's landscape of software development publishing (books, magazines, web sites) to find a home for material that is not targeted directly at the goal-oriented technical reader. That's where the advertising dollars are (mostly coming from tool and platform vendors), and that's where the book sales are. This fact is one of the primary reasons for the existence of developer.*, where we're crazy enough to believe that there is an audience of software professionals out there craving knowledge for its own sake, people who do not wish to be viewed primarily as consumers of the latest tools and technologies--people striving to be specializing generalists, who want to know about management techniques even though they are not today a manager, who want to know how Java exception handling works even though they code exclusively in C#.
I'll close by saying that I believe Edward brings an important voice to software development literature, and to developer.*. I hope he will keep publishing his writing here and wherever else he can. Who else is going to tell us about the soul of objects, or about the connections between Derrida and Dijkstra? I like the fact that I often have to consult Wikipedia to fully grasp one of Edward's posts.
(Note to readers: Coming soon: a developer.* article by Edward describing a .NET exception handling strategy, including example code.)
All the best,
Dan
Marketing Me
Ah...but isn't it true that we are pressed on all sides to keep ourselves marketable? It's not just a workplace phenomenon. Just look at the post-divorce pool. Maybe if everyone kept themselves marketable (whether that means fit/witty/pleasant or empowered with cutting edge toolsets) while married/employed, we'd be less likely to get divorced/unemployed. But of course, there are wife-beating husbands, husband-neglecting wives, and downsized employees who say otherwise. Still, if you were staffing your own software development company, you'd understandably look for folks with skills aligned with your needs. The eligible bachelor wants a nice-looking woman. That's humanity.
However, I like to think that we can rise above our mortal petty desires enough to see beyond cookie-cutter, air-brushed model wives and Joe-Corporate-Coders, to appreciate individuals with distinct gifts and abilities. One of those unique talents is the blending of the technical with the philosophical, as Mr. Nilges is known for. Will everyone appreciate it? No. Does that lesson its value? No.
Marketing me
Sure, Donna, we need to upgrade our skills, etc. However, note how frequently we're as employees or as unemployed persons encouraged to put ourselves in another's shoes.
The Christian message of empathy and charity is pressed into serving the entrepreneur. Sure, George Gilder was a pro-capitalist theorist of the 1980s who found Christian elements in the way we cheerfully subordinate our goals to the desires of the entrepreneur, and the entrepreneur in turn serves the customer. By serving everybody else people resolve the paradox of Hobbes and the "war of all against all".
The problem is that Gilder placed too much stress on secular faith in which we sacrifice our role as knowers and trust the entrepreneur to know he needs a C++ programmer.
Gilder and the other capitalist prophets of the 1980s seemed, to me, to have tried to build a free-market heaven on earth in which our self-sacrifice would be rewarded on earth, but the result was that 80% of Americans got significantly poorer and 20% got rich to levels that are now just obscene considered as pure ratios (how many yachts does Paul Allen need?)
The system in "prime" cities where the rich and famous cavort such as San Francisco and Hong Kong acquiring the lineaments of hell, where the "losers" are being punished (at time for such crimes as not being competitive and back-stabbling enough) by the "winners".
"If I were an entrepreneur...". But I'm not, nor am I likely to be.


That is what they don't "get", Dan
A human being is a necessarily integrated unity who wants to know and Do the Right Thing (based on knowledge). Yet on the job we're treated as prematurely shop-soiled second rate commodities who must continually make ourselves "marketable".
In a Jeffersonian America, a man had Lockean title fee simple to a piece of land and as such was a worthy citizen of a res publica who would realize in a land fancied virgin the French ideal of a disinterested Cinncinatus.
In Bush's silly "ownership" society we are somehow expected to megaconsume in order to keep the economy functioning while simultaneously and in a profoundly fuzzy mathematics saving oodles of cash which we invest with sharpies on Wall Street to become only at the end of our life, Jeffersonian citizens worthy of respect.
Which means, as even Warren Buffett knows, that for Most of Us, including Ace Computer Programmers, we will be an invisible sharecropper society.
My spiritual path advises me as Buddha admonished the monks, that because Life is Suffering (o Monks, in Buddha's noble address), I am Powerless over this reality.
But may as well at that juncture, I say (o Monks) be hanged for a sheep as for a lamb, and go to the Devil human, All Too Human.
May as well cultivate one's higher and Buddha nature which being pure glass is coterminous with the highest reality (thou art that). For as Spinoza realized, only the inexhaustible manifold as perceived by our intellectual abilities is, well, inexhaustible and sure not to frustrate or to sate.
Why do programmers like to Code? Because, dammit, they find something that partakes of the inexhaustible Tao, that infinitude which cannot be taken away by Grabby Gumdrops, the expropriator who when he expropriates, necessarily deprives.