Tuesday, May 28, 2013

Distributed Systems: Principles and Paradigms 2nd edition, Andrew S. Tanenbaum



I used this book for an online graduate class in which the instructor deferred all teaching, exercises, exams, and grading to the textbook. This is bad enough, but add to it that this textbook is a terrible read and a royal pain in the rear to reference and it's a miracle that I managed to eek out an A. I say miracle, but I really mean countless hours of research, sweat, and tears.

First, the reading is terribly wordy yet still amazingly vague. I read pages and pages of text which revealed precious little usable information. Then I'd read a barrage of facts condensed into a few heavy, indecipherable sentences that don't paint any sort of clear picture. There are a few attempts at humor sprinkled in which result in a head slap and a strong desire to throw the book directly into the garbage.

Second, the book is terribly organized. I'll give the authors the benefit of the doubt that organizing this book must be hard because every aspect depends on something else. The chapter layout (in a table of contents sense) is actually appropriate. However, the organization of information in each chapter is worse than terrible. There's a brief intro, but not really a overview of what they are going to discuss. It will then jump from point to point and back again and then to an unrelated point and then to a tangent and then back to the original point. Once you realize you've totally lost the thread they begin a new topic or a loosely-related case study. Trying to find any specific information (like, say, for an exercise question) is a lesson in futility. You never know where a speck of needed information will turn up, if at all.

Third, the exercises are ridiculous. They are poorly-worded, vague, and subjective. You will spend large amounts of time trying to determine what a question is really asking. As far as answering the questions, maybe 1 in 10 covers material substantially covered in the book. 2 in 10 cover some extension of what is contained in the book that you might piece together with critical thinking skills. 6 in 10 are wild tangents that may be mentioned in the chapter text but without any substantial treatment what-so-ever. Sometimes it might be covered in another chapter (previous or future chapters), but most of the time it requires extensive web research followed by a wild guess. The last 10% relate to a random sentence inserted into a seemingly random paragraph somewhere in the chapter.

Fictitious example: "Cows: Cows can be brown or black-and-white spotted. Cows have 8 stomachs. Cows are stinky. My sister has cows and she says they make lousy pets!" ... 30 pages later ... "Dogs: Dogs are mammals. Dogs like people. Dogs are primarily carnivores (unlike cows, who eat grass). Dogs are neat-o!" Question: "What might one typically find in a bovine's digestive tract?"

Now assume you've never heard of a cow or a dog. You'd look up bovine and determine that it's a cow. OK, let me go read about cows in the text. Well, it says they have 8 stomachs, that might be relevant. Let me search the internet, it says stomach acid, bile, feces, intestines, stomachs, throat, etc. Wait, there's something mentioned in the dog section about cows, is that relevant? Hmm, let me throw all of this into some giant abomination of an answer. Oops, I missed points because I didn't think about all the bacteria in the colon. I'll try harder next time.

Eventually I worked out a system which minimized the pain:
1) read the chapter-end summary
2) read the chapter-end exercises that you need to complete and try to decipher what they are really asking.
3) don't skim the chapter looking for relevant information - actually read the entire 80-130 page chapter. While doing so, write down all the bold words and definitions because they are not collected for you at the end of the chapter. Also, answer any questions you can along the way. If something sounds relevant to the question, but doesn't answer it, then note the page and keep reading. It just might surface again later. Don't let any sentence go unread, no matter how irrelevant the paragraph sounds, because it just might be the one you need.
4) scour the internet for the related information. You might not find the answer to the question, but you might find a better explanation of the topic.
5) do some critical thinking and then make a bunch of wild guesses to finish your assigned exercises. Make sure to cover every possible interpretation of the question. Explain both sides of the argument even if they only ask for one side. Pray for partial credit or that your instructor doesn't care enough to actually read your answers.

I gave this book 2 stars because it really does contain a lot of material and concepts regarding Distributed Systems. I gave it only 2 stars because it is painful to extract this information and get it into any sort of useful representation in your head. It is worthless as a reference and it fails as a textbook. If you have to use it in class, I feel bad for you. If you have to use it in class and your instructor is worthless, then I would recommend dropping the class. If you can't, then may God have mercy on your soul.

Everyone is entitled to their opinion; and some of the more negative remarks on this book are without warrant. The book starts as an exposition into distributed computing and branches into a comprehensive 'overview' of both theory and technical implementations. If you're looking for a book that is specific to one particular region of distributed technology this isn't it. If you've a computer science background you should appreciate the work Tannenbaum and Steen put into this book. It's a great book for academia and reference by information technology professionals who desire to understand the fundamentals of distributed computing. But as some comments have alluded, this is book is but the beginning. As a final note, the material is well referenced so you can branch of into the published works of others as needed.

I don't understand the sense of this book, why it has been written. First of all, it's too academic, with no references to real cases. Topics are never analyzed thoroughly, so at the end of each chapter you have the sensation that something is missing. Moreover, the questions at the end of each chapter are absurd: they force you to make extensive research on the Internet to find the answers, as if the authors knew that they don't tell you anything in the book, so they force you to search information by yourself. The result is that you must start studying each chapter from the questions, because it takes often hours to find the answers, and you don't have time to understand the topic and see the whole picture. If it's not mandatory for your course, I definitely suggest you to buy another book.

First, the book arrived in a package that was hardly still together and hardly protecting the book by the time it arrived at my house.

Second, the book was a softcopy version that had printed on it sales allowed only in India, and some other countries I hadn't even heard of. I have a feeling the book was less expensive than what I thought I was getting which was the hard copy. I at first thought I had gotten the wrong book because the two don't even look anything alike.

A few reviewers of this book already noted its impenetrable prose style and descriptions lacking specifics.

While I am not a specialist in all topics described in this book, I found it to be imprecise and, occasionally, downright wrong or misleading in parts where I had specific knowledge to the contrary. Many times language would appear to be made purposefully ambiguous, as if the author did not quite know what he is talking about. This type of ambiguity may be fine in general literature, but a presumably scientific textbook talking about logical and structured discipline should not be so written.

This book was a required text for my graduate course. I certainly would not have purchased it voluntarily. I find that after reading most of it I gained no useful information or any additional insights that were not otherwise known or available to me.

Add to that bad editing that left the book with a fair amount of typos, grammatical and style errors and the end result is not great.

The cover design is great, though.

This books is, if nothing else, thorough. When you start thinking of distributed systems (or even just working with Application Servers in general), you're going to have to trudge your way through this book sooner or later in order to understand what's going on and what everyone is talking about.

It's definitely informative and you will walk away with a lot of information, but you're never going to say it was a pleasant experience.

Unfortunately, there doesn't seem to be anything out there written any better than this.

Product Details :
Hardcover: 704 pages
Publisher: Prentice Hall; 2 edition (October 12, 2006)
Language: English
ISBN-10: 0132392275
ISBN-13: 978-0132392273
Product Dimensions: 7.3 x 1.2 x 9.6 inches

More Details about Distributed Systems: Principles and Paradigms 2nd edition

or

Download Distributed Systems: Principles and Paradigms 2nd edition PDF Ebook

No comments:

Post a Comment