Tuesday, September 06, 2016

Blast from the Past: I Don't Like Your Examples!

Originally written in 2000, I thought you might like to check this out in 2016. 

I Don't Like Your Examples!


I have been writing books about the Oracle PL/SQL programming language for the last five years. In 1999, O'Reilly published my fourth book, Oracle PL/SQL Programming Guide to Oracle8i Features, which created a bit of an uproar among my readership, caused considerable discussion within O'Reilly, and led to my writing this article.

Why did this book cause a sensation? Consider this excerpt from Chapter 2:
Let's look at a simple example. Suppose you are responsible for building a database to keep track of war criminals for the International Court of Justice. You create a package called wcpkg to keep track of alleged war criminals. One of the programs in the package registers a new criminal. You want that register program to always save its changes, even if the calling program hasn't yet issued a COMMIT. These characters are, after all, fairly slippery and you don't want them to get away. 
The package specification holds no surprises; the transaction type is not evident here:
    ...     PROCEDURE register (
        culprit IN VARCHAR2, event IN VARCHAR2);
END wcpkg;
The package body, however, contains that new and wonderful pragma:

    PROCEDURE register (
        culprit IN VARCHAR2, event IN VARCHAR2)
        INSERT INTO war_criminal (name, activity)
            VALUES (culprit, event);
END wcpkg;
And now when I call wcpkg.register, I am assured that my changes have been duly recorded:

wcpkg.register ('Kissinger', 'Secret Bombing of Cambodia');
Now, I expect it's not every day you pick up a technology text and read that Henry Kissinger is a war criminal for the secret bombing of Cambodia. The examples I used in this book, in fact, were dramatically different from my earlier texts--and from just about any technology book you can buy. Here are some of the other topics I incorporated into my text:
  • Excessive CEO compensation--and excessive, destructive layoffs
  • Union-busting activities
  • Positive role of unions in society
  • Police brutality
  • NATO bombing of civilian targets in Serbia
  • Managed Care
  • National Rifle Association and gun control
  • The for-profit prison industry
  • Slashing social programs to finance tax cuts
I did give my readers ample warning. Here is a section from the preface titled "About the Examples."
"I've been writing intensively about PL/SQL since 1994, and I have a great time doing it. At the same time, I must admit that I have simultaneously grown a little bit bored with using the same set of examples again and again (yes, those infamous emp/employee and dept/department tables), and I'm also very concerned about the state of the world as we approach the end of the twentieth century. Sure, things could be worse, but things could be a whole lot better (with my examples and the world). 
"Given these twin preoccupations, I have decided to offer examples that are decidedly different from the usual. I'll be talking about topics ranging from the state of health care in the United States to the strength of the gun lobby, from wage structures to environmental issues. I believe that even if you don't agree with the positions I have on a particular issue, you will find that this "breath of fresh air" approach will help you engage with the technical material. 
"I would also be very happy to hear from you--whether you agree or disagree!--and I encourage you to visit my Web site, at www.StevenFeuerstein.com, where you can read more about my life and viewpoints and can get in touch."
How Fresh Is That Air?

