One thing that is different from the quantum computing revolution compared to prior waves of technological innovations — from, let’s say, the early manned flight pioneers or the Homebrew Computer Club that spawned Apple — is the difficulty in creating a grassroots movement of enthusiasts. After all, nobody has a quantum computer factory in their garage. Programmer Macauley Coggins is hoping to change that. But, he’s not building a desktop quantum computer for programmers. Instead, as founder of the grassroots quantum computing site, Quantum Computing UK, Coggins hopes to provide access to tools that might help spark a QC revolution. Programmers already have access to quantum computers on the cloud, he says, and a growing number of web tutorials is starting to build momentum to create the quantum computing version of Homebrew. In this interview, we discuss some of his ideas.
Could you give a brief bit about your background?
I’m a software developer and managing director of Quantum Computing UK, a non-profit that focuses on educating about quantum computer programming, as well as research into developing applications for quantum computers that target real world problems.
How did you get involved in quantum computer programming?
My first foray in to quantum computer programming was when I was 16. I was interested in quantum mechanics but was at this time an avid programmer too with a big interest in Computer Science. I heard that D-Wave had released a 128-qubit quantum computer and offered people to apply as beta programmers. I jumped at the chance and even developed a programming framework that allowed people to create low-level programs for these computers.
What is the most challenging part of programming for quantum computers?
The most challenging part is how different it is to program normal software. Currently quantum computer programming is much more akin to creating software with the logic gates found in a CPU. Instead of working at a higher abstraction layer with a set of functions you have to perform operations on each qubit by applying quantum logic gates, such as a Hadamard gate to put the qubit in to superposition or a X gate to flip the qubits state.
However, we are beginning to see libraries such as qiskits Aqua come out that allow us to not worry about programming individual qubits and instead allow us to apply quantum algorithms more easily.
Any tips for would-be quantum computer programmers?
My first tip would be to learn the fundamentals of quantum computing including the physics (quantum superposition and entanglement, mixed and pure quantum states) and mathematics (Linear Algebra is a must).
For programming, the best thing to do is to learn Python since you can create programs for IBMs quantum computers, which are currently open access, in Python with the qiskit framework.
What’s the potential of quantum computing? Where do you see the biggest applications? What are the biggest hurdles?
The potential for quantum computer is staggering, as it provides a shortcut for doing specific computations that would take too long on a classical computer. So the biggest applications I see for quantum computers are for solving problems that have a very large search space that are too large for a classical computer to solve in a reasonable amount of time, such as the travelling salesman problem or protein folding.
The biggest hurdles right now are that the current quantum computers are very small. For example, IBMs new quantum computer has only 53 qubits, so, as such, their abilities to solve large problems are limited until we get larger computers. Another issue is the barrier to entry. We program these computers at a very low abstraction layer where you are manipulating qubits with quantum logic gates and, as such, you need to know what those logic gates are doing to the qubits in terms of pure and mixed states.