¶ What Makes Quantum Computing Special?
I'm Miko Pawlikowski, and this is HockeyStick. Quantum computing. Is it science fiction, hype, or reality? Does it work today? Will it break all your passwords tomorrow? How can you future proof your career to not get left behind? What does it look like? To answer all these questions, I'm joined by Johan Voss, the author of Quantum Computing in Action, a new book published by Manning. and co founder of Gluon. Welcome to this episode, and thank you for flying HockeyStick.
Johan, how are you today? I'm fine, thanks for having me. the pleasure. I assure you, as you're going to see, it's all mine because I've been waiting for someone to explain this entire quantum computing thing to me for a long time. let's get right into it. Quantum computing. What is so special about it and why is it a big deal? there are a number of things on why I think quantum computing is, special and, interesting.
I think the most intriguing thing is that a quantum computer is actually more a computer like how nature is working. So when we think about computers, we think about, classical computers that works with zeros and ones, but nature doesn't really work like that. the fundamental subatomic particles in nature, they do not work like the transistors that we use in classical computing. So a quantum computer, while it is often seen as more advanced or so, it's actually more basic.
And that does not mean that it is easier to create or easier to program, but it totally makes sense from a physics point of view. there are quite a number of similarities and a number of differences with classical computers.
¶ Quantum Computing vs Classical Computing
And the main difference, and one of the reasons why quantum computers are, interesting and are getting attention, is that they might provide huge, unseen computing power in a different way than classical computers would do, but there's a possibility to do things on a quantum computer that are, technically impossible on a classical computer. And the most, common example is the Shor's algorithm.
that algorithm allows a quantum computer, to factor integers into, prime numbers, pretty fast, much faster than a classical computer can do. And as a consequence, that might break, Most of the encryption that's in use today. Now, this is just an example that is often used to catch people's attention. And it is very true. And it may happen one day. But there's much more to quantum computing than this. If you ask about the hype, I think this explains part of the hype about quantum computing.
Okay. So we've got a little bit of hype for sure. If you put this query in Google, there's a lot of scary sounding things, like what you just mentioned, the security going out of the window. But what are some of the examples that might not be covered by the hype that are actually more representative of quantum computing? What do they excel at? in general, a quantum computer, can help you with problems that, require lots of parallel computations that are somehow related.
problems that in classical computers would require exponential more time if you make the problem a bit harder, might be, solvable in polynomial time. for example, on a quantum computer, I'm trying not to use too much, mathematical, concepts here, but, that is in general, the core advantage of a quantum computer and, to Java developers, I often explain this as, the, parallel streams that we have in Java. that allow you to do many computations at once.
In a classical computer, we're using different native threads. But in a quantum computer, you can compare it with doing all the calculations at once on the same thread. So the different, inputs are processed, all together. And that is the core difference between the quantum computer, and the classical computer.
¶ Real-World Applications of Quantum Computing
And then when is this relevant? first of all, in everything that is, related to the low level, parts of nature itself and, chemistry. And, healthcare, where we need to do lots of computations and especially those that are, related to the fundamental laws of physics, those can benefit from quantum computing so we can use a quantum computer to understand nature better. And, there are algorithms being developed to, help with, some chemical analysis.
because, chemistry is a bit of a weird field, it's pretty hard to, simulate even simple molecules and finding out, what's happening if you combine, even two atoms, it's very hard to do because it requires a huge amount of calculations. So that's something that a quantum computer, might be able to do more easily because of their nature with, doing many parallel computations as once.
They're also good in optimization problems, traveling salesman, for example, where, you have to examine different paths and find the best one. And, one example that I think, Might be available in the more short term is, quantum key distribution and, people often talk about, quantum computing is going to break encryption, but on the other hand, quantum computing is also allowing for much stronger encryption, and, that is something that you don't need lots of, expensive hardware for it.
it's still not easy to do at home, but that is something that, I see as a positive evolution that might happen thanks to quantum computing the encryption that we have today can be enforced, by a few orders of magnitude using quantum computers. So imagine you're talking to a five year old software engineer. they probably have heard of a Schroedinger's cat. They probably have heard of a double slit experiment.
And that's about the extent of what they know about quantum physics, other than it's weird and strange. Could you try to explain in simple terms, things like qubits and what superposition is?
¶ Understanding Qubits and Superposition
just enough to explain how a quantum computer works at a high level. that question can, be answered by comparing with how classical computers work and then seeing where it is different with a quantum computer. So a five year old software engineer knows that a classic computer works with bits that can be zero and one. And in a computer there are many bits. All are at a given moment, either zero or one, and the combination of these zeros and ones allows you to do many things.
but the thing is, a bit is always either zero or one. And the equivalent of a bit in quantum computing, is what we call the qubit. So that is the ultimate building block in in quantum computers. Now a qubit can have the value zero, It can have the value 1, like a regular bit, but it also can hold a combination of the values 0 and 1. that is the first and very weird thing about a quantum computer, because what does it mean?
it does not mean that it can hold the value 0.35 or so, because when you would measure a qubit, You will either get 0 or you will get 1. Very similar to what you will measure on a bit. But during operations, the value can be a combination of 0 and 1. And the main difference is then that where a classical computer works with the value of a bit, a quantum computer is more about probabilities.
How likely is it that if I measure this qubit now, that I will measure 0, and how likely is it that I will measure a one. while ultimately you will measure a zero or a one, you can still do all the computation simultaneously, pretending that the qubit is zero and that the qubit is a one. And that is a major difference. And that explains the, exponential, behavior of quantum computers because with one qubit, we can have two values, zero and one.
With two qubits, we can have four values, zero, zero, zero, one, one, zero, one, one. And so that's why it scales exponentially. And that is the concept of superposition, which is not something that we invented to make quantum computers work. It's actually the opposite. It is a phenomenon that we see in nature. Some elementary particles, for example, the spin of an electron, have a property that can hold two values simultaneously, spin up or spin down.
But the moment that you measure it, and that brings us to Schrodinger's cat, the moment that you look, the moment that you open the box, it's in one state only. It will be zero or one. So then the fun, the magic is gone. But as long as you keep it in the box, as long as your application is running, your qubit can, have two values, to compute with.
Okay, so I think what we need to explain is basically how do you get from one Schrodinger's cat that is in a box to two Schrodinger's cats that are entangled, right? Because with one qubit, you can't do an awful lot of good. The whole thing is to get a lot of them, right? And they all need to be somewhat, connected. Is that right?
so apart from superposition, which means that one qubit can be both zero and one, with some probabilities, that if you measure it, it's going to be zero and other probability that it will be one, that's one of the, strong powers of quantum computing.
¶ Quantum Entanglement Explained
The other is indeed the concept of quantum entanglement. It's, quite different, but the combination is, huge. I have, for example, two qubits that are, entangled. And there are physical operations to entangle qubits. it means that if I sent one of the entangled qubits to you or to, somewhere on earth or even to the moon, that is not physically connected to my qubit anymore.
And we don't know the value of the qubit, but the moment that, I measure the qubit, the value of the qubit in the other place is known as well. You don't know it upfront. You don't know it until, I measure mine, but then I also know the value of your qubit. And that is not because they had that value initially. No, they had no value initially. So it's not that the value was already there, but we just didn't know it. that's unrelated.
And this is, of course, something that, one of the most obvious examples is this allows you to create shared keys, for example, because it is, the same value that's being sent via a qubit and you don't know, until you, you open the box, but if I open the box, In my place, the box in your place is open as well. And we have the same values. So that is, entanglement. so security is one of the, things that benefit from this.
But just the fact that, there are, by nature, correlations between different qubits allows for a different, way of programming. this is a, a hot topic in quantum physics in general, it's really tempting to say that information travels faster than light, but it is not, because if I tell you what my qubit looked like. And if I would tell that to you and you would then compare it, yes, that's indeed the thing, then I would use a classical channel and that cannot go faster than light.
So the information itself is not traveling faster than light. and it's something that I, to be honest, avoid, Talking about when I talk about quantum computing, because different quantum physicists will chime in and, start, correcting, me and each other to be honest, to me it does not make lots of sense. it's just something weird. And I think the key thing to be able to deal with quantum computing is to not try to understand it, I think it was Richard Fineman.
If you think you understand quantum, physics, then you don't understand it. and it is so weird that, it helps giving up trying to understand it. the good thing is that if you just look at the mathematics, then it all makes sense. And if you don't want to do the mathematics, that's totally fine. Then you should just. acccept that those who did the mathematics did their homework, correctly. So superposition and entanglement are real things.
but it's extremely hard to, intuitively understand what it actually means. And the math behind it is also not simple. So that makes, I think, quantum computing, something exotic, especially to developers. yeah, I think for me, it was the double slit experiment when you go and do it and, you can see the results that makes no sense. You're starting to think that, okay, Something's not quite as logical and intuitive as we all thought, but that's, an experience for a lot of people, right?
True. Yes. And you clearly see what is happening. that there are, interference patterns. there's no doubt that they are there, but you don't understand it because how, our day-to-day observations of how things work, do not easily explain this. How can a particle be a wave and a particle at the same time?
¶ Quantum Computing Hardware and Simulators
What kind of hardware, if you were going to talk a little bit more about, application side of all of this, but I'm just curious in terms of actual quantum hardware that you can lay your hands on. Let's say that you're lucky at your, at one of these companies working on it or some university. How many qubits does it have at the moment and how expensive is it to run? so it's definitely very expensive.
the number of qubits, that used to be the, the discriminator to say, how good a quantum computer is. And then, for example, IBM had, for a long time, this, limited number of quantum computers that they make available, via their cloud infrastructure. those are the five qubits. and gradually, the quantum computers are getting more qubits.
we're talking now, between 100 and 1000, qubits, but that number itself is not entirely irrelevant because, there's an important concept in quantum computing, which is error correction. it's so fragile to operate a quantum computer that they, the error rate is pretty high. So instead of just talking about how many qubits, it's better to get some noise and produce wrong results. So the quality of the quantum computer is more than just the number of, qubits.
And that is a discipline in, quantum computing hardware that's, under heavy research, and they're, on a very frequent basis. there are new papers about, a breakthrough in the, new algorithms or new hardware, especially for, creating qubits with more error correction. I wish it was simple that we could just plot like, the clock speed of a CPU. but there is no consistent definition yet. IBM had this quantum volume defined, but not everyone is using it.
but it is, the indication of how powerful quantum computers are It's not, something trivial, but it's clear that, they are getting better and better. That's for sure. The question is, how fast are they getting better? Okay, so for someone who maybe picks up your book, they're gonna spend most of their time in a simulator at the moment. is that right? so one of the good things about quantum computing is that, it is easy to separate the software and the hardware.
We do understand how the hardware works because that's just the, the fundamental laws of nature and quantum physics. And, we do know, especially from experiments with small quantum computers, that it is indeed working, like this. And now that we know that, we can, create software on top of classical computers that simulate a quantum computer, because we know the rules. Of course, this is going to be much, much slower, and especially requiring much more memory than a real quantum computer.
But the basic rules are known, and we can program them in a quantum computer simulator. And, typically today, if you write software, you do that in a higher level programming language. where you then leverage the lower level concepts. And that is what you do in a quantum, simulator as well. you write, code in most of the cases, almost all cases during development, that code is being executed on a, quantum simulator. But the same code, can theoretically also work on a real quantum computer.
So the moment that, quantum computers are much more, available, the code that you write today and that you run on a quantum simulator will also run on a quantum computer. if that was not the case, then I would not recommend software developers to start with quantum computing today. But because we can already do it today, we can create quantum applications.
it gives a huge advantage to those developers who are already dealing with it, because the moment that quantum computers are, more powerful, more available, those developers can run their applications almost immediately on the quantum computers, whereas others still have to start learning and writing, code. So before we jump into how different it actually is to write that kind of code to, classical, we should call it, programming language style, tell us a bit about your book.
As I started reading this, it came across to me as a very applied kind of book. You talk about how there's a lot of resources that have to do with the very complicated, strange physics of that. And there's also a lot of hype and your book is trying to be an applied guide that's neither of these things. Gives you enough background, but also doesn't buy into the hype. Is that the right impression of the book? that was exactly the goal.
So I'm glad that, you, have that observation because that was the goal of the book. I think it's, practical as it can be, because, I don't think most of the people who read the book have a quantum computer on their desk. So it's not that it's as practical as, more Python for dummies, for example, where you can, use it in practice, but it's mainly targeting existing developers who want to, know how day and day job will be impacted by quantum computing. How can they leverage it?
How can they benefit from it? What's, are the expectations? What's, it's clear that quantum computers are not a solution for everything. And, I think by explaining how the quantum computers are working, which is non trivial. the reader gets a better idea. And, I try to minimize the maths in the book because it doesn't matter. it might help in understanding. And therefore, I wrote this, quantum, simulator, and the code is, open source.
if you really want to know how it works, you can look at that code and then you understand the underlying things, but it is not needed.
And that is something that in the software world that we, often see that, people are using libraries for example, in the Java world, there's a huge ecosystem with lots of libraries, and people can use those libraries and I think it's then important that they know what are these libraries doing, what problems are they solving, how can I benefit from it, and what do I need to do to, to use them.
But you don't need to know how exactly they are solving the problem, because, then you could well, quite everything yourself, indeed. So I think in that sense, it's targeting the pragmatic developer. I want to know when I can use this, how I can use this. and it's good to understand that a bit of the background on why this is working, but, you don't need the, PhD in, physics or mathematics or so that was the main target of that book. And, I think It's actually funny why I did this.
I did my PhD in physics, but then I, moved over to the iT, industry, because for my PhD, I needed to write software and then there was a new software, language, which was Java, but it didn't work on Linux and I had a Linux workstation. So I, together with a bunch of people we ported Java to Linux and then I rolled into the IT world and, yeah, I'm still there.
But when, Jim Weaver, who is now developer advocate, quantum computing at IBM and a fellow Java champion, a good friend of mine, asked me to do some joint presentations about quantum computing. Then I said, Oh yeah, that's fine. I didn't know much about quantum computing, and I think the best way to really learn, or get a deep understanding of quantum computers is to write one.
In software, I do not recommend that to everyone, but writing a quantum, simulator is really helpful if you want to understand, how it's actually working. it gives a better understanding and I think it also helps in explaining it, to people, That makes perfect sense. Would this be an accurate representation then that this is for a pragmatic developer, who also wants to future proof.
there's skills by learning this so that, like you mentioned, when they become ubiquitous at some point, and hopefully they still alive by then, they can use that. Are there any applications that, quantum computing programming can give you today in terms of, production use? Is there anything that you can actually apply it to in your real programmer life day to day? the real practical, examples, require more qubits. so in the scientific industry.
You can already do some work to get a better understanding about for example, how nature works. And that is possible. But the, applications that, are envisioned, typically require much more, powerful, quantum computers that we have today. There is an exception though, and that's what I mentioned early the quantum networking, that does not require many qubits. As long as you can send one qubit, from one place to another place, you can communicate in a secure way.
that is something that's already being used today in commercial applications, and there are specialized companies that are, create devices that, generate, entangled, qubits, for example. sent each one of them to a party so they can generate a shared key. And as a consequence, they can communicate in a secure way. So that is something that's, used in a number of places, mainly for demonstrations.
there's a great team at the University of Deloitte, where they are doing a proof of concepts with the port of Rotterdam, I believe. And, with telco operators as well, because, ultimately the qubits need to be sent over the telecommunication network. So that is something that's, at a small scale, but it can be used, today. can you tell me a bit more about how that actually works?
Because what I'm picturing is someone With a fridge having two untangled qubits packing one up using FedEx to ship it to somewhere and then you have this change of that you can detect on either end. How does it actually work in practice? You mentioned about sending the qubits. How do you send qubits? the good thing is that, the qubit itself is not a physical concept. It's just a logical concept that has a physical representation and everything in nature that can have two states. simultaneously.
as I said in the beginning, if you measure it, you will always measure one state, but, it carries two, states with each, having its own probability. that is a good candidate for being a physical qubit. So different quantum computers use different kinds of qubits for their hardware. It's often superconducting qubits are used, but trapped ions are also used because they have this physical property of allowing a superposition state. And for communicating qubits, you can use photons.
which, can be transmitted, to, fiber. And that is a great advantage because, that means that we can use, a large part of the existing telco infrastructure. So if you put a photon, On your part of the fiber, you can send it to, your, friend at the other side, of the fiber. it can't travel long distances, yet. but you can have, repeaters in between, them. it's an interesting technical, challenge, but it's something that's at least.
In labo experiments and on smaller scales, number of kilometers is proven to be working. Okay, that makes a lot more sense than my picture of a freezer with untangled atoms sitting in there and probably better than signing them by pidgeon.
¶ Programming Quantum Computers
okay, so let's jump into what it actually looks like in practice. The, part one of your book was the intro to the quantum computing. Then you introduce in part two quantum computing concepts, a lot of what we talked about. And then part three is the getting your hands dirty, code examples, algorithms, and all of that. So let's start where we always start. What does a hello world look like in, the quantum computing world?
again, there are some similarities and some differences with, classical computers.
especially in my book, I try to focus on the similarities because that makes it, easier to understand and to use by, existing, developers and, I think at the low level, the similarity is that a classical computer, if you write a hello world, the code, whether you write it in, Java or, Python or Rust or whatever, that, code is being translated into machine code and is ultimately, a number of zeros and ones that are converted because some gates are applied.
So a typical gate in a classical computer is the NOT gate or the AND gate. And so every hello world application is translated into binary operations on bits and the binary operations, are executed by gates, by logical gates. And the concept in a quantum computer is the same. the difference is that, whereas in a classical computer, the input of the gate, for example, we have a, a NOT gate and if you have, input zero, the output of the NOT gate will be that the bit is now one.
And if the input was one and you apply the NOT gate, the input is zero. And with this limited number of gates, it's proven many times that with a limited number of gates, you can create, a whole logical, computer. same applies to the quantum computers, with a limited number of gates, we can create quantum applications. But here, if we compare the, the NOT gate and we move that to. the quantum world.
If our qubit, holds, the value zero and we apply the NOT gate, then the qubit will hold the value one. Now, when I say hold the value, that actually is short for when the qubit has a state that if we would be measuring it, in all cases, it would guarantee a result in a 1 being measured. That is what I mean with the qubit holds 1. So when the qubit holds 1, and we apply the quantum NOT gate, if we would then measure the qubit, we would measure 0.
And vice versa, if it's 0 initially, and then we apply the gate, it will become 1. Here's the difference with classical computers, because a qubit may hold a combination of 0 and 1. If we apply the NOT gate, we will again have a combination of 0 and 1, but with different probabilities than before. the, approach is the same. We apply gates to a number of qubits, and that is at a very low level. And at a higher level, we instruct which gates do we want to use on what bits at what moment.
Similar to how a classical hello world is, going to tell the CPU, load this value in register one, load that value in register two, do an end, and the result is in register three. And, everything on top of that is high level programming, and that's the same for a quantum computers, everything on top of the, cubit, arithmetic is, higher level, programming, which you can do in your, language of choice, actually.
So just a thing that I don't think I understand is that classical computer, you've got the gates and you go one cycle, you store something in a register in a quantum computer. Does it work the same way you do one cycle, it goes through all the gates and you have some kind of equivalent of a register that does the observation at the end of it? Or is it different? the registers are qubits as well. so you do operations just on the memory, like you do in the classical computing.
in a classical computer, whether it's in main memory or register, it is a bit, the thing with the measurement is that you only do this at the end of your application. and you do that only, once, you can't peek inside the quantum computer. we have a classical computer and that's a big difference. you can inspect the values at every moment. And, we have great debuggers. I'm a big fan of, GDB. to check on every step, what are my registers and so on. You cannot do that on a quantum computer.
The moment that you look, it's gone. At least all the superpositions are gone. You will only see zeros and ones. And that's, again, the analogy with, Schrodinger's cat. The moment that you open the box, the cat is either dead or, alive, The observation, the measurement is something that you can only do at the very end and at that moment, all the qubits will be measured as either zero or one.
And the key thing in creating quantum algorithms is to manipulate those algorithms that, the end result will give you information about what you were actually looking for. And that is done by, applying, mathematical, algorithms that will amplify, or cancel, things.
you want to understand something if the outcome that you measure is one, it means that what you, were examining has this characteristic, and if the outcome will be measured as zero, you want it to be, matching with, the other characteristic, and initially there might be, for example, 50 percent chance that you would measure zero and 50 percent chance that you would measure one. If you don't measure it, you don't know anything because it looks just random.
But by applying the correct, gates, the result, makes sense. And I do understand that this is, quite different from classical computers, the zero and the one that you measure in a classical computer corresponds to what you really want to measure.
Whereas in quantum computers, it often gives, meta information and, that is why, apart from the hello world, this is the first thing that I, often describe and it's in the book, no real practical, benefit, but which explains why it is, sometimes, useful to, manipulate the input and the output. And then you measure something and then you know something about the problem that you were trying to investigate.
for anybody, for whom, words Deutsch and Jota don't necessarily mean anything, could you give us a little bit more of what the algo actually is like? Yes, absolutely. I try to simplify the parts that are not relevant to developers. but I try to avoid making fundamental, quantum physics mistakes, so I'm simplifying things here. So that was just my disclaimer in case so the Deutsch, algorithm is, or the problem that's trying to solve there is, effective problems.
We know that, we are given a function. We don't know if it's a constant or a balanced function, there are two constant functions and two balanced functions. and we can only make one measurement. So suppose that we, measure, the result of applying the function to the value zero. If we then get as a result.
zero, then we still do not know is this a constant function or a balanced function, because if we would apply, but we're not allowed because we had only one chance, but if we would apply the function to the value one, and if we would measure zero again, then we know, yes, the function is always returning zero. It's a constant function. But if we would apply it to one and the result would be one.
then we know that it's a balanced function because apply to 0 it gives 0, apply to 1 it gives 1, so that's a silly, problem, but it shows that if we want to know this in a classical way, we need to do two function evaluations. And on a quantum computer, if we can use qubits where those qubits can have a separate position, we can, prove and also show. So that's where, we show the code how it is shown that only one function evaluation determine if it's a constant function or a balanced function.
And that is because we apply it to, a superposition of zero and one, and then do some operations so that we are guaranteed that after the operations, the value is zero. Then we know, for example, that it's a constant function or a balanced function.
So we actually need pen and paper to follow this or, I think it's explained well in the book and you can run the code, but the key point here is that, we've proven that there is a kind of a problem, a completely useless problem, but there is at least one problem where, we need, two function evaluations on a classical computer to solve it, and we can solve it with only one evaluation on a quantum computer to solve it.
Now we can extend this to the Deutsch Jozsa, and then you can easily prove that, you will exponentially need to do more, function evaluations on the, classical computer and only linearly. More evaluations on the quantum computer. So that is a simple example that shows that there are problems that require less, steps on a quantum computer than on a classic, computer. And that is I think, one of the, root advantages of, quantum computers.
And it also immediately shows that this is not applicable to everything. It's not, applicable to, to user interfaces or so. It's to a special kind of problems that, Yeah, scale exponentially on a classical computer and you can prove that they, scale, sub exponentially or, linearly, on quantum computers.
Yeah, I think this is becoming very clear from what you're saying that quantum computers are not just, as some people like to paint them, a replacement or an exponential improvement on classic computers, they're going to work on very specialized problems where they make sense, and they're going to be narrowed to that corner, probably for a very long time. I think you mentioned also shores and I think I remember Grover's search. This sounds a little bit more applicable, don't they?
yeah, real applications with real benefits. But then the drawback is they are much harder to explain adding to what you said, and that's indeed right. So quantum computer is not, something that's going to replace your desktop computer or laptop, or mobile phone or so. But I actually compare it more with, in today's computers, and for a long time already, you have a CPU that's doing lots of work. and, it's getting more attention recently. I've been using this example for a long time.
there's also, one or more cheap use in most, computers and, for some tasks, CPUs are extremely well suited. And for other tasks, GPUs are, much better. and I think the same applies to, quantum computers, and I envision that in the, potential, applications, or computers of the future, we have a combination of CPUs, GPUs, and then QPUs, so the quantum processing unit where The different processing units are executing tasks that they are, very well suited, for.
So for the vector operations, you would go to the GPU for the, typical, operations. You would use the CPU. And then for operations that require lots of, explain scale up, you go to the QPU and then the, the cool thing is that as a developer, you can leverage the benefits from the CPU, the GPU and a quantum computer without, knowing all details about them. I think most people who, write, for example, AI, applications, they don't know the individual instructions that the GPUs, have.
same with quantum, software, you do not need to know all the low level, gates and details about quantum computers, but, applications, should know that they can benefit from different, processing, types. So that is where I think that, there's a place for, quantum computers, for classical computers for GPUs.
And so in typical applications, I think we're going to have potentially also like the TPUs, I think they call them, like the ones that are like GPUs, but work on lower resolution, so that they're better suited for like LLMs and the QPUs as well. so back to my question about Grover's search, for example, let's maybe just see. What's the potential of, an algo like this and how does it work like high, very high level? Yeah. it is more tangible.
It's more, down to earth, than, the, Deutsch Josse algorithm. but it's also, I have to be honest that the name itself is a bit misleading. and especially if a marketing department was to sell Grover Search, then it would probably say that, This is going to speed up all your searches, by a, a multitude. But the search itself is, as I said, a bit misleading. The algorithm allows you to find an element in an unstructured list a base to a specific rule.
So if you have, a list of, 1000, elements, entities, whatever, and you apply a function, to those, elements, and if there's exactly one element of the whole list where that function would say: true. And in all other cases, it would say false. so doing that is, faster with Grover search than any classical algorithm can realize. For example, if we have, let's say a very stupid example, would be, we have a list of 100, athletes, and one of them is the, world champion in the, 5000 meter.
So the function that we apply is, is this person the world champion in the 5000 meters. So for all of them, except for one, that value will return zero. And for one, the value will return, one. If we would do this on a classical computer, There are extremely optimized search algorithms, but still it would be in best case linear. So the moment that we get more, if the list becomes bigger, then on average, we will have to do more searches linear with the input.
And on a quantum computer with Shor's algorithm, we can prove that, We need to do more evaluations. But instead of linear, it goes with the square root off the number off evaluations that we do. So it's definitely showing a speed up compared to classic search algorithm. and I think, going with the square root instead of the whole number is a major improvement. But as I said, It does not replace your SQL search query.
It's really for simple searches where you know that there's only one element in the list that will result in, that you're looking for. So it's not that give me a list of all people older than 40 years old who live in this city or so. It's really more the example of give me the one element in this list that is, the world, champion in the 5,000 meter or so, that is a grover's, search, which, is definitely, useful.
so it's more down to earth and it's proven to give, an advantage, over the best known, classical algorithms. So let's jump back to the QPUs.
¶ Future of Quantum Computing
I was going to ask you for predictions for the future, where you see all of this going in terms of hardware and applications, and maybe in, one and five and 10 years, you hinted already at that, seeing the QPUs integrated in everybody's desktop. What else do you predict is likely to happen? What's your best guess? What do you expect to happen? Let's say in five to 10 years from now. I think the quick win and then we're not talking five years, it's, sooner because it is actually already there.
But on a limited scale is the, quantum networking, with, possibility to do quantum key distribution and to do secure, communication. creating a shared key between two parties. That is something that I think, will become, more widespread in the next, few years because the limitation there is, the hardware is available. you only need one qubit, to make this happen. The limitation is more the network.
and the quantum repeaters and so that is, that is less of a technical problem than creating general quantum computers. So that's where what I think is going to work in the short term. The, bit longer term is I think, more, specialized algorithms that, are targeting a specific task and that can be, for example, optimization algorithm, traveling salesman, which is, extremely interesting for some companies, or specialized financial algorithms, for stock market, things.
Or, specialized, physics or chemistry algorithms that are then applied on a dedicated quantum computer that's really optimized to solve this particular algorithm. is then more or less a combination of hardware and software. So the hardware is more or less pre programmed to run that specific, application.
I think that is what we will see in the medium term and, yeah, let's say five years or so, and then the more general quantum computers, which, are completely, independent from what software is going to run on top of it. not that I have a personal, opinion about it.
It's just what I read from, the, people who are dealing with the hardware, that they find realistic, and then depending on what your source is, you will see some hardware engineers will say that, it's going to be available in two years. Others are saying that it's never going to be available. So my.
rough guess is 5 to 10 years, then there's a fair chance that Shor's algorithm can be, applied at a large, scale, which is, of course, very worrying if by then you're still using, algorithms that are vulnerable by source algorithm, or actually worse, if the data that you're using now for, communication, is stored somehow, That data can be decrypted by quantum computers when they are powerful enough.
So the time frame about when Shor's algorithm, for example, is going to be available, it's maybe a bit misleading, because even if it's only in 10 years from now, that does not mean that your data today is safe, because it's not that hard to snoop data from a network and store it locally, and then once one of the quantum computers are powerful enough, they can decrypt that data.
and, and that can give quite some interesting information, about secret conversations, in the past when I say that it's gonna take at least five years before Shor's algorithm is applicable. Do not want to say that people can use classical, encryption like AS and so forth the next five years without being worried. I think, We should be worried today already. You should be worried. And also with all the leaks where companies lose their entire databases and they say, Oh, don't worry.
It was all encrypted. That's the same problem, right? Yes, absolutely. that is very dangerous. more companies, and organizations are realizing, this, for example, signal the, messaging application, is already using, post quantum cryptography algorithm next to the existing, algorithm to encrypt, the data because, If data, going from and to a signal users is put somewhere on the hard disk, that's safe. That cannot be decrypted with a quantum computer anymore.
you never know if there's going to be new algorithms being found out. But a number of companies are now following that example. already enhancing their encryption algorithms, which I think is a very smart thing to do. I still think that in the end, it will still be better if they would use quantum key distribution and quantum encryption, because then a quantum computer can not break quantum encryption. So then they are still safer.
That's, can only be, really rolled out practically when, quantum networking is rolled out across the globe.
¶ Conclusion and Final Thoughts
that's an optimistic note to wrap up the episode on. Hopefully you're not too scared. for anybody who wants to go and check out the book, once again, it's called. "Quantum computing in action". It's published by Manning so we can get it from manning. com or you can go to your usual, book provider and it's absolutely worth a read. my guest was Johan Voss. It's been an absolute pleasure and I hope to see you again. Thanks. It was really, fun to talk about this.