Though I thought these examples would be a "breath of fresh air," some of my readers felt that the air stank. Here are some typical responses:
Dear Mr. Feuerstein, 
I, thankfully before buying the book, was able to peruse a copy of your latest PL/SQL programming book. I think you have forgotten one basic principle when you planned the examples. This was supposed to be a book about PL/SQL, not blatant sociopolitical rantings. If I had bought the book, I would be returning it immediately for a complete refund. It doesn't matter whether I agreed or disagreed with your views (in some cases I agreed, in some cases I strongly disagreed). I found the examples so distracting that I was unable to get the information I needed out of the book. Please in the future, remember that we, the book buyers, are looking for information about using PL/SQL. I am as tired of the emp and dept tables as you are, but less distracting examples would have been more appropriate. 
Personally, I am no longer buying your books nor am I recommending them to my clients as long as they contain the types of examples you used in your latest books. I cannot, in good conscience, recommend them as PL/SQL manuals because the examples removed the books from that category.
I have to admit, getting emails like these has not been fun. Here's another:
I have just been shown a copy of the Guide to Oracle 8i Features and to be quite honest am embarrassed on behalf of the O'Reilly publishing company. It is well-known throughout the industry that O'Reilly books are said to be the bibles for technical reference. I am appalled at the liberty that Feuerstein has taken in imposing his personal beliefs throughout the text and examples and am even more appalled that O'Reilly allowed this kind of content to be published. It is highly offensive regardless of freedom of speech and Mr. Feuerstein's belief system and to choose such an unwilling audience is absurd! I will not buy this book and will tell each and every person I know in the industry to do the same. I will as well be cautious when purchasing and or recommending any other O'Reilly technical reference books. This is not the forum for this kind of content!
You get the idea. Now, I should also mention that:
  • I have received at least an equal amount of emails praising this particular book, sometimes for the political content explicitly, sometimes simply for the technical content, indicating that my choice of examples was not problematic.
  • O'Reilly & Associates reviewed the book's content and its lawyers did recommend making a few changes. (They didn't, for example, want me to explicitly and blatantly accuse a sitting governor of bribery.)
  • This book became a subject of active debate among O'Reilly editors about what limits, if any, should be placed on an author's desire to include possibly controversial examples.
  • Tim O'Reilly and I talked about this subject at length and he thought that it would make a great topic for public discussion. So here I am!
All the negative--in some cases strongly negative--feedback I got sent me back to the book to examine the content and ask myself some questions: Was I wrong to include this content? Why is it so difficult for people, especially those in the United States, to hear viewpoints that make them uncomfortable? Would I be willing to put these kinds of examples in my "bestseller," the foundation of my series, Oracle PL/SQL Programming, and take a chance at putting off readers? 

Were my examples full of opinions or facts? Can I really separate the two? And what about the examples in all those other books (mine and the several hundred other Oracle books, and thousands of other technical books)? Are they all free of political content?

Democracy and Political Discourse

As I work on this article, I am flying back from a week's teaching in the United Kingdom. As is usual when I spend time outside the United States, and particularly in the U.K. (where I can understand the language), I am struck by the open political discourse--and open challenge--in the media and among individuals.

It seems to me that one part of having a true and vibrant democracy is the free flow of ideas and active debate among neighbors on the crucial issues of our day. Does that go on around you? I sure don't experience it in my neck of the woods. On the contrary, I find that, in the United States, very few people are willing to talk "politics." It is, along with the topic of money and sex, generally veered away from in trepidation. Better to comment on the weather and sports.
Where would such an attitude come from? Much of any individual's behavior in society is patterned after what she or he perceives to be acceptable. Most of us do not want to stand out as different, and certainly not as "troublemakers." What determines acceptability in our society? To a large extent, the mass media.

Reflect on the television, radio, and print media reports you receive: How often do you see real political debate, crossing the entire spectrum, taking place? How often do you hear a member of the media truly challenge politicians and business "leaders" to justify their policies and actions? I believe that very little real debate ever takes place and our journalists, especially the high-profile ones, treat those in power with kid gloves. Sometimes it seems like there is a debate going on (within a T.V. program like "Crossfire," for example), but in fact that debate is missing/ignoring/silencing a large swath of viewpoints: pretty much anything to the left of Bill Clinton.

As a result, it is very difficult to talk politics in our society--especially if your politics are anywhere to the left of center. And it is almost impossible to present an informed, sophisticated critique of the role of global capitalism in the world today.

Now, you might well say to yourself, "Who cares?" You like global capitalism. You don't think it's all that bad, or at least you don't care if a few hundred million people are paid pennies for their labor. And, well, you don't want to talk politics. That's fine. That's your choice. But I also believe that almost every technology book we buy and read is full of politics.

The Hidden and Prevailing Ideology

I believe that just about every technical book comes with a body of politics, an ideology that governs and usually restricts its example set. We don't notice the political slant because it reflects the dominant viewpoint in our society and is thus invisible.

After reviewing many books, I feel comfortable in summarizing the vast majority of texts as having these characteristics:
  • Business-centric: Most examples used in technology books focus on how to make business work more efficiently, regardless of its impact on human society and the world as a whole. As a result, we constantly read about human-resource or personnel systems. And while examples frequently touch on education, these applications have more to do with managing students (the business side of education) than with improving the quality of education those students receive. All of this seems perfectly "natural" since the vast majority of technology is used by businesses to make profits. But does it have to be that way?
  • Consumer-oriented: Many, many examples promote the perspective that the only reason we exist in this world is to buy things. Just about every book about the Internet focuses on some aspect of e-commerce, such as how to maximize the use of banner ads, how to grab and hold eyeballs, how to present product information dynamically.In 1999 Addison-Wesley published a truly marvelous book titled Refactoring: Improving the Design of Existing Code, by Martin Fowler. In it, Martin offers a systematic method for improving the quality of our code without affecting the interface to and behavior of that code. To demonstrate his techniques, the author offers a refreshing example: video rentals. Yet it still comes down to commerce. We are what we buy, not what we think and do with our lives outside of the exchange of items for money.

  • Humans as numbered entities: This is particularly true in database-related books (including my own!). Technology is presented through a medium of scenarios that represent--and manipulate--humans as numbers. Just about any Oracle text you pick up is dominated by "emp-dept" examples: a personnel application that talks about salaries, bonuses, and commissions, when you were hired, which department you belong to, the name of an employee based on an employee_id, and so on. The message, so clearly presented in this dominant theme, is that we are defined primarily as workers and our value in life is derived from the contribution we make to our employer.
  • Everything and anything as numbered entities: Hey, it's not just people! Technical examples extend the quantification approach to natural resources, information, entertainment, etc. Oracle also offers a standard demonstration base of tables and data for a sales/order entry system. This, of course, makes perfect sense in the world of Oracle--driven by the obsessive personality of Larry Ellison to sell, sell, sell software and services. (I own shares of Oracle stock and have benefitted directly from Larry's obsessions.)
