Quantum computers are still extremely rudimentary, and largely remain intriguing playthings in a few advanced research labs. That hasn’t deterred people from developing new programming languages for them.
The most recent one comes from Microsoft, which has unveiled Q# (pronounced Q sharp) and some associated tools to help developers use it to create software. It joins a growing list of other high-level quantum programming languages such as QCL and Quipper.
But given that practically nobody has a quantum computer, what’s the point?
Krysta Svore, principal research manager in quantum computing at Microsoft, says the languages are needed because the ones written for today’s computers won’t work for quantum ones. Classical computers encode information in binary form as a sequence of ones and zeros, whereas quantum computers use quantum bits—or “qubits”—which can effectively encode one and zero at the same time.
This creates vast amounts of parallel processing power, and explains why there’s such great interest in efforts to build the machines. The hope is that quantum computers will help drive significant advances in fields ranging from materials science to artificial intelligence (see “A Startup Uses Computing to Boost Machine Learning”).
But to fully exploit that power or even explore what’s possible, developers will need quantum languages to help them create software that takes full advantage of the computers’ capabilities.
Programming languages for classical computers are designed in a way that doesn’t require developers to know how a central processing unit works. The push now is to create high-level quantum programming languages that also shield developers from the complexities of quantum hardware.
The quirks of quantum computing create limitations that don’t exist in classical programming languages. One example: quantum programs can’t have loops in them that repeat a sequence of instructions; they have to run straight through to completion.
To deal with such issues, Q# works in conjunction with a couple of classical languages. Developers without quantum expertise can write their main programs in familiar languages and then use a Q# program when they want to engage quantum processing power.
Although it doesn’t have a quantum computer of its own yet, Microsoft has released simulators that let developers test programs developed in Q# on desktop computers or on its Azure cloud-computing service. IBM is also offering simulators, and a few lucky developers can even run their code directly on its quantum machine.
Xiaodi Wu, a quantum programming language expert at the University of Maryland, sees new high-level quantum languages as a logical next step. “This will open the door to more people using these machines,” he says, “which could lead to new fields of inquiry for the quantum research community.”
There have been some calls to make new quantum languages open source so that the broader developer community can offer input. The idea is that this might give quantum computing the same kind of boost that the development of Linux gave to the Internet.
Language developers also have another target: students thinking about future careers. New languages that make quantum computing more accessible should entice more people into the field. “We want to develop the quantum workforce,” says Svore, “because quantum computing will unlock a whole new economy, and we’re going to need people who are quantum programmers, algorithm developers, and engineers.”