Quantum computing has become a buzzword in the IT industry. Some people think it'll change how we do computing forever and give us more processing power than we ever imagined. Some fear this new technology might break all current encryption and security. Others are creating sci-fi shows based on quantum computing, like Devs, which appears in this list of our community's favorite TV shows.
But most people, even many developers, aren't quite sure what quantum computing is. Let's clear up some of the confusion.
Quantum computing terms you need to know
Before we get into how quantum computing works, let's look at some key terms that you'll need to know to understand the concept.
The quantum in quantum computing refers to quantum mechanics. A quantum in physics is the minimum amount of any physical property that can exist.
For instance, a photon is a single quantum of light. Quantization of energy and how it affects the interactions between matter and energy is part of the fundamental framework for describing the physical world.
Qubit is short for quantum bit — the quantum version of the bit we use in classical computing. Standard bits can only be one of two values: 1 or 0. Qubits, on the other hand, hold a superposition of all possible states.
Every quantum state can be represented as a sum of two or more other distinct states, and quantum particles combine all possible states. They remain in all of these states at once until they're actually observed and measured.
Think of a coin flip. Once the coin lands on the ground, it'll be heads or tails, but while it's in the air, it still has a chance of being either one. Quantum computers use the concept of superposition to manipulate qubits and affect their probabilities before making a final measurement to get the answer.
Entanglement is a process by which quantum particles can link up so that their states stay linked no matter how far apart they are in space. They share a unified quantum state and can exert an influence on each other.
By entangling qubits in a quantum computer, more information can be represented simultaneously, giving the quantum computer more computing power and the ability to solve more complicated problems.
In a quantum computer, entanglement is a good thing, but interference is bad. Quantum interference is part of a qubit’s natural behavior that can influence the probability of the final measurement of its superposition. Quantum computers try to reduce interference as much as possible to ensure more accurate results.
How does quantum computing work?
A quantum computer has three main parts.
The first part is the structure that holds the qubits used for computation. These qubits must be stored in a way that minimizes quantum interference. In some quantum computers, superfluids chill the qubit housing to a hundredth of a degree Celsius above absolute zero to keep the qubits stable. Other quantum computers use a vacuum to help with qubit cohesion and minimize interference between them.
The second part is a mechanism for transferring information to the qubits. To use them for computations, their behavior must be controlled so they can hold, change, and read information. There are a few ways to do this. Lasers, microwaves, and voltage are the most common.
The third and final major part of a quantum computer is a standard computer where the code written for the quantum computer is run. It interfaces with the control mechanism, which sends instructions to the qubits.
Where can quantum computing be used?
Quantum computing is still in its early stages, and it's not quite ready to be used in everyday businesses. Still, some companies are starting to find new uses for the technology.
Most of the work in quantum computing is currently being done by scientists and quantum computing experts who create proof-of-concept applications and test them on a small scale to help identify future uses for the technology. That way, they'll be ready when quantum hardware develops to the point that it's practical for more uses.
Also, while a quantum computer can do certain things many magnitudes faster than a classical computer, they don't do everything quicker and aren't practical for some computational problems. Here are some of the many industries where quantum computing will have the biggest impact.
The power of quantum computers threatens to make current cryptography techniques obsolete, such as RSA encryption, which is used to secure much of the sensitive data in the digital world. The good news is that there are already companies working on new cryptography techniques that even quantum computers can't crack.
Machine learning is changing many things about our world, but running machine learning algorithms on traditional computers takes a lot of time and resources. Scientists and Quantum Computing Researchers are looking into new ways to make machine learning faster and more efficient using quantum computers.
Quantum computers have many uses in the healthcare industry. They simulate chemical reactions much faster than standard computers, and they're also used for protein folding, where they help speed up the creation of new drugs.
Quantum computing is also used in fintech, where its power makes parsing massive amounts of financial data quicker and model creation more accurate. It can also be used in fraud detection and portfolio risk optimization.
Quantum computers are good at optimization. There are many challenges involved in supply chains and international shipping routes that can take a standard computer literally years to solve, but a quantum computer can solve in only minutes.
Programming languages and SDKs used in quantum computing
The programming languages used in quantum computing may have a similar syntax to those used in standard programming, but they were created specifically to handle the quantum computing environment.
But that doesn't mean you can't still use standard programming languages. There are high-level SDKs (Software Development Kits) written in languages like Python that allow you to branch into quantum computing without needing to learn a new language.
Here are some of the many programming languages and SDKs used in quantum computing:
- QCL: QCL (Quantum Computing Language) is one of the first programming languages used for quantum computing. Its syntax resembles the C programming language, and its data types are similar to the primitive data types in C.
- Q: Q was the second programming language implemented in quantum computers. It was designed as an extension of C++, so C++ developers can start working with it quickly.
- OpenQASM: OpenQASM (Open Quantum Assembly Language) is a low-level language released by IBM for use with quantum computers.
- Q#: Q# is an open-source quantum programming language offered by Microsoft. It has some features that developers who know the Python, C#, and F# programming languages will recognize.
- Silq: Silq is an open-source high-level programming language written in the D programming language. It's available on Github and is relatively new. The first version was published in 2020.
- Cirq: Cirq is a Python library created by Google for writing, manipulating, and optimizing quantum circuits. Cirq abstracts away many of the low-level details of quantum hardware in a language familiar to many developers.
- Qiskit SDK: Qiskit is a software development kit created specifically for working with the OpenQASM programming language and IBM Q quantum processors. It's written in Python, so developers don't have to have high-level knowledge of quantum hardware to use it.
- Braket SDK: The Braket SDK is yet another quantum computing SDK written in Python that works with Amazon's proprietary Braket quantum computing platform.
How to get started in quantum computing
As we said, quantum computing isn't yet practical enough to be used in the average business. So you can't get a job writing code for quantum computers yet, unless the job is with a business currently experimenting with the technology or building their own quantum computers.
Still, you can experiment with quantum computer coding right now. Here are four places you can do that:
- Amazon Braket: Amazon will give you one free hour per month to experiment with their quantum computing platform, and it provides an SDK written in Python to interact with the Braket platform so you can write quantum code in a familiar programming language.
- IBM Quantum: You can also sign up for an account with IBM to run experiments on their quantum computing platform. You can write your code in Python here using the Qiskit SDK.
- Azure Quantum: You can experiment with the quantum computers that Microsoft has access to, and when you sign up, you can get a free $200 credit.
- DWave Leap: DWave also provides developers with limited free access to their quantum computing platform.
Python is a good choice if you're ready to jump into quantum computing today since Circ, the Qiskit SDK, and the SDK for Amazon's Braket are based on the language. Check out our Learn Python 3 course to learn what you need to know to get started. Or, if you'd rather work with some of the low-level languages used for quantum computing, try Learn C++.