There are exceptions. Scott Urman's latest book on PL/SQL, Oracle8i Advanced PL/SQL Programming, uses a college registration system as his example base. Although many American colleges are overly focused on preparing young people for a life of drudgery in one job or another (and corporations are commercializing higher education to an alarming degree), I congratulate Scott on taking a road less traveled.

Breathing Life Into Technical Books

I could go on and on, but I think you get the drift. The bottom line for me is that books written about technology are written by human beings with perspectives and beliefs. Some of us center our lives around a particular technology or around the business applications of that technology. Many of us see the technology as one part of a rich, complex way of life--and dream of ways that this technology can transform and improve human society and our planet.

I don't see what any of us gain - writers and readers alike - from the unwritten but nonetheless rigorously followed rules that technical books must conform to and further support the status quo in our society.


Jeffrey Kemp said...

Firstly, I believe that you should be free to express your views, in public, on your own fora (e.g. your blog and your books) without impediment or censorship. Anyone who can't handle your POV can avoid your forums and your books, should they so desire.

One problem I have with this approach to spicing up your examples is that while they are certainly more engaging and interesting, they are (usually) code samples that the learner is expected to replicate in their own environment. I assume you would want to encourage your readers to try your examples for real - certainly I find I learn something better by "doing" rather than just reading about it.

If I wanted to actually type an example "insert" statement, I might be distracted by the desire to make it more palatable for my own purposes - if I found the words or statement you had used to be offensive, or if half the students in my class were being distracted by them.

(It may be significant to consider that the purpose of inserting a record in a table in a relational database is to assert the real, objective, truth of the statement implied by that record!)

So, bottom line - by all means, make your books more interesting, don't be boring, but at least think about whether you really need to exercise your freedom by presenting your extreme viewpoints as objective truth.

Just my 2c :)

StevenFeuerstein said...
This comment has been removed by a blog administrator.
iudith said...

Hello Steven,

Regarding the political discourse ...
It is very surprising to me to hear that in the US the "too left-sided" opinions
are being "cut-off" from the access to media.
Exactly the same happens here, where I live ... with the only difference
that here the right-wing always considers itself as cast out by a totally
left-oriented media ... so maybe some people should simply exchange places
to make everybody happy ?!?

Back to the PL/SQL part ...
The only problem I can see with those examples is that, many people who are following after them will soon stop to think of them as mere code examples, and will start judging your political opinions instead ... for better or for worse .

Luckily, PL/SQL (and computing in general) is still a positive science,
where we still expect to find only absolute truths in any computer book ...
well ... absolute within the limits of natural technological progress.

Politics, instead, is a matter that most people consider as being subjective.

On the other side, it is a fact that many people, or better say, most people
find themselves totally excluded from any possibility to really express their
political opinions in such a way that anybody will at all listen to them.
This includes people like you, and I dare to say, like myself also.
Thus, willingly or not, we are struggling for making ourselves heard, by using
any possible "stage" available to us ...

The real reason for which there is no political dialogue or debate in the public
space is that this type of society prefers to create a "standard" for
how someone is expected to see things ... it is much easier to judge everybody
by simply marking its opinions by "yes" and "no" only, and, as a consequence,
accepting him/her or not based on that simple standard ...
To put it more coarsely, most people have learned to shut up for avoiding
the expected unpleasant consequences of expressing their true opinions.

For some reason, it was always thought that this is (or was) true only for
the communist regimes ... but it is equally true everywhere !

Each place has "THE rules" by which one is supposed to behave for being accepted...

No one will be willing to listen to those that use to find too many negatives ,
especially and unfortunately, not the social leaders of any kind :(:(

Thanks a lot & Best Regards,