The Changelog: Software Development, Open Source - Prepare yourself for Quantum Computing (Interview)
Episode Date: March 24, 2020Johan 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)
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.
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
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.
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
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
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.
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.
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.
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?
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.
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.
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
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
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,
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.
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
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
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.
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.
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.
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,
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,
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.
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.
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
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
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
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
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.
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.
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.
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,
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,
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.
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.
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.
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.
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,
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?
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
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.
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?
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.
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
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
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
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.
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.
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
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,
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
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.
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
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
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?
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
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
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.
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,
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.
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
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
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,
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,
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,
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
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.
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?
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.
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.
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.
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
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.
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
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
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,
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
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,
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.
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
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
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
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,
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.
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.
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?
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.
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.
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,
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,
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
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
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
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?
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.
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
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.
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
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
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.
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.
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
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.
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.
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
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
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.
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
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
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
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
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
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
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
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,
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.
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.
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,
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,
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
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,
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?
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.
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.
We'll see you next week.