Microsoft Nudges Devs Toward Quantum Computing with New SDK
Quantum computing may be among the bleedingest of bleeding-edge technologies, but Microsoft is wasting no time introducing the concept to its developers with this week's release of a new Quantum Development Kit.
At September's Ignite conference, Microsoft CEO Satya Nadella identified quantum computing as one of the primary points of focus for the company, along with mixed reality and artificial intelligence (AI). That's despite the fact that quantum computing is still a relatively obscure technology for even the most advanced developers. As Microsoft said in its announcement on Monday, "It goes without saying that quantum physics is extremely complex, and even some of the smartest people in the world confess that quantum computing is hard for them to understand."
One thing everybody understands is the promise of a breakthrough in computing speed for certain applications. According to the company's "What Is Quantum Computing" site:
In quantum computing, a qubit (short for "quantum bit") is a unit of quantum information -- the quantum analogue to a classical bit. Qubits have special properties that help them solve complex problems much faster than classical bits. One of these properties is superposition, which states that instead of holding one binary value ("0" or "1") like a classical bit, a qubit can hold a combination of "0" and "1" simultaneously. When multiple qubits interact coherently, they can explore multiple options and process information in a fraction of the time it would take classical even the fastest non-quantum systems.
Microsoft's new Quantum Development Kit aims to help daring developers wrestle with qubits. Along with a quantum computing simulator and other resources found in SDKs, the kit includes the purpose-built Q# programming language, a domain-specific language used for expressing quantum algorithms. It provides a small set of primitive types, along with the ability to create new structured types via either arrays or tuples. It includes basic procedural constructs for writing programs such as loops and if/then statements, with top-level constructs being user defined types, operations and functions.
Microsoft provided the following summation of the kit's components (in addition to the aforementioned Q# language and accompanying compiler):
- Q# Standard Library: The library contains operations and functions that support both the classical language control requirement and the Q# quantum algorithms.
- Local Quantum Machine Simulator: A full state vector simulator optimized for accurate vector simulation and speed.
- Quantum Computer Trace Simulator: The trace simulator does not simulate the quantum environment like the local quantum simulator. It is used to estimate the resources required to execute a quantum program and also allow faster debugging of the non-Q# control code.
- Visual Studio Extension: The extension contains templates for Q# files and projects as well as syntax highlighting. The extension also installs and creates automatic hooks to the compiler.
Microsoft said the new Quantum Development Kit is designed to enable developers to get in on the quantum action regardless of their expertise in quantum physics.
Helping to do that is tight integration with the Visual Studio IDE, which will provide some familiarity for developers already in the Microsoft camp.
When used in conjunction with the local quantum simulator (an Azure-based simulator is also available), coders will be able to simulate about 30 logical qubits of quantum computing power just using a typical laptop, Microsoft said. The more scalable Azure simulator boosts that up to more than 40 logical qubits of computing power.
Developers can also use published documentation, libraries and sample programs to help them get started with quantum computing, available on the company's just-published site for the Quantum Development Kit preview.
David Ramel is the editor of Visual Studio Magazine.