Review of a book about VM
Disclaimer: Pardon my French :) I have bought "Virtual Machine Design and Implementation in C++" by Bill Blunden. This book has very positive reviews (see slashdot or amazon.com). It seems to impress people by the apparent width of covered topics. Most of it is off topic. The book gives to the moderately knowledgeable reader no insight about virtual machines or even about language compilation. No architectural clues. Absolutely nothing about tight run loops, copy on write, compiling , optimizing code (SSA, tail calls, continuation passing style) or jitting code. The remarks about memory management are laughable. The book present a trivial VM and make no attempt to compare the features of existing VMs. The author has the chutzpah, pedantry or naiveté to compare himself to Knuth: "If I had money, I could offer an award like Don Knuth (pronounced Ka-Nooth)". But it is unclear that the book has been thru any reviewing or editorial process before publishing. I don't say there are obvious typos or so many factual errors. The book is just vain and vacuous. It is difficult to make a review because the book has about no substance concerning its stated subject: virtual machines. The author takes tangent after tangent and gives his opinion about almost anything concerning the computer industry, cramming irrelevant knowledge and speaking of all the "wars" he has waged. He usually states in one paragraph one can be said in one sentence. Most of code in the book has no interest whatsoever, like gigantic switches or declaration of symbolic constants. Visually disturbing notes are plain rants or state the obvious: "virtual machines are run-time systems, but not all run-time systems are virtual machines" (boy! I was thinking that was VMs all the way down). One note even propagates the old urban myth about TCP/IP: "[the DoD] was originally interested in designing a command and control network that could survive a nuclear war". In Chapter 1, "History and Goal", the author conveys the idea that coding on top of a virtual machine is a good protection about obsolescence of the real architectures. But the book will hardly convince you about the relevance of the presented VM according to this criteria because it apparently only runs on x86. The author states his goals about the VM he presents: 1/ portability 2/ simplicity 3/ Performance. Modulo order, these properties are true of any sensical software project. This does not give a clue about what is the purpose of the VM. He cites Java, so the purpose may be to run such a language. But after reading the book, I had no further clue. Chapter 2, 5 and 7 is about the presentation of his assembler. Don't ask me about the logic or the interest of the presentation. Almost nothing is specific about VM. So why bother to say more? Chapter 3 talks about a debugger. Chapter 6 is about virtual interrupts. The author seems to have used DOS as a model and is clearly limiting his discussion about x86. So much about portability. Chapter 8 called "advanced topics" explains the software industry progression toward increased abstractions going from binary to high level languages. There is a comparaison between Linux and Windows. Go figure. The anemic index is 6 pages and reflects the book, almost none of the entries are specific to VM. Each chapter is followed by a reference with a book list and an explanation of what they cover. Certainly better that the gratuitous show off list of academic papers. The choice of listed books is usually pretty good but often the comments show the cluelessness of the author. I enjoyed this one concerning the Tanenbaum book about OSes: "People don't often realize that it was Minix that led to the development of Linux. I don't think people give Andrew enough credit. His ideas on modularity are very contemporary". The back cover says "covers in detail features such as memory management, TCP/IP networking (...) everything expected from a commercial system. In fact the author decides that real garbage collection is too slow and too complex, does not even consider reference counting and decides to roll his own malloc. I don't know what TCP/IP has to do with VM... The book certainly does not fulfill the the back cover promises. It seems to me that the described VM is to VMs what a "hello world" is to real C programs. I did not bother to see the content of the bundled CD-ROM. -- stef
Re: Review of a book about VM
At 06:30 PM 11/13/2003 +0100, Stéphane Payrard wrote: Disclaimer: Pardon my French :) I have bought "Virtual Machine Design and Implementation in C++" by Bill Blunden. This book has very positive reviews (see slashdot or amazon.com). It seems to impress people by the apparent width of covered topics. Most of it is off topic. The book gives to the moderately knowledgeable reader no insight about virtual machines or even about language compilation. Stef, Thanks for the review. Yours is the 2nd review I've read about this book. I was about to buy it but after the 1st review I changed my mind as it echoed your review in almost every sense. I did browse it at the bookstore and it seemed that the book tackled no real topics/problems associated with modern VM design. Disappointing. -Melvin
Re: Review of a book about VM
From: "Melvin Smith" <[EMAIL PROTECTED]> At 06:30 PM 11/13/2003 +0100, Stéphane Payrard wrote: >>Disclaimer: Pardon my French :) >> >>I have bought "Virtual Machine Design and Implementation in C++" >>by Bill Blunden. This book has very positive reviews (see >>slashdot or amazon.com). It seems to impress people by the >>apparent width of covered topics. Most of it is off topic. The >>book gives to the moderately knowledgeable reader no insight >>about virtual machines or even about language compilation. > >Stef, > >Thanks for the review. Yours is the 2nd review I've read about this >book. I was about to buy it but after the 1st review I changed my >mind as it echoed your review in almost every sense. > >I did browse it at the bookstore and it seemed >that the book tackled no real topics/problems associated with >modern VM design. Disappointing. Any chance anyone could recommend a good book about VM design and implementation? Perferably one that covers some stuff that's relevant to Parrot. Thanks, Jonathan
Re: Review of a book about VM
On Thu, 2003-11-13 at 20:08, Melvin Smith wrote: > At 06:30 PM 11/13/2003 +0100, Stéphane Payrard wrote: > >I have bought "Virtual Machine Design and Implementation in C++" > >by Bill Blunden. This book has very positive reviews (see > >slashdot or amazon.com). It seems to impress people by the > >apparent width of covered topics. Most of it is off topic. The > >book gives to the moderately knowledgeable reader no insight > >about virtual machines or even about language compilation. > > Thanks for the review. Yours is the 2nd review I've read about this > book. I was about to buy it but after the 1st review I changed my > mind as it echoed your review in almost every sense. On a related note: what, if any, books would you recommend to someone who is eager to join parrot-development, but feels he doesn't know enough about compiler design, virtual machines etc. Michel Rijnders PS I'm new to this list: hi all!
Re: Review of a book about VM
"Stéphane Payrard" <[EMAIL PROTECTED]> wrote: > I have bought "Virtual Machine Design and Implementation in C++" > by Bill Blunden. This book has very positive reviews (see > slashdot or amazon.com). It seems to impress people by the > apparent width of covered topics. Most of it is off topic. The > book gives to the moderately knowledgeable reader no insight > about virtual machines or even about language compilation. I reviewed it for Slashdot, and posted a mini-review here too. I saw the technical and design limitations, but enjoyed it none-the-less. On reflection, perhaps a more accurate title for the book would have been "Design and Implementation of /A/ Virtual Machine in C/C++". I don't think the book's target audience was those who want to become authorities on virtual machines, or learn about every advanced topic. I think Bill wanted to catch the people who come from a totally different area of computer science, who want to get an insight into virtual machine design and implementation at a basic level. The book certainly achieves something for those people, as it did for me, and whets the appetite to go and learn more from real 'hands on' projects like Parrot. The knowledge you can get from the book, however, is more than enough to have a far better understanding of how Parrot works and operates than before you read it. At least, I found this to be the case. I also found the lack of information on jitting to be a shame, but it's not a hard topic to pick up externally after reading and understanding the rest. As a view into how man chose to design and implement /a/ virtual machine, I consider the book invaluable. He certainly does quite a few things wrong, and has limitations in his design, but someone who is competent will recognize this, as you have, and use it as a learning and mind-expanding experience. Not everyone who has studied computer science will have covered all of the topics demonstrated in this book. Regards, Peter Cooper
Re: Review of a book about VM
On Fri, Nov 14, 2003 at 11:49:51AM -, Peter Cooper wrote: > "Stéphane Payrard" <[EMAIL PROTECTED]> wrote: > > I have bought "Virtual Machine Design and Implementation in C++" > > by Bill Blunden. This book has very positive reviews (see > > slashdot or amazon.com). It seems to impress people by the > > apparent width of covered topics. Most of it is off topic. The > > book gives to the moderately knowledgeable reader no insight > > about virtual machines or even about language compilation. > > I reviewed it for Slashdot, and posted a mini-review here too. I saw the > technical and design limitations, but enjoyed it none-the-less. On > reflection, perhaps a more accurate title for the book would have been > "Design and Implementation of /A/ Virtual Machine in C/C++". > [clipped] My bad opinion was so forceful that I thought honest to mention that it was not shared by many people. You posted your mini-review to London.pm: http://kochi.etla.org/london.pm/html/2002/06/msg00076.html Piers Cawley will be happy to notice that Leon Brocard anwered in advance the question on the present trhead that asked about a good book on virtual machines: "No, there's suprisingly little out there on virtual machine design and development." -- stef > > Regards, > Peter Cooper > >
Re: Review of a book about VM
"Stéphane Payrard" <[EMAIL PROTECTED]> wrote: > You posted your mini-review to London.pm: Thanks for that, that demonstrates my memory! > on virtual machines: "No, there's suprisingly little out > there on virtual machine design and development." This question isn't entirely directed at you, but.. is this something that people, as a community, would be interested in developing? I tend to like doing things on my own, but as you'll have seen I've only been studying the topic for 18 months! ;-) An open approach to developing an online wealth of knowledge about virtual machines would allow the gurus to share knowledge as they find the time. I've been involved with Wikipedia lately, and seen how major collaborative works in the content realm can work (as long as there's a modicum of structure to keep it all together). I personally believe virtual machines are ever increasing in importance in the realm of computer science, and such a resource may allow more people to 'migrate' from other disciplines more easily. Of course, this may all be pie in the sky, but I thought it worthwhile to throw the idea out there. Regards, Peter
Re: Review of a book about VM
On Sat, Nov 15, 2003 at 02:10:35PM -, Peter Cooper wrote: > "Stéphane Payrard" <[EMAIL PROTECTED]> wrote: > > You posted your mini-review to London.pm: > > Thanks for that, that demonstrates my memory! > > > on virtual machines: "No, there's suprisingly little out > > there on virtual machine design and development." > > This question isn't entirely directed at you, but.. is this something that > people, as a community, would be interested in developing? I tend to like > doing things on my own, but as you'll have seen I've only been studying the > topic for 18 months! ;-) An open approach to developing an online wealth of > knowledge about virtual machines would allow the gurus to share knowledge as > they find the time. I've been involved with Wikipedia lately, and seen how > major collaborative works in the content realm can work (as long as there's > a modicum of structure to keep it all together). > > I personally believe virtual machines are ever increasing in importance in > the realm of computer science, and such a resource may allow more people to > 'migrate' from other disciplines more easily. Of course, this may all be pie > in the sky, but I thought it worthwhile to throw the idea out > there. I don't think it is wise to multiplicated resources but wiser to squat existing ones. Probably this work can start as part of the existing parrot wiki even if VM is in a sense a subject larger than Parrot: http://www.vendian.org/parrot/wiki/bin/view.cgi/Main/WebHome Or it can be even be part of the regular wikipedia. I have been amazed at the quality of the wikipedia material, some of it contributed by our own Dominus. BTW: I suspect that his fake entry "Goat rectum stuffed with garlic" is good way for him to find his wikipedia homepage with Google. :) I don't feel competent enough to write on the VM subject but would be happy to translate it to make it part of the French wikipedia. -- stef > > Regards, > Peter > >