On vit une époque formidable ! My love for science and technology drove many aspects of my life as far as I can remember. As you must have undoubtedly noticed by now, in the above, computers have a special place in my heart. Although I appreciate reviving vintage computers and sharing about them, I also work day-in, day-out, with the most advanced computer systems and software one can find out there. But, having had the opportunity to witness several decades of technological revolutions and evolutions, gives me sometimes a sense of déjà-vu. Maybe I should say a feeling of, “but why isn’t this happening by now?” Today, I want to share with you one of these technologies I was dreaming of thirty-two tears ago when I was devouring the special issue of La Recherche in November 1988 (the New Computers issue). Most objects of the then bleeding-edge research are now well-established technologies: neural networks, computer vision, multi-processor systems, distributed computers, etc. Nonetheless, there is one technology I was waiting for without seeing real progress. I even gave up on the idea of laying my hands on such marvel. I am of course referring to quantum computers.
During the years, I’ve tried several times to review the State of the Art in QC, but quickly I lost myself in the deep math and physics books and papers required to reach just a basic understanding of the nature of the beast. Well, today, I truly believe I may put my hands on a QCU before I die! (Quantum Compute Unit, think about it as a co-processor such as a modern FPGA or GPU). Even better, just a few minutes ago, I finished running a quantum program of mine on a real QC (Quantum Computer)! So, what changed in a few years only? Well, computer and chip manufacturers are now able to build reasonably complex and more importantly, controllable and stable QCs that anyone can access remotely over the Internet. What for will you ask? To try developing new algorithms and to demonstrate novel usages of QCs of course. In other words, the next killer apps. To me, this is the upright approach to the problem. Meanwhile, a more merchant access-path to QCs is emerging, putting well-established quantum algorithms to the work by the tech giants and their customers (ignoring the military here, since I don’t know what they do). The most obvious fields these developments are gravitating around are quantum cryptography and quantum machine learning.
If you belong to the former category of QC enthusiasts, or simply if you want to try it for yourself, you can first use any of the hundreds of existing quantum circuit simulators, or, the IBM Quantum Experience (https://quantum-computing.ibm.com/) and its community. For example, via the IBM portal, I can access today to nine QCs located all over the world, offering various Qubit capacities (from 5 up to 32), and a different set of quantum gates. You can think of the qubits as their classic counterparts, the bits, and the latter’s as traditional logic gates. Of course, all the beauty and strangeness of QCs resides in entanglement and superposition—more on this in a few.
IBM’s portal, but other sites such as Quirk (https://github.com/Strilanc/Quirk/wiki/How-to-use-Quirk), offers a drag-and-drop quantum circuit editor where you can compose and simulate your circuits. Interactivity and real-time feedback are key here to even have a chance to debug a design, so that’s a huge plus. The graphical representation of the circuit is generally is co-maintained in the form of scripting or programing language. The good news is that it is quite easy to convert code from one dialectal to another. Few editors can handle different dialects automatically. For example, an implementation of a Toffoli Gate – or CCNOT (Controlled-Controlled-Not), is stored as the following URL in Quirk. Go ahead, copy & past it into your browser.
https://algassert.com/quirk#circuit=%7B%22cols%22%3A%5B%5B1%2C1%2C%22H%22%5D%2C%5B1%2C%22%E2%80%A2%22%2C%22X%22%5D%2C%5B1%2C1%2C%22Z%5E-%C2%BC%22%5D%2C%5B%22%E2%80%A2%22%2C1%2C%22X%22%5D%2C%5B1%2C1%2C%22Z%5E%C2%BC%22%5D%2C%5B1%2C%22%E2%80%A2%22%2C%22X%22%5D%2C%5B1%2C1%2C%22Z%5E-%C2%BC%22%5D%2C%5B%22%E2%80%A2%22%2C1%2C%22X%22%5D%2C%5B1%2C%22Z%5E%C2%BC%22%2C%22Z%5E%C2%BC%22%5D%2C%5B%22%E2%80%A2%22%2C%22X%22%5D%2C%5B%22Z%5E%C2%BC%22%2C%22Z%5E-%C2%BC%22%2C%22H%22%5D%2C%5B%22%E2%80%A2%22%2C%22X%22%5D%5D%7D
At this point, I guess you may be thinking that all this is great, but what about the “lost myself in the deep math and physics?” To be completely fair, it is still the case, and some knowledge about matrixes, complex numbers, and trigonometry is still required if you want to look closer into the hardware.
But, if you are an SW engineer, I strongly recommend you reading Programming Quantum Computers: Essential Algorithms and Code Samples by Eric R. Johnston, Nic Harrigan, and Mercedes Gimeno-Segovia (O’Reilly Media – ISBN-13: 978-1492039686). In addition to the book, a quantum circuit composer and simulator are provided (http://oreilly-qc.github.io). I really enjoyed reading thru the chapters while trying on my phone corner cases or messing-up enough the samples so I could wrap my head closer around a concept. I want to highlight that the authors are deliberately ignoring most of the math and physics to focus essentially on SW development!
As a conclusion, I really believe that the planets for quantum computing are finally getting in line. Real and accessible to all test systems are available from a simple web browser, hundreds of simulators exist, and more importantly, books with SW engineering in mind are getting published. If you want to learn the next big thing before the crowds, then go learn QC today. We live in a great time!