جزییات کتاب
From the first lines of the preface of this work by Kenneth Nichols, it is apparent that what was initially planned to be of more concise scope grew into a discussion of all things associated with software patents, and therein lies the rub. It is interesting that the author notes in just the second sentence that he "came to the conclusion that the particulars of the debate [within the programming community over the desirability and ultimate effect of software patents]...are not that interesting or enlightening". Really? I find it odd that an individual with a J.D. and an M.S. in Computer Science would make such a statement. Of course, his follow-up statement that the "larger and more important story" involves the fact that "software development is a new kind of creative activity, one that defies the neat and mutually exclusive categorizations of intellectual effort as either artistic or scientific" might be true, Frederick P. Brooks wrote extensively on this topic in his classic tome on software engineering long before the USPTO permitted the filing of related patents. Fortunately, Nichols dedicates most of his work to the more boring subject matter, although unfortunately the explanations provided are a bit boring themselves. Putting aside the fact that this book was written in the late 1990s, however, there is a lot to offer here to the professional software engineer as well as the non-technical management community associated with software interests of this nature. For example, the author's concise 20-page introduction introduces well much of the background subject matter. Nichols also discusses well the topics of algorithms, programming, computer science, software engineering, and how patents fit in with this universe. The heart of the text, the third chapter which presents various software patent examples, however, is very poorly constructed in my opinion, although the explanation in its first few pages on major terms such as "novelty" and "nonobviousness" is concisely written. The diagram provided that depicts concepts related to nonobviousness, written in the style of a Venn diagram, is especially well suited for the discussion. The fourth chapter covers the software patent controversy, and the reader is well rewarded in my opinion when reaching this point in the book after 50 pages of rambling. It is strange that the seventh chapter is dedicated to a definition of programming, a discussion best suited for the introductory pages of the book, although some of the quotes provided in these pages are quite entertaining, such as the W. Saba quote from an IEEE periodical that "hardware engineers have gone further than their software counterparts because hardware design became a science...Unlike hardware engineers, software engineers still deal in magic and witchcraft". Interestingly enough, it was just recently that The Economist discussed the emergence of computer science as the foundational branch of science. Last of all, while the sixth chapter boldly begins by proclaiming "we've finally come to the good part" because it deals with recommendations for software developers, only 6 pages are dedicated to the subject! If Nichols is to write further on software patents, I recommend an entire book dedicated to recommendations.