Quantum programming languages are programs that have been designed to run on quantum computers and are very different from classical computing programs. To understand quantum computing languages and work with them effectively a sound knowledge of the principles of quantum mechanics and the underlying mathematics is often essential. As quantum computers work on practical use cases in industry and solve what have been up to now intractable problems for humanity, superseding the work done by classical computers, quantum computing programming languages will become more valuable tools.
Currently, the number of people trained in quantum programming languages is small compared to those with skills in classical programming languages — yet this reality is set to change with the wider adoption of quantum computers.
The intention of this article is to explain clearly but briefly what a quantum programming language is, what is the difference between quantum/classical programming and the types of quantum programming languages available.
What Is a Quantum Programming Language?
By its very definition, a quantum programming language is a programming language specifically designed to write programs for quantum computers. More factors to consider when categorizing quantum programming languages from classical programming languages are how they evaluate and qualify quantum algorithms and their execution, as well as their ability to scrutinize the fundamentals of a quantum system, ie. entanglement, superposition and qubits.
What is the Difference Between Classical & Quantum Programming?
The differences between classical and quantum programming languages come down to the fundamental elements that are the basis of either system. A classical system is “programmed” by a human who utilizes the linear binary elements of ones and zeros which are then processed to get results (information). In a quantum system, however, optimized physical properties of particles are fed into the quantum computer as a matrix so the basic unit of quantum information — known as a qubit — can determine the results.
As already mentioned, the successful implementation of these complex quantum circuits and algorithms requires a high level of physics and maths. Only quantum programming experts — trained to understand the complexities of Quadratic Unconstrained Binary Operation (QUBO) or Quadratic Approximation Optimization Algorithm (QAOA), for example — can provide the experience and knowledge to identify the issues and then process them to get the most out of the quantum computer.
Types of Quantum Computing Languages
The number of quantum computing languages is growing all the time. Based on an open-source mentality of sharing knowledge and resources, quantum programming languages have been designed to assist quantum algorithms using high-level constructs. Before we go into the specifics of what are the best quantum programming languages in 2022, we shall briefly go over the Quantum Instruction Sets, Quantum Software Development Kits and the types of quantum computing programming languages available.
Quantum Instruction Sets
These are used to turn complex algorithms into physical instructions that can be performed on quantum processors and vary depending on the qubit modality of the quantum architecture (superconducting/silicon-based/trapped ions etc) of the hardware platform.
Examples of this type include cQASM, Quil, OpenQASM, and Blackbird.
Quantum Software Development Kits
Quantum software development kits (SDKs) offer various tools to design and exploit quantum programs, while also providing the user with the ability to simulate the quantum programs or prepare them to be run using cloud-based quantum devices.
The Current SDKs with access to quantum processors and/or Quantum Development Kits available are Ocean, Qiskit, ProjectQ, Forest, t|ket>, Strawberry Fields, PennyLane, and Cirq.
Quantum Programming Languages
Quantum Programming Languages can be divided into two language categories: Imperative and Functional. Imperative programming is when the software utilizes statements that change a program’s state, while Functional programming is constructed by applying and composing functions.
Examples of Imperative quantum programming languages accessible in 2022 include QCL, Quantum pseudocode, Q#, Q|SI>, Q language, qGCL, QMASM, Scaffold, and finally, Silq, developed at ETH Zürich.
Functional variations comprise languages such as QFC, QPL, QML, LIQUi|>, Quantum lambda calculi, Quipper, and funQ.
Now that we have presented the different types of quantum programming languages available with examples of individual quantum programming languages in those categories, we will now go through which are the “best” quantum computing programming languages in 2022.
Top 5 Quantum Programming Languages
With all “Best Lists”, this is mightily subjective, but The Quantum Insider’s decision as to which are the best quantum programming languages in 2022 is simply because the ones we are about to mention are used by the top quantum experts on the planet, both in academia and in industry. Go to any YouTube video, blog tutorial or book on Amazon and you will see the same programs pop up time and time again.
It’s not our decision, but the wider community’s objective view.
1. Python (Actual Quantum Programming Language)
When it comes to an actual programming language to help you get into quantum computing as quickly and as stress-free as possible, Python could be the answer. First developed more than thirty years ago by the Python Software Foundation, Python is a good programming language as many packages like QuTip etc are available for it, which allows working with quantum systems even easier. Probably the easiest case for using this is that it’s easy to learn and a lot of the quantum frameworks have been designed with this language specifically in mind.
Now let’s get into the individual open-source suites and development kits.
2. Qiskit (Open-source Programming Tool)
Qiskit was IBM’s gift to the quantum programming world in 2017. An open-source Software Development Kit for working with quantum computers at the level of circuits, pulses, and algorithms, Qiskit was developed by IBM Research and the wider Qiskit community and provides tools for creating and manipulating quantum programs and running them on prototype quantum devices on IBM Quantum Experience or on simulators on a local computer.
3. Ocean™ (Quantum Computing Programming Suite)
Ocean™ software is a suite of open-source Python tools accessible via the Ocean Software Development Kit on both the D-Wave GitHub repository and within the Leap quantum cloud service. D-Wave, a pioneer in the quantum computing industry, designed Ocean to allow developers to experiment with and leverage the power of D-Wave’s Advantage quantum computer to solve complex problems.
4. Q# (Quantum Computing Programming Algorithm)
Next up is Q# — the # is pronounced ‘sharp’ — by Microsoft. Used in conjunction with the Quantum Development Kit, Q# first appeared in 2017 and is a domain-specific programming language used for expressing quantum algorithms. One advantage of this quantum programming language is it supports general classical flow control during the execution of an algorithm. In particular, classical flow control is based on quantum measurement outcomes, which makes it much easier to write things that depend on intermediate measurements.
5. Cirq (Google AI Programming Language)
Developed by the team at Google Quantum AI announced (public alpha) at the International Workshop on Quantum Software and Quantum Machine Learning in the summer of 2018, Cirq is an open-source framework for noisy intermediate scale quantum (NISQ) computers. The package comes with built-in simulators, both for wave functions and for density matrices, which can deal with noisy quantum channels using monte carlo or full density matrix simulations. Cirq also works with a wavefunction simulator, qsim.
There are so many toolboxes and packages which are equally as good, but we simply have no time to mention them all.
What to Expect From Quantum Programming In The Years To Come?
As neither we nor our readers are Nostradamus, this question seems like it’s impossible to answer. However, in a very insightful Forbes article, What To Expect From Quantum Computing In The Next Two Years, published in December 2021 and written by Dr. Yehuda Naveh, co-founder and CTO of Classiq, a Tel Aviv, Israel-based quantum startup that provides a quantum algorithm design software platform for the automated synthesis of quantum circuits, Naveh believes the “demand for quantum talent and better software platforms will soar.”
Taking the view of this expert in the field, we can expect, as Naveh puts it:
“[The] rise of software platforms that make quantum more accessible to people who know how to program but are not — at least not yet — quantum computing experts […]. Like common machine learning platforms, they shield users from the complexity under the hood. These quantum design platforms could help.”
There is little doubt that, in the coming years, we will witness more use-cases of quantum computing’s efficacy over classical machines. We expect, then, quantum programming languages, Quantum Software Development Kits, and coding platforms to be more understood and accessible through educational courses and accredited certification, leading to an industry where the recruitment of software specialists and connected professions will not be a difficult task.