Quantum-Native Application Development by Dr. David F. Beach (published by CIO Publishing) reviewed by Anonymous May 2022
(Reviews do not necessarily represent the views of QCWG)
A good nonfiction book should be three things: Accurate, useful, and well-presented. I do not doubt the accuracy of Dr. Beach’s work. I am not an expert on this topic, but the information he provides lines up well enough with what I do know to convince me not to question its veracity. Instead, I will focus on the utility of this book and the way it is presented. The former is reasonably impressive. The latter, however, is abysmal.
This is a book aimed at people concerned with what quantum computing can offer them right now: think IT professionals and managers deciding how to implement a new quantum computing solution at their business. The author does a good job balancing the more technical aspects early on. This is not a physics or mathematics textbook, and that’s a good thing. Dr. Beach sufficiently describes superposition, entanglement, and interference in layman’s terms, but does not dwell on them. He quickly moves on to how different types of quantum computers work. The book first describes quantum annealers then traditional gate based quantum computers. I think this is a good way to present the information. Too many books sweep annealers under the rug or don’t sufficiently explain the difference. A lot of the quantum computing landscape today is concerned with quantum annealing and depending on the use case, they might be a better fit for the reader. It is important for a book like this to explain the difference and Quantum-Native Application Development certainly makes that a priority.
The main goal of the book is to promote what the author calls the “quantum-native” approach to the deployment of quantum computing solutions. This approach stresses a “ground-up” or full stack paradigm where the hardware, algorithms, software implementation, and APIs are all designed with quantum computing in mind as opposed to approaching quantum computing from a classical perspective. While I certainly agree that this is the best approach, I have to ask, “Isn’t that what everybody is already doing?” All the major quantum algorithms use entanglement and interference to solve otherwise intractable problems. Every business setting I’ve seen combines quantum algorithms with appropriate APIs to optimize their workflow. Qiskit is very popular and those not using Qiskit are using Circ, Q#, or some other full stack solution for their gate based work and D-Wave’s Ocean framework for their annealing needs. What exactly is wrong with the current community that this assertion (important enough to name the book after) aims to address? It seems to me like this is the author’s (or more likely publisher’s) way of inserting buzzwords into the book to get more Google hits. With that said, I do like the focus the book puts on describing and comparing the different platforms and their APIs. This is an area certain to be of interest to the target demographic of this text.
Unfortunately, this is where the praise for this book ends. It wouldn’t matter if the subject matter was the most ground breaking and insightful material since David Deutsch’s landmark 1985 paper. This book is not well-written to say the least. The author clearly struggles with the finer points of the English language. This would not be a problem if there were an editorial staff responsible for correcting mistakes. It appears that nobody bothered to edit this book at all. It is worthy of being a first draft, nothing more. Commas are not used properly, prepositions are swapped. Words like “on” are used in place of “of” all too frequently. I understand that these things happen, but I am not exaggerating when I say it happens more often than not. Reading it is painfully difficult as I have to pause at least once a paragraph to try and decipher the meaning of what I just read. One excerpt from the introduction reads: “Thus, it is important to keep in mind that what we look at quantum computing as a complete set of solution to encompass over the entire software stack and not only a portion of that which is computation.” Another from later in the book reads: “Quantum algorithms are capable to find optimized solution much faster and more effectively than classical computers and classical algorithms.” Excerpts like this are anything but rare. Neglecting an ‘s’ at the end of a plural word or inserting a definite article where one is not welcome are occurrences on nearly every page of this book. It is difficult to tell how much of this is due to typographical error and how much is due to a poor grasp of the English language, but it is clear that they are both significant contributors.
Poor grammar is not the only problem with the book’s presentation. The typesetting is horrid. When setting mathematical symbols, inconsistent fonts are used; sometimes equations will be centered, other times they will not; when words like ‘and’ are used between math symbols, those words are erroneously set in italics with the rest of the expression; characters with subscripts “float” above the rest of the expression; and sometimes an ‘x’ is used for scalar multiplication, which is very confusing as anyone who reads math papers will know. It’s not just the mathematical typesetting either. The figures are mostly low quality images found in a Google search. These images are often resized without thought to how the resizing affects their readability. Small low quality images are blown up, making them pixelated; large, detailed images are shrunk down, making their content too small to read. Even tables that can be easily made in basic typesetting software are instead harvested from the internet, to the detriment of the reader.
Among the worst typesetting is the code snippets. Sometimes, screenshots of a text editor are used with inconsistent scaling. Other times an off-putting lime green highlighted background is employed. The worst are the cases where the author merely types huge blocks of code using the same variable-width font used in the rest of the book. When displaying source code, one should always use monospaced font, especially with python. It is nearly impossible to read source code this way, not least because one cannot tell what lines are code and what lines are prose. Typesetting aside, the code snippets introduce some... interesting choices. At one point, the line “import qiskit” is followed a few lines later by “from qiskit import *”. I understand that this sequence doesn’t harm anything, but namespace pollution aside, it is clear that there was a large amount of copy/pasting with little regard to what was being pasted. While this might be okay for a personal python script, it is unprofessional in a published book.
This book was difficult to read and not enjoyable. The saddest part is that it could have been a good, if not great read if a little effort had been put into the editing process. I say a little effort, not a little more effort because it is clear that no significant editing occurred for this publication. It is possible that Dr. David Beach is one of the best resources for learning about quantum computing today. Unfortunately, I have no idea if this is true because the editing staff at his publishing house did not do their job. My advice to anyone still reading this review is do not purchase this book. Look elsewhere. The main point I will take away is never read a book published by CIO Publishing again.