The Changelog: Software Development, Open Source - Prepare yourself for Quantum Computing (Interview)

Episode Date: March 24, 2020

Johan Vos joined us to talk about his new book 'Quantum Computing for Developers' which is available to read right now as part of the Manning Early Access Program (MEAP). Listen near the end of the sh...ow to learn how you can get a free copy or check the show notes for details. We talked with Johan about the core principles of Quantum Computing, the hardware and software involved, the differences between quantum computing and classical computing, a little bit of physics, and what can we developers do today to prepare for the perhaps-not-so-distant future of Quantum Computing.

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for ChangeLog is provided by Fastly. Learn more at Fastly.com. We move fast and fix things here at ChangeLog because of Rollbar. Check them out at Rollbar.com. And we're hosted on Linode cloud servers. Head to Linode.com slash ChangeLog. This episode is brought to you by DigitalOcean. DigitalOcean's developer cloud makes it simple to launch in the cloud and scale up as you grow. They have an intuitive control panel, predictable pricing, team accounts, worldwide availability with a 99.99 uptime SLA, and 24-7, 365 world-class support to back that up. DigitalOcean makes it easy to deploy, scale, store, secure, and monitor your cloud environments.
Starting point is 00:00:42 Head to do.co.changelog to get started with a $100 credit. Again, do.co slash changelog to get started with a $100 credit again do.co slash changelog what's up welcome back everyone this is the changelog a podcast featuring the hackers the leaders and the innovators in the world of software development. I'm Adam Stachowiak, Editor-in-Chief here at Changelog. Today, we're talking with Johan Voss about his new book, Quantum Computing for Developers, which is available to read right now as part of the Manning Early Access Program. Stay tuned to the end of the show to learn how you can get your free copy. We talked with Johan about the core principles of quantum computing, the
Starting point is 00:01:23 hardware and the software involved, the differences between quantum computing and classical computing, a little bit of physics, and what developers can do today to prepare for the perhaps not so distant, because quantum computing is a place where I think a lot of our listeners, and probably the three of us, come from very different places in terms of our understanding of it. So, Johan, first of all, thanks for joining us, but then also explain to us the core principles of quantum computing, how they're different than what I'm used to and what everybody's used to right now. Right. So thanks for having me.
Starting point is 00:02:03 Quantum computing is actually very, very different from classical computing. There are some misconceptions and people sometimes think that, well, computers are getting faster every year and CPUs are getting better. There's more memory. And then a quantum computer
Starting point is 00:02:17 is probably just the next step to this. But that is not true. It's actually completely untrue. A quantum computer has not much in common with a classical computer. The main difference is every classical computer that has been built in the past 50, 60, 70 years or so is built on top of transistors, very small electronical pieces that decide whether there should be current or not. And a quantum computer isouwd op transistors. Dus de fundamentele bouwblok is heel anders. En als gevolg zijn de concepten van kwantumcomputing
Starting point is 00:02:52 heel anders. Het core concept van een klassieke computer is een bit die 0 of 1 kan zijn. En al het processing in die bits en al de logiek en alle algoritmes zijn gebaseerd op 0's of 1's. Alle karakters en alle flow zijn gebaseerd op 0 en 1. En in een kwantumcomputer is dat niet het geval. Omdat een qubit, wat je de equivalent van een bit in een kwantumcomputer kan noemen, kan 0 zijn. Het kan ook 1 zijn. Maar het kan ook een combinatie van 0 en 1 zijn.
Starting point is 00:03:25 En dat is natuurlijk volledig anders dan een traditionele computer. En terwijl dat misschien vreemd kan klinken, is het eigenlijk niet vreemd, omdat de natuur allemaal over kwantummechanica gaat. En de computers die we vandaag hebben zijn best artificieel, omdat we de superpositie exclueren. We zeggen dat elke bit 0 of 1 zou moeten zijn. are pretty artificial because we exclude what we call the superposition. We say that every bit should be zero or one. But that's not how nature works. There are states that are a combination of zeros and ones.
Starting point is 00:03:57 So a quantum computer is much, much closer to real nature than a classical computer. Are you saying then, I guess just for a one-to-one, if someone's familiar with, say, quantum mechanics or any nature of physics, if they're somewhat familiar with the quantum realm, or if that's science fiction or not, if they're familiar with that, does a lot of it transfer in terms of quantum computing mirroring reality? Yes, yes. So quantum computers are totally leveraging the principles of quantum mechanics. So, and for example, if you're a bit familiar with quantum mechanics, you know that electrons can have different spins. They can be in spin up or spin down or in a combination of spin up and spin down.
Starting point is 00:04:38 And that actually applies to quantum computing as well. A bit can be zero, it can be one, or it can be a combination of zero and one. So there are fundamental particles that can have a property that is sort of undefined until you measure it. And that is one of the core principles of quantum mechanics, the uncertainty. Until you make a measurement, the property is not really defined. And that is the same core idea of quantum computing. As long as you don't make measurements, the system can be in defined. And that is the same core idea of quantum computing. As long as you don't make measurements, the system can be in a superposition of all the possible states. What does that look like?
Starting point is 00:05:14 From a physical point or from a computational point? Well, let's take them both in order. What does that look like from a physical point of view? I guess you don't look at it because once you observe it, it's no longer in that state. Yeah. Observing it actually changes it, so it's which is sort of a recursive loop, is that it is what it is until you observe it, which changes when you observe it.
Starting point is 00:05:35 So are you observing it prior to the change that you influence by observing it, or it gets really a mind spin? Yeah, and then you come close to the philosophical questions. Does it exist before you observe it, or does it exist because you observe it? Right. And you can go very, very far with that. Now, what I do recommend is not to think too hard about this, because... Okay, I can do that.
Starting point is 00:05:57 Yeah, you won't do much more anymore. So I prefer looking at mathematical equations without trying to have an interpretation because it's mind-boggling. But yes, indeed, if you look at it, it falls down to a classical state again. So if you look at the qubit, if you try to measure it, so we know that it's 0 or 1 or some sort of combination. If we measure it, it will always be 0 or 1. And in a complex quantum system with many qubits, there can be a huge amount of possible states. But once you observe it, it will fall back to one state only. So that's one of the biggest challenges with quantum computers. You should not look and you
Starting point is 00:06:39 should not be able to look because once you observe the system, it falls down to a classical state. And that is one of the things that makes the hardware of quantum computers pretty challenging. Any measurement of the system or interaction with other components will cause the system to collapse to a base state. What does an observation look like? Give us some degree of an example of observing. Yeah, now this becomes tricky because I don't know anything about hardware, to be honest. But it depends on what type of quantum computer. So I'll sort of circumvent that question. For example, Google and IBM, they are
Starting point is 00:07:19 mainly using subconducting quantum computers. So they are cooled to a very, very low temperature, a few millis of Kelvin. But there are others, for example, Honeywell announced last week a quantum computer based on trapped ions, which is a completely different system. But in most cases, by applying lasers, you can manipulate the qubits,
Starting point is 00:07:41 whether it be trapped ions or electrons or photons or whatever. And then in order to get a measurement, somehow you need to have them interact with other particles. And then you measure the effect of that particle. So that's in general in physics, in elementary physics, things that happen. If, for example, the double slit experiment, you send the beam or you send particles to a slit and then you measure their reaction when they encounter other particles so it's all about indirect measurements so the moment that the qubit that you want to measure interacts with another elementary particle you can based on the properties of that second particle you can detect the state of the qubit at that moment.
Starting point is 00:08:26 So it's then already zero or one. So you cannot detect a superposition. You cannot detect whether it was 70% zero and 30% one. So you will always measure zero or one. And what's the point then of quantum computing? Why is quantum computing important? Considering, I guess, the difficulty of observation, what's the point then of quantum computing? Why is quantum computing important considering, I guess, the difficulty of observation? What's the goal? laten we zeggen 8 kubieken en met deze 8 kubieken kun je twee tot de macht van acht superposities hebben en je kunt alle soorten processing doen met al deze combinaties, dus 256 combinaties in dit geval, maar uiteindelijk moet je een beoordeling doen en je bent terug naar 8 kubieken
Starting point is 00:09:18 die in een klassische staat zijn gevallen, dus je eindigt eigenlijk met 8 bitten, dus dat lijkt state, so you end actually with 8 bits. So that seems like there is no advantage over classical computing, because it may look like a black box and then you are telling your audience, yeah but inside this black box everything turns into gold, and once it comes out it's wood again. So for example you tell your audience, we put wood in this black box, there it becomes gold, all shiny, and then when it het eruit komt, is het wood weer. En je publiek zal vragen, wat is de waarde van dit? Dus de mindset die ontwikkelaars moeten maken, is dat in veel gevallen het uitkomst niet belangrijk is, maar het proces is belangrijk. Soms ben je niet geĆÆnteresseerd in het uitkomst van een probleem, maar in het proces dat je moet volgen om een uitkomst te krijgen. process is important. Sometimes you're not interested in the outcome of a problem but
Starting point is 00:10:06 in the process that you need to follow to get an outcome. And the quantum algorithms that we know today and that people are working on today are mainly looking into this area. For example, let me give a very fictive example because there is no known quantum algorithm that is going to do this but imagine that you have 100 numbers that are randomly sorted and you want to know the highest number of this what you do typically in a classical computing is you can do some bubble sort or some quick sort or whatever and then you will get the highest number so the result of this problem is one single number en dan krijg je het hoogste nummer. Het resultaat van dit probleem is dus Ć©Ć©n nummer. Een kwantum computer kan dit misschien alleen in Ć©Ć©n run kunnen doen. Het resultaat is dan nogmaals maar Ć©Ć©n nummer.
Starting point is 00:10:56 Maar het feit dat het het proces zo snel kan doen als een klassieke computer, is waar de echte verdiening vandaan komt. Een realistischere voorbeeld is het vinden van de periodiciteit van een functie, is where the real gain comes from. And a more realistic example of this is finding the periodicity of a function, which is something that's actually at the core of a Shor's algorithm, which we might come into, which is supposed to going to break encryption.
Starting point is 00:11:17 Finding the periodicity of a function is something that you can do on a classical computer, but it's going to be much, much faster on a quantum computer. And the input of this is just a function and the output is just one number. So you don't need much numbers in the end to prove that this is faster. You just need one number. And if you can do the processing part much, much faster, then you gain something. So you mentioned you don't know very much about hardware. You obviously know a lot about software.
Starting point is 00:11:48 Both things are in play here. And one thing about quantum computing is that it has been very much the realm of academics and researchers so far because of the hardware problem, it seems, probably both problems. But what's the state of the hardware problem, it seems, probably both problems, but what's the state of the world? Because it seems like quantum computing has been a threat or a technology that's always been next year, two years. It's always coming, but it's never come yet,
Starting point is 00:12:16 at least to the mass production phase. It's kind of like IPv6. It's going to be here eventually. Although IPv6 has been here for years, we're just not using it. But what's the state of the hardware? You mentioned IBM and Google are doing some things. Catch us up. Yeah, well, actually, quantum computers are already being used,
Starting point is 00:12:35 but not at the scale that one envisions. But, for example, you can create entangled particles and use those to do secure encryption. There is already hardware that allows to do this. And with systems that can work with one qubit only, you can already do a few things. Now, what people really think about when they hear about quantum computing, it's, well, the first example that most people talk about, it's about breaking encryption. And then the question is, how far are we from breaking RSA? And that's very difficult to answer.
Starting point is 00:13:10 And I personally don't think that this is the most important application in the short term. But anyway, how far are we from this? Well, that's hard to say again. Initially, people thought that the number of qubits is what defines how far we are in quantum computing. So similar to classical computing, remember 640K would be enough for all applications. And then computers became bigger and bigger. So memory increased. And one would assume that this procedure would also be followed with quantum computers.
Starting point is 00:13:43 So we start with one qubit. You cannot do much with one qubit, but then niet veel met Ć©Ć©n qubit doen, maar dan twee qubits, vier qubits, acht qubits. En dan is de vraag hoeveel qubits we nodig hebben voordat we iets hebben dat echt wordt gewerkt. En meer belangrijk, hoeveel qubits hebben we vandaag? De vraag is niet zo veel over hoeveel qubits, want het zou niet extreem moeilijk zijn om een kwantumcomputer met een groot aantal qubits te krijgen, be not extremely difficult to get a quantum computer with a large
Starting point is 00:14:05 number of qubits but they have to be stable for a long enough time and that is another problem. So getting a large number of qubits is one thing but having them stable for a long enough time to do some processing is the other thing because as we said in the beginning if you measure that system or if there somehow is interaction between the system and noise then your calculation is over so the quality of the qubits is extremely important so at this moment we're at about 50 or 100 qubits that are sufficiently stable to do something useful. And I think this is good enough for developers to start working with it and to start experimenting with software on top of real quantum hardware. It's going to take a while before we have quantum computers
Starting point is 00:14:59 that are strong enough to break encryption, but it is not going to take a long time before we have quantum computers that can apply encryption. And that is something, for example, at the Q-Tech department of Delft University of Technology, they hope to achieve that in 2020. So this year, they want to show a network of quantum computers, very small quantum computers, you only need one or a few qubits in order to have them interact with each other and send messages in a completely secure way. And I think that is going to be the first widespread application of quantum computing
Starting point is 00:15:38 and it's maybe not as popular as breaking encryption, but guaranteeing encryption is, I think, for financial institutes, healthcare, everything where privacy is important is going to be an important aspect. And I think that give it a year or so from now, and that should be achievable, not yet for everyone at home, but it should be used in between banks and different industries. So correct me, or tell me if I'm hearing you correctly. It sounds like you're saying that before quantum computing is powerful enough to break our current traditional encryption algorithms, it will have produced its own new style of encryption
Starting point is 00:16:16 that's more secure and unbreakable. Is that what you're saying? Yes, exactly. Oh, that's good news. Yeah. Isn't it? I suppose, yeah. Because the scary thing is it isn't going to break everything.
Starting point is 00:16:29 And I was starting to think, well, I was thinking about the progress of these things. And I was like, if I was a nation state and I wasn't interested in telling everybody how far I've gotten, I was curious how close we are to like, could nation states have already privately developed the hardware to do this, or are we too far away? And it sounds like, well, before we get to there, we're already going to have options. Yes, exactly. So that's the reassuring order.
Starting point is 00:16:56 So we will first have secure communication, thanks to quantum computing, before we have breaking of the encryption. Now, you never know, of course, what nations or big companies are already building. Yeah, what they're capable of behind closed doors, right? Yeah. But the difference between the requirements for a quantum system just to do secure encryption are much, much simpler than the requirements for a quantum system that breaks RSA encryption.
Starting point is 00:17:24 That's interesting. Of course, if I was a nation state and I had breaks RSA encryption. That's interesting. Of course, if I was in Asian state and I had broken RSA encryption already, I wouldn't tell anybody about it, you know? No, but there might be signs if you had this. For example, with the same quantum computer, you could also tweak the whole Bitcoin system and do the mining. And so you would see that in the Bitcoin price, for example. And now, not to worry people, but even if we think that breaking encryption is 10 years away,
Starting point is 00:17:51 that is still something to worry about today. It's not that long. It's not long and it may come back to you because your bank transactions that you're doing now, if they are intercepted and you don't worry about them because, whatever, they are secure, or your messages that you're using a secure messaging application Als ze nu worden geĆÆntercepteerd en je je er niet over zorgen omdat ze zeker zijn, of je maatjes, je gebruikt een zeker maatjesapplicatie en je stuurt maatjes naar elkaar,
Starting point is 00:18:12 en je hebt geen zorgen dat ze op een server zijn omdat ze geĆÆncrypteerd zijn, als iemand die recorden steelt, dan zijn ze geĆÆncrypteerd, ze kunnen niets met hen doen nu. Maar in 10 years from now they're gonna be yeah so imagine what this uh for example communication between two presidents that is encrypted and that they assume that no one will ever see and then in 15 years from now uh someone wants to make history and he has those messages and he decrypts them and um that might shed a new light on history. Interesting. That might be kind of cool, kind of like the Freedom of Information Act.
Starting point is 00:18:51 You won't need an act for that. You'll just have freedom of information because you'll have unlocked 50 years of communications that were previously private. As long as there's a statute of limitations on that information or something. Maybe not be all bad. Especially with open government and open data and the availability of some of this data. I guess in some cases that's really just literally open, not encrypted.
Starting point is 00:19:16 But at some point having public access to past conversations of 50 years ago presidents. That's interesting. I'm actually less concerned about public officials having their communications publicized eventually as I am private citizens having their private conversations publicized. That's more concerning in my opinion. But either way, that's interesting.
Starting point is 00:19:40 Ten years from now, because you think once you've got it encrypted across the wire, you're fine. But that data at rest is going to be resting there for years and years. And it may come back and bite all of us. Be careful out there. Yeah, the in parentheses, not yet. So it's private, or it's encrypted for now, might be a better way to say it. Because it's encrypted today, but for now.
Starting point is 00:20:04 Well, Johan, you got us all depressed and scared over here. That's right. Bring it back to the qubit. Perk us up. Perk us up. I'm curious. You'd mentioned about this idea of a qubit and stability, which I'm still kind of grok what you mean by the hardware. It sounds a lot like it's tied to literal physics, meaning literal particles. The computer is not just simply,
Starting point is 00:20:26 I guess even in classical computers, it's photons, right? How does a computer run today? Electricity, right? Is that photons? How does it change once it goes into quantum realm? Does it, or to the quantum computer? Yeah, I mean, is it based upon a stability of an actual particle?
Starting point is 00:20:44 Yes, sort of. Now, I hope there are not too many hardware experts listening because they will kill me. But one of the cool things, if we go from classical to quantum, so you know that they try to make transistors smaller and smaller. Right. But we're now at the smallest possible dimensions of a transistor because a transistor is actuallyoeld om elektrons
Starting point is 00:21:07 van Ć©Ć©n kant van de transistor naar de andere kant te blokken. Dus als het 0 zou moeten zijn, dan zou er geen vloer zijn. Dus het blokt dan. Maar als je ze kleiner maakt dan vandaag, dan kan er een effect zijn genaamd kwantum tunneling.
Starting point is 00:21:21 Dat vermoedt elektrons van Ć©Ć©n kant op de andere kant te zien. quantum tunneling that still allows electrons from one side to sort of magically spooky appear on the other side so that is a hard limit on transistors in classical computers today that you can't make transistor much smaller than today so that is also why more slow is slowing down or coming coming to an end and in quantum computing that's different because there you actually want those quantum effects to happen. But stable is actually a difficult word because what does it mean, a qubit that is stable?
Starting point is 00:21:56 So the real difficulty is that you can bring with lasers a photon in a state where it has a spin up and a spin down, or it is actually a combination has a spin up and a spin down or it is actually a combination of a spin up and a spin down but it's tricky you it's it's very hard to maintain it in that state for a long time but you want to do lots of processing on that state and that's really mind-boggling how you can do that so you won't have that particle interact with other particles and without actually measuring those particles and if you do something slightly wrong then the system will collapse into one of its possible base states so all the combinations of zero and one are going back into either zero or one and that is what makes it hard to keep them stable for a long time.
Starting point is 00:22:47 The moment that you look at it, it's gone. Even describing look is difficult too. Look, how do you look at it? The idea of observation and looking is very challenging to describe as well. Absolutely. So observations is one of the most difficult aspects actually in the whole quantum physics. And it's funny that we talk about this for a long time, because this is actually
Starting point is 00:23:11 what I avoid in the book. Because, I mean, how many software developers know about how a transistor is working? Personally, I find it extremely interesting. So all the physics behind quantum mechanics is extremely interesting, but it's very hard. The core point of what I try to do with this book is explaining to developers that they do not need a PhD in physics to work with quantum computers, similar to how they do not have a deep understanding of how transistors work, but they can still write applications. Nevertheless, it's really fascinating and I love to discuss all the hardware aspects. It's just, this is difficult and mind-boggling if you start thinking about it, especially the thing about observations if you um i read lots of papers
Starting point is 00:24:05 and i watch lots of presentations about that concept of observation and where exactly does the observation happen and what causes reality and consciousness and but that's going to bring us a bit too far i think in this new world of remote first, more and more teams are looking to build video into their apps. Everything from media publications, education and learning platforms to communities and social platforms. If you're trying to build video into your app, you're probably deciding between having full control by building yourself or faster dev cycles with an out-of-the-box platform. Well, Mux gives you the best of both worlds by doing for video what Stripe has done for payments. In a world of complicated encoding, streaming, multiplexing, and compression, Mux simplifies all things video to an easy-to-use API to make beautifully scalable
Starting point is 00:25:02 video possible for every development team. Mux lets you easily build video into your product with full control over design and user experience. Videos delivered through Mux are automatically optimized to deliver the best viewing experience. And you don't have to deal with the complaints about rebuffering or videos not playing. Get started at get.mux.com slash changelog. They're giving our listeners a $50 credit to play with.
Starting point is 00:25:25 That's over an hour's worth of video content that you can upload and play with and check out all their features, including just-in-time publishing, watermarking, thumbnails, and GIFs. To get the credit, just mention changelog when you sign up or send an email to help at mux.com, and they'll add the credit to your account. Again, get.mux.com slash changelog. Shout out to our friends at Manning for hooking us up with some free copies.
Starting point is 00:26:00 Stay tuned to the end. You can win a copy of the e-book. And it's very practical. So we've been talking about the highfalutin, hard to understand, mind-boggling aspects. And I think the hardware and the physics and really the paradigm lead to that. But when it comes to software developers, first of all, we want to dive into the book and what you're here to say to developers today in 2020 about quantum computing. But I'm just curious, why write a book so practical about something that seems so, at least today, impractical in terms of it's out there? Why now? And why write this book? Yeah, surprisingly, you're not the first one to
Starting point is 00:26:36 ask this question. So I prepared the answer. Well, actually, do you remember the Millennium bug? I do. Y2K bug, yes. When did you think they started working on that? In 1999, December 31st? Probably before Christmas, at least. Yeah. So that's the thing you want to be prepared for when something big is happening. And we discussed breaking encryption. So do you want to be A, the first one,
Starting point is 00:27:06 or B, the last one to break encryption? And especially if you want to guard yourself against this, if you want to use secure communication, this is not something that, I mean, we try to make the software as easy as possible, but it's at this moment, not something that you will just download from the internet and you have it running. It takes a while before you really understand the benefits and how
Starting point is 00:27:30 it works and so it's better to start working on it now and to understand what is possible and how you should program for it so that your algorithms are ready by the time that real powerful quantum computers are there or even for if you want to do secure communication using a quantum key distribution that is really not extremely far in the future so if you program that now and you have it on real quantum hardware in a few years from now it's really the time today is really the time to start looking into this for another reason as well even if real quantum hardware in a few years from now, it's really the time, today is really the time to start looking into this for another reason as well. Even if real quantum hardware is still not yet widespread available, quantum simulators in general are available today. And while they are of course much slower than what we expect real quantum hardware will do, their behavior is expected to be exactly the same as real quantum computers.
Starting point is 00:28:28 So you can test your software already now and you can run it on quantum simulators. And that allows you to create all kinds of applications and to see which part should be quantum written, which part should be classical written, because we have those quantum simulators that are exact predictions of how it will work on real quantum hardware and that is something of course that we didn't really have with classical computing because there was no pre-classical computer so it was hard to work on algorithms for classical computers when there were no computers already but now we can for classical computers when there were no computers already. But now we can use classical computers
Starting point is 00:29:07 to simulate quantum computers and to write software for quantum computers. Yeah, I think there's a huge opportunity whenever you have something that's just on the horizon but seems to be obviously a step forward or a paradigm shift for those forward-looking developers to get accustomed to it today so they're at the forefront tomorrow makes a lot of sense one thing that you said here which
Starting point is 00:29:33 you also write about in the book is how quantum computing isn't going to take over classical computing insofar as i'm not going to have an iphone that just has a quantum computer in it. You mentioned there'll be most likely a CPU, maybe a GPU, and then also a qubit processing unit because quantum computing is not better at everything. It's better at very specific problems, and classical computing is better at other problems. What are the things that quantum computing is really good at? We talked about breaking encryption, but surely there's other uses of this technology. Beyond that, where does it really shine?
Starting point is 00:30:15 And where would I as a developer say, well, I'm going to turn to quantum computing for this particular problem I have and classical computing for this other particular problem I have? So that's definitely true. So quantum computers are not intended to create a web page or so. That is not the goal. And sometimes people wonder how large is a potential field
Starting point is 00:30:36 of quantum computing versus classical computing? Is quantum computing just a special case? Well, actually, I see the other way around. Quantum computers are very close to nature. They are natural. They use natural building blocks, elementary particles, and classical computers are special cases where we put everything in zeros or ones, which is pretty artificial, but very useful for, for example, user interfaces. And so now the fact that quantum computers are so close to nature make them already applicable for all kinds of problems related to nature. And I'm talking about
Starting point is 00:31:12 physics, medicines, biology. If we want to understand the interactions of molecules, it is extremely difficult to model this on a classical computer. Even the three-body problem is extremely hard on a classical computer. So the interactions between molecules or the moment that we talk about complex molecules, that's impossible to simulate with high enough precision on classical computers. And because, why is this? Because those things are by definition quantum mechanical. Waarom is dit zo? Omdat die dingen op definitie kwantummechanisch zijn. En de beste manier om iets kwantummechanisch te simuleren is met kwantumcomputing, dat ook kwantummechanische karakteristieken gebruikt. Daarom is het erg handig.
Starting point is 00:31:58 De consequentie van dit is dat kwantumcomputing ook in het algemeen heel applicabel is voor complexe problemen waar, zoals we eerder zeiden, een kubiet kan in de staat 0 en kan in de staat 1 en kan in een lineaire combinatie en dit veroorzaakt twee mogelijke staten met ƩƩn kubiet, 4 mogelijke steden met kubussen, 8 steden met 3 kubussen. Dus dat is een exponentiƫle functie. Dus veel problemen die exponentiƫle zijn, kunnen zeker van quantum computing gebruiken. En daarom is het breken van de equipe ook een van de omgevingen waar quantum computing klassieke computing uit kan voeren, omdat is een exponentiƫle probleem. En zonder de mathematische details te gaan, betekent dat dat als je de probleem twee keer zo groot maakt,
Starting point is 00:32:55 de tijd die nodig is om de probleem te oplossen, kan twee keer zo groot worden. Dat is geen probleem, maar als het exponentiƫle groter wordt elke keer dat je een beetje toevoegt, dan is het twice as big, that's not a problem. But if it becomes exponentially bigger every time that you just add one bit, then it's soon impossible to do with a classical computer. And with a quantum computer, that is more easy to tackle. So those problems that require exponential computational power, so that if you make the problem slightly bigger, that it only becomes somehow harder to solve. Those are candidates to be dealt with by quantum computers. I wonder about things like machine learning algorithms or teaching. Thoughts on that? Yes, so that is one of the areas where I think that quantum computing will, not in a very short term, but in the longer term, be really beneficial.
Starting point is 00:33:44 And that's machine learning. I think we made great progress in machine learning over the past decade or so. But still, if you look at how difficult it is for, I mean, if you ask a computer to calculate the square root of a five digit number, it will do that immediately, while a human needs more time for this. But if you ask a computer to detect a rabbit from a dog on a picture, you need to fill it with thousands of images before it can really do that. And the algorithms are getting much better. But for example, if you do deep learning, this requires lots of linear algebra and matrix calculations now if you can leverage the power of quantum computing where basically those things can be mainly done in
Starting point is 00:34:33 parallel then there's going to be a tremendous speed up in this and i think actually that many of the hard problems in ai can only be solved if you also apply quantum computing to really increase the power of the mathematical algorithms that need to be performed in order to do this. What are some domains where you don't see quantum computing making big waves? Well, everything related to user interfaces is something that's very subjective, where you don't need to be fast, but you just need to be right. And there it's less applicable. Which is hard too, because, you know, what I know of a computer personally is what I see. And so to go beyond what I see is difficult. And that's why it's difficult to grok this quantum computing
Starting point is 00:35:26 because it's unlike anything I've personally seen before. Yeah. Yeah, exactly. But that's going to be a bit philosophic again. That brings us back to the original question. You're talking about what you see and what you observe. Now, that's not quantum anymore. At that moment, you lost the quantum anymore. At that moment,
Starting point is 00:35:45 you lost the quantum state. You've gone classic again. But everything that is needed before you make that observation is quantum. And as Richard Feynman said, nature isn't classical, it is quantum. So if you want to study this, you better need a quantum computer. And in the end the observation that you make yes that is classical but everything that is behind this observation that causes you to be possible to make this observation that is actually quantum yeah and the analogy i heard or a metaphor of like expressing this as if i can see a car moving and I can predict, okay, I see that car going from here to there to the, say, the stop sign or whatever. But at the quantum spectrum of things,
Starting point is 00:36:33 you're predicting a crazy amount of particles. The prediction, you're predicting where they're going. So as a car, as a large object, I can see that the car is moving from here to there, but I'm really predicting a massive equation based upon my visual knowledge of the direction of the car. In some area of the quantum realm, pretty well understood at the elementary, at the level of elementary particles. So one particle may be in a separate position, but how does that translate to larger bodies and larger structures like a car or so? There's a problem that's extremely, well, that is puzzling the greatest scientists over the last couple of decades. So I think it's pretty hard to solve. So bringing this back to ground level here for a moment,
Starting point is 00:37:35 you say they will not create quantum algorithms for applications that will benefit from quantum computers, but they will use existing algorithms. So for those out there maybe overwhelmed, like myself, can't totally understand it this is approachable and that's what johan's book is trying to do is to make an approachable way for right joe developer jared developer to just become aware and know how to use these things so use existing algorithms and you do say that developers you know the basics about quantum
Starting point is 00:38:01 algorithms why they're faster how to use them them, etc., will have an advantage. So have we been discussing the basics of quantum algorithms, or is there more to that conversation that we haven't touched on yet? Well, we didn't really discuss that yet, because that's another discipline. So actually, quantum computing for developers is multidisciplinary. So we talked about the hardware. I don't know much about it. And if we talk about the algorithms, that's mathematics.
Starting point is 00:38:28 You don't need to understand the hardware to create algorithms. But yeah, it helps a few PhDs in mathematics in order to create quantum algorithms. And which the typical developer does not have. Right. So the question is, what now?
Starting point is 00:38:51 Yeah, exactly. Exactly. What now, Johan? Give us the bootstrap to this then. Yeah, what now? Yeah. One of the main goals that I'm trying to do with this book is to explain the fundamentals behind those quantum algorithms that are created by those bright mathematicians. And how developers can benefit from these concepts.
Starting point is 00:39:15 I think it's extremely hard to come up with completely new quantum algorithms. If you think about it, there are only a few known popular quantum algorithms. algoritmes. Als je er over denkt zijn er maar een paar bekende populaire kwantum algoritmes. Mensen die al een tijd in kwantumcomputing zijn, zullen Shor's algoritme kennen, Grover, Deutsch-Jossa en een paar andere. Maar er zijn er niet te veel van. En dat wil ik duidelijk maken. Als je een ontwikkelaar bent, verwacht je niet dat je morgen je vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral vooral And that is a very simple quantum algorithm, which in itself does not do something very useful. But what it does is it allows to detect some properties of a function very fast. And whatever that function is, that is something that is independent to the algorithm. And the property that we examine in this Dijosa algorithm is whether a function is balanced or not.
Starting point is 00:40:26 And that means, is the function always giving the same result, or is it sometimes returning a zero and then a one and then a zero and then a one? And we show that if you want to do this with a classical algorithm, it's going to take a fixed number of iterations. And a quantum algorithm can just this in just one iteration. By explaining this with some real Java code, it becomes clear to developers that, okay, if I have a similar problem where I need to find out if this very complex function that I don't know what it is actually doing, but ik voed het gewoon wat input en het geeft wat uitgang.
Starting point is 00:41:05 Als ik misschien mijn originele probleem in dit probleem kan vervangen dat al gesloten is door kwantumcomputing, dan kan ik er voldoende van gebruiken van kwantumcomputing. Dus dat is eigenlijk een van de hoge oplossingen die ik probeer te geven met dit boek, is dat we een aantal kwantum-algoritmes uitleggen. En als je denkt over je eigen problemen die je moet oplossen, als je denkt hoe je je originele probleem kunt transformeren in een kwantum-probleem, dan kun je dat kwantum-algoritme gebruiken en het resultaat terug transferen naar je originele probleem. use and then you can apply that quantum algorithm and transfer the result back to your original problem. So you benefit from the hard work already done by the mathematicians that came up with the algorithm and you benefit from the quantum hardware but you didn't have to create your
Starting point is 00:41:57 quantum computer and you didn't have to come up with this bright quantum algorithm. You only need to make sure that you can see where those quantum algorithms might make sense in your particular problem. Super deep stuff, obviously. It is quite mind-boggling, as you said a couple of times already. This is very deep stuff. And the whole using of quantum for a developer, I think, is even more interesting because you have to think about literal physics and the way things work and how you can benefit from that. And leveraging mathematicians, hey, that's awesome. If you've got two PhDs and I've got none, I want to leverage that.
Starting point is 00:42:36 So that's great that it's even available. And you're making it practical for very much so Java developers. Like you're clearly, in quotes, a champion of Java developers and Java as a language. Tell us about that. Yes, so one of the problems that I think quantum computing is facing is that there are some very brilliant hardware engineers, some very brilliant mathematicians
Starting point is 00:42:59 and physicists working in this area. But in the end, if we want to make this successful on a einde, als we dit op een grote schaal kunnen maken, dan moeten we ook software-ontwikkelaars hebben die ervan ervaren in het schrijven van software-ontwikkelaars die ervan ervaren met de huidige encryptie
Starting point is 00:43:15 die met scalabiliteit kan werken en software in het algemeen. De gap tussen deze twee werelden is op dit moment behoorlijk groot. En wat ik in deze boek probeer te doen is een groot aantal bestaande ontwikkelaars te leveren en ze te vertellen dat quantum computing ook van hun taal gebruikt kan worden. Al mijn voorbeelden zijn op Java gebaseerd en Java heeft ongeveer 12 miljoen ontwikkelaars die erg goed zijn in Java programming. Now,
Starting point is 00:43:47 if quantum computing becomes more popular, it would be a pity that those developers have to learn a new language. So why can't we make quantum computing accessible to Java developers? Because that will immediately give us 12 million quantum developers. So if those Java developers can leverage the quantum algorithms that are being developed, then those quantum advantages can be used by 12 million developers. And that can create huge opportunities for not only those developers, but also the projects that they are working on. It's not going to be easy to have 12 million quantum developers anytime soon. So going that
Starting point is 00:44:31 way is going to be difficult. But I think it's going to be easier to make these quantum algorithms accessible to Java developers and then have 12 million developers that are leveraging quantum computing, which is not exactly the same as 12 million developers programming quantum computers themselves. So that is what I want to avoid in the book. So you can use your regular Java skills to create those applications. How often do you think about internal tooling? I'm talking about the back office apps, the tool the customer service team uses to access your databases, the S3 uploader you built last year for the marketing team, that quick Firebase admin panel that lets you monitor key KPIs,
Starting point is 00:45:21 and maybe even the tool that your data science team had together so they could provide custom ad spend insights. Literally every line of business relies upon internal tooling, but if I'm being honest, I don't know many engineers out there who enjoy building internal tools, let alone getting them excited about maintaining or even supporting them. And this is where Retool comes in. Companies like DoorDash, Brex, Plaid, and even Amazon, they use Retool to build internal tooling super fast. Retool gives you a point, click, drag and drop interface that makes it super simple to build these types of interfaces in hours, not days.
Starting point is 00:45:57 Retool connects to any database or API. For example, to pull data from Postgres, just write a SQL query and drag and drop a table onto the canvas. And if you want to search across those fields, add a search input bar and update your query. Save it. Share it. It's too easy. Learn more and try it free at retool.com slash changelog. Again, retool.com slash changelog. So Johan, I am reassured and encouraged as a
Starting point is 00:46:38 working, practicing developer that I don't necessarily need to understand everything about how quantum computing works and qubits and quarks and superposition. I don't have to understand all that stuff. And maybe with time I will. But right now what's important preparing myself for this future, which is on its way and is kind of here, but just not yet evenly distributed as they like to say. The main thing is like understanding that it's out there, understanding that there are these algorithms
Starting point is 00:47:07 which have extreme advantages, and there are problems that I'll come across in my day-to-day coding that if I can just rearrange the nature of my problems into a quantum computing aligned nature, I can leverage one of these algorithms and have huge benefits. And I think that this book is really preparing
Starting point is 00:47:28 many developers for that. So I'm excited about that. Tell us about how, if I wanted to like dip my toe in the water with quantum computing, there's a simulator. I can't actually use any hardware unless I have access to something like that,
Starting point is 00:47:43 which I don't. But there is an open source quantum computer simulator. And in your book, you go through coding the hello world. And so there's actually a code we can play with today, which at least gives us an idea of what it will be like calling into quantum computing algorithms in the future. So walk us through that step by step. What's the software look like? How do I access it? Et cetera, et cetera.
Starting point is 00:48:08 Right. So the quantum computing simulator that I actually started writing about before I had the idea of this book is called Strange. And it's a Java-based quantum computer simulator. It's on GitHub. It's open source. You can download it. You can play with it. And there are a number of samples that will get you started.
Starting point is 00:48:29 We try to start with the very easy samples and then introduce the concepts of quantum computing by showing more samples and then the concepts of quantum computing algorithms by showing even more examples. Now the fact that it is in Java is, laat veel van de bestaande Java ontwikkelaars hopelijk een aha moment krijgen, want de manier waarop we superpositionen uitleggen is hopelijk intuĆÆtief voor Java ontwikkelaars, want ik heb nog niet use the word random yet because it's a dangerous word to use in quantum computing. Here we go again. I'm going to go over my head. Why is it dangerous?
Starting point is 00:49:13 Because there's no such thing as random in quantum computing or something? Well, yeah, we prefer to talk about probabilities. So we talk about, so a qubit can be zero or it can be one or it can be a combination of zero and one. We praten over een kubiet kan 0 zijn, of het kan 1 zijn, of het kan een combinatie van 0 en 1 zijn. Maar er is nog steeds een probabiliteit dat je 0 zal bepalen en een probabiliteit dat je 1 zal bepalen. Dus als x 50% is, dan betekent dat er Ć©Ć©n kans is dat je 0 zal bepalen en Ć©Ć©n kans dat je 1 zal bepalen. Dit kan je in het algemeen kennen van de ontwikkegemeen, dat is een kwantum nummergenerator. En dit is hoe we laten zien hoe je klassieke coden kan schrijven om een random nummer te genereren.
Starting point is 00:49:56 Met de random klas in Java. Maar dan creƫren we een kwantum algoritme dat hetzelfde doet. Door een kubiet in een superposition state te zetten, zodat het een combinatie van 0 en 1 is. En dan mees je dat kubiet. En door dat kubiet te mees, zal het hier 0 of 1 zijn. En als je dat, voorbeeld, 1000 keer doet, zie je dat je ongeveer 500 keer 0 en 500 keer 1. En dit heel simpele voorbeeld laat zien hoe je een kwantum computer kan programmeren. Dat is gedaan zoals een klassieke computer met gaten is geprogrammeerd.
Starting point is 00:50:35 Een kwantum computer kan met kwantum gaten geprogrammeerd worden door een k-knot gaten te gebruiken maar ook typische kwantum gaten zoals een Hardermark gaten die een kubiet in een superpositie brengen. Dus we introduceren die gaten en we laten zien hoe je ze kan programmeren om een random nummergenerator te creƫren, bijvoorbeeld. Nu, dit is niet iets dat je in het einde wilt doen na... Dit is natuurlijk niet het eindgoal van kwantumcomputing,
Starting point is 00:51:02 maar het maakt de ontwikkelaar van hoe een kwantumcomputing, maar het maakt de ontwikkelaar bekend hoe een kwantumcomputer werkt en hoe het vergelijkt met klassieke computers. Dus we toevoegen met meer functionaliteit en ik probeer met elke sample te laten zien hoe je dit in de klassieke manier zou doen en hoe je het dan in de kwantum manier doet. En dit maakt de lezer meer bekend met de kwantum-gaten en de kwantum-operaties die mogelijk zijn. In het einde denk ik nog niet dat het nodig is om ontwikkelaars te begrijpen alles over die kwantum-gaten. Misschien moeten ze er zelfs niet veel over weten,
Starting point is 00:51:44 maar het laat zien hoe het klassische probleem verandert in een kwantum-probleem Maybe even they don't need to know much about it, but it shows how the classical problem translates to a quantum problem. And that should help them when they are working on real world problems. It should help them to detect which part of the problem can somehow be transposed into the quantum world where it can then be dealt with by a quantum computer. And well, the classical gates like a NOT gate and an AND gate. And so most developers understand about them. But if you create algorithms, you don't think about those gates because you typically program in a higher level language like Java. And so where you don't worry about those gates anymore. And similar, while Strange, the quantum
Starting point is 00:52:26 computer simulator, allows you to program quantum algorithms with gates, I don't think in 20 years from now, if quantum computing is very widespread, that many people will still be programming low level gates. But therefore, the other part of Strange also allows to use quantum algorithms and then they are implemented using those gates but you don't need to know how these gates are really working but in this book it helps explaining concepts like superposition and quantum entanglement and so what do you think is the logical conclusion of that abstraction layer? What I mean by that is you're describing and you're walking through the reader at a very low level, these gates and stuff, because you want them to learn how it all works. But imagine 20 years down the road. I'm feeling similar to how I asked the TensorFlow team, I think probably five years ago, when we had them on the show to talk about
Starting point is 00:53:28 machine learning and TensorFlow, when I said, when can I just call an API and get my result back out? When can I just say, hey, sentiment analysis, please, and just pass us some data, and it gives me the sentiment analysis, and I don't have to do all the machinations that were required back then to do some machine learning and to train a model and to update it and manage all that kind of stuff
Starting point is 00:53:50 and their answer was well that stuff is kind of coming but it's not here yet and I think we've seen progress towards that as a community where certain machine learning algorithms and models are available and I can take a model that's been pre-trained by a company and I can tweak it or whatever I can call it and get my data back out. I'm curious if quantum computing has a parallel where I can just have some sort of Shor's algorithm API down the road or like super secure encryption quantum encryption API. Is this a future that you see possible as a developer saying hey I can just call the quantum cloud and then get back my results and I don't really have to get into the nitty-gritty?
Starting point is 00:54:31 That is indeed one of the possible futures that I see. So you mentioned Shor's algorithm and then one more. The super secret encryption algorithm. Yeah, quantum key distribution. Yeah, well, I don't know the names of these things. Well, I know Shor's algorithm because I read it from your chapter 10, but I don't know anything else. So I'm making things up. The quantum key distribution is actually pretty cool. And that's a short-term realistic thing.
Starting point is 00:54:57 And I think I'm actually working on one more example for this. And actually, that might be part of an answer to your question as well. I don't think that in many years from now, developers will say, okay, now I'm going to use the quantum key distribution. They will use a Java socket, just like they do it now. And the internal implementation of that socket, youpaalde soket maken met de SSL soketfactor in Java, maar het kan ook een andere implementatie kunnen gebruiken, kwantum en encryption. Dus je zou gewoon zeggen op een heel hoog niveau, ik wil een soket maken voor deze IPv6-adres, voor een geval, en ik
Starting point is 00:55:38 wil het kwantum-properte geven, zodat het systeem probeert te... Ik denk dat dit beter in de onderliggende kleuren van de bibliotheken zal zijn. En dat is een beetje anders, denk so that the system tries to... I think this will rather be in the underlying layers of libraries. And that is slightly different, I think, from the evolutions in machine learning where you always need a good model and you always need data scientists to do the analysis and interpretation and to do all those clever things.
Starting point is 00:56:01 In quantum computing, I think it's going to be more hidden inside the libraries. But even then, you need to know which libraries you want to use for which occasions. And that is still going to be a challenge. So it's going to be partly similar than the way that machine learning in general is moving into, but it will be, I think, more hidden for the end developer. But then we're really talking about the long distant future yeah in the meantime there's a lot of work to be done and that we need developers doing that work right building up those abstraction layers and the glue underneath
Starting point is 00:56:38 for the rest of you know 20 years from now for me to just say to my runtime, call this library. And that one happens to be backed by a QC algorithm or something. Yeah, exactly. So that's then indeed the future that's far away. I think for now, developers that, for example, are worried about encryption and that want to know about quantum key distribution and Shor's algorithm, they still need to pick those algorithms. And that is indeed something that I think at this stage, you can compare it with the stage of machine learning, because you somehow need to understand what you're doing in order to do something useful. Well, to give you a concrete example
Starting point is 00:57:19 of Shor's algorithm, what it is actually doing is, well, Shor's algoritme, is integers factoren. Dus het zal zeggen dat 15 5 x 3 is. En het doet dat niet door bruto-wacht, maar door dit probleem te veranderen in een ander probleem. En het probleem dat het wordt veranderd is het vinden van de periodiciteit van een functie. Waarin ik in het begin heb gesproken. En het blijkt dat kwantumcomputers erg goed zijn in het vinden van de periodiciteit van een functie. Maar als je een encryptie wilt breken, moet je nog steeds denken oh, ik kan dit probleem in een soort van periodiciteit van een functie veranderen.
Starting point is 00:58:00 En dan kan ik een kwantumcomputer gebruiken. Je hoeft niet te begrijpen hoe kwantumcomputers werken, and then I can use a quantum computer. You don't need to understand how quantum computers work, but you still, at this moment, need to realize how you can translate finding prime numbers, for example, to translate that to finding the periodicity of a function. It still seems kind of trapped in the mathematics realm, based on what you just said there. At least currently.
Starting point is 00:58:21 Jared mentioned this future of, I love the idea of this quantum cloud, Jared. I mean, when you said that, I was like, yes, we need that. But based on what you're saying is that it still requires some knowledge, awareness of the mathematics behind these algorithms and the usage of them to really leverage them to the full ability. That's why I hesitated giving this example until now. Because, well, yes, indeed, for sure, algorithm, it does. Yeah. To be honest, you need a fair understanding of mathematics in order to understand it. And that's why it's typically the number one algorithm
Starting point is 00:59:01 that people know about when they hear about quantum computing. And it's great and it's brilliant. And it's so nice from a mathematical point. It's wow, it's fantastic. But it is not, in my opinion, not the most appealing quantum algorithm, or at least not the one that will immediately be most popular amongst developers. There are other things.
Starting point is 00:59:23 And by just explaining the concepts of superposition and entanglement with those simple Java applications where we create a random number generator and with entanglement I have the analogy with a magician so where you have two coins you don't see them you send one to another computer and you can, based on what you measure, you know what's there on the other computer. That's more realistic down to earth and you don't need a PhD in mathematics for this. But understanding these concepts might already be helpful in translating some parts of your problem to quantum problems.
Starting point is 01:00:00 And granted, for sure, the algorithm, yes, you need lots of mathematics. Yeah. I think it's important too, to sort of rewind back to something you had said in the blog post about this regarding the book. So with the book, the goal here is not to be this end-all, be-all knowledge base of quantum computing, but more so you want to give the 12 million Java developers out there the opportunity. I think that's kind of the key thing is this opportunity to experiment. And so it's not like, hey, today quantum computing has arrived. Use it. Here's how you do things. It's more so an invitation to experiment with this different way of computing
Starting point is 01:00:41 that we're not familiar with or generally familiar with and primarily using java-based computing simulators and in this case strange and the things you've done there so that's kind of key too is that this isn't meant to be a bible of computing it's meant to be an invitation of this experimental phase if you haven't used it here's a way to get in an introduction introduction. Yeah. And I would also say that reading the book as a non-Java developer that didn't give me any problems. I didn't actually go through, like, I didn't code
Starting point is 01:01:12 out the things, but I read through the code. And so it's focused, the examples are in Java, it's focused on Java, but I would say that for all developers who are interested in quantum computing, I think it's approachable. Regardless of your language of choice. Yeah, it is in Java because I know that language the best, but actually it is just any classical language that could have been used for this.
Starting point is 01:01:34 Well, as you said, we try to bridge the gap between the world of quantum computing and the world of classical computing. And ontwikkelaars, Java ontwikkelaars vragen of een kwantumcomputer iets voor mij zou moeten zijn of niet. En hoe begin ik daarop? Ik denk dat er een grotere hoeveelheid resources zijn over kwantumcomputering en vooral hoe de hardware verandert en wat de potentieel opportuniteiten zijn. Maar als ontwikkelaar zag ik ook dat sommige bedrijven
Starting point is 01:02:06 nerveus worden omdat ze met veiligheid werken. Ze hebben goede ontwikkelaars, maar ze horen dat kwantumcomputing mogelijkheden en uitdagingen kan geven. En zelfs als het nog veel jaar uit is, willen hun ontwikkelaars beginnen te begrijpen hoe het werkt. Ik wil niet beoordelen dat na het lezen van dit boek je je eigen kwantumalgoritmes kunt beginnen te creƫren understanding how it works. And I don't want to claim that after reading this book, you can start creating your own quantum algorithms that will be the best in the world or so. But at least what I hope is that developers will get a feeling of what is possible with quantum computing. And it's not
Starting point is 01:02:40 that strange thing anymore that's just going to speed up all their algorithms with a few orders of magnitude. It's something tangible that has some benefits, that has some challenges, but that might be useful for them today in a few years or in a long time. No matter what, it's going to take more than just reading the book before a developer becomes an expert in leveraging quantum computing. But that's also, coming back to the very first question, why it's important to start working on it now. People that started working on the Millennium Buck started working many years before the problem was really there, because it takes a while to understand it. And you want to be prepared for when
Starting point is 01:03:25 it's really there. It's simple, right? It's just a year change. Oversimplifying this It's simple, isn't it? Right? It's just a year change. No big deal. They're just qubits. They're just qubits, right? At the end of the day, they're just qubits. I like the idea of qubits and qubobs. Your bits
Starting point is 01:03:42 and your bobs. Yeah, it's all the same thing you just add a Q in front of it that's my takeaway one other point to add to that the Y2K analogy more on the opportunity front so the people who really dove into
Starting point is 01:03:56 I'm looking at this on a parallel with machine learning I just can't let go of it the people that dove into that five years ago seven years ago ten years ago are making very good money right now and I think the people that are going to dive into
Starting point is 01:04:09 quantum computing and able to implement things and know about things and leverage this coming technology, I think, will have opportunity at very good money. So if money motivates you, there's some motivation as well. Johanan i'm curious if there's a place where your average developer like myself could like keep up with the state of quantum computing like kind of like see new things coming out or like new algorithms or without being overwhelmed with the maths and the hardware folk like is there any sort of like approachable waypoints in the community is there a forum is there a rss feed i could subscribe to just to like stay abreast of what's going on and developing in the quantum computing community
Starting point is 01:04:54 there are very good resources if you want to track the progress of hardware unfortunately well unfortunately most of the progress progress is really in academic papers. The difference, if you want to make this more accessible, you risk into getting one of the more popular articles that just claim, well, we achieved quantum supremacy without saying what it actually means. And so that is difficult. However, there is one resource I do recommend is some of the companies that are working on a quantum computer like IBM, Google are creating excellent documentations and videos and tutorials. For example,
Starting point is 01:05:33 Qiskit, which is the IBM quantum suite, which has both a simulator and also access to their real experimental hardware. They have some great tutorials and great blog posts about it. So that's always interesting. And then I follow all the progress of QTech, which is that research consortium linked associated with the Delft University of Technology. They have very great and accessible tutorials about what quantum computing is. so more than just the hardware. But unfortunately, at this moment, I don't know yet of a simple list or RSS feed that makes evolutions in quantum algorithms for developers available in the developer-friendly way.
Starting point is 01:06:19 Yeah. Well, it sounds like an opportunity for somebody out there who's interested and would like to keep the rest of us updated with what's going on. A feed on that for developers would be, well, you get me subscribed, that's for sure, and probably many others as well. So the book is Quantum Computing for Developers by Manning. It's in Manning Early Access right now. It's going to be done real soon now.
Starting point is 01:06:44 I think we've got access to eight chapters. There's 11 chapters. I think Johan has one or two sitting on his hard drive. I haven't quite gotten uploaded to the Early Access program yet, but I'm sure we'll be there real soon. Thanks to Manning, we do have a discount code for all listeners who are interested for all versions, whether the print book, which will be happening,
Starting point is 01:07:07 or the current early access e-book. The discount code is PODCHANGELOG20. I do not know how much it takes off, but you can plug that in. I assume 20. I would assume 20 as well. And so we will link up the product page in the show notes. Please use that discount code to save yourself 20%. We also, as I referenced before,
Starting point is 01:07:30 have three free discount codes to the e-book that we'll be giving away. Here's how it works. Pop open your show notes, hit discuss on changelog news, leave a comment on the episode page, tell us something about quantum computing, maybe an analogy that works well for you maybe you can tell us how confused you are
Starting point is 01:07:48 maybe you can link us to a resource that is helpful or just let us know something about it we'll pick our three favorites within 30 days of the publishing of this episode and we will hook you up with a free ebook Johan, this has been a lot of fun it's been enlightening for me hopefully for our listeners as well and thanks so much for coming on the Change Lab with a free e-book. Excellent. Johan, this has been a lot of fun. It's been enlightening for me,
Starting point is 01:08:07 hopefully for our listeners as well. And thanks so much for coming on The Change Law. Thanks a lot for having me. It was fun. All right, let us know in the comments at changelog.com slash 3D7 what your thoughts on quantum computing are. Are you planning to learn about it? Are you planning to punt on it?
Starting point is 01:08:22 Are you going to read this book? Let us know in the comments. Of course, you can comment on all of our shows at changelog.com. Open your show notes and click discuss on Changelog News. We'd love to hear from you. You can easily support us by telling your friends, sending a text, sending a tweet, writing a blog post with your favorite podcasts. Whatever you do, we appreciate it.
Starting point is 01:08:40 And as you know, the Changelog is hosted by myself, Adam Stachowiak, and Jared Santo. Huge thanks to Breakmaster Cylinder for the awesome beats. And of course, to our awesome partners, Fastly, Linode, and Rollbar. And we have a master feed that brings you all of our podcasts in one single feed. It's the easiest way to listen to everything we ship. Head to changelog.com slash master to subscribe or search for Change Log Master in your podcast app. You'll find us. Thanks for listening.
Starting point is 01:09:04 We'll see you next week.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.