7 min read

Open source libraries for Microsoft Quantum

Quantum computing is a new universe of computing that promises exponential increases in processing power, which could help scientists solve the problems of the future – on topics ranging from biomedical research and smart materials to cryptography and climate science.
After more than a decade of work by researchers, engineers, and developers from across the company, Microsoft recently revealed its vision for quantum computing and released Q#, a new quantum-focused programming language with native quantum types, operators, and other high-level language features.
We sat down with Jeff Henshaw, Microsoft Group Program Manager for Quantum Software, to get a behind-the-scenes look at the resources available to help developers get up to speed and start building quantum applications and algorithms, including open source development libraries and samples on GitHub.

Q: Tell us about yourself and how you got involved in the quantum space.

A: I’m a long-time veteran of Microsoft—over 25 years at the company now—and I’ve had the privilege of working on a pretty broad array of technologies here at Microsoft. Starting out in Developer Tools, helping us build our C and C++ compilers and what would become Visual Studio over the years. After that, I helped found Xbox. And that was obviously a fascinating foray for Microsoft into the consumer electronics space and I had a wonderful time with that amazing team for over 15 years.
But every few years, I get passionate about learning something entirely new and taking on a big new challenge. I wanted to work on another project that I knew would really matter to the world 10, 20, or 50 years from now — something that could be meaningful to my children and my children’s children. Quantum was that project – the ambition here is just incredibly huge, we’re innovating in a space that is not only new from a technology perspective, but it’s also new from a humankind-exploration perspective.

Q: What is Microsoft’s vision for quantum?

A: Microsoft has a unique approach to quantum computing. We believe that in order to build quantum computers that are really scalable we must force a breakthrough in physics around what we call topological quantum computing. What that means is that the essential components of a quantum computer—called a qubit or a quantum bit—rely on some fundamental properties of physics, the way that matter behaves.
For qubits to become truly scalable—meaning that they’re not prone to errors or environmental noise, that they are stable for a relatively long time, allowing complex operations to be performed on them—we have to provide a more scalable architecture. Topological qubits use the attributes of physically split particles (fractionalized electrons), called anyons, braided in two-dimensional space, protecting the qubit state.  This “topological isolation” enables them to be more robust than other types of qubits. Once we’ve built on top of these fundamental concepts, we believe that our topological platform will scale much more quickly than other current approaches.

Q: What sort of scenarios will that enable in the future? How could this impact your children’s children?

A: That’s where things start to get so exciting in the field of quantum computing. I mentioned earlier the need to build a quantum platform that will scale. Today’s computer architectures, as fast and advanced as they’ve become, still can’t solve some problems that are so computationally intensive that they would take today’s computers longer than the universe is likely to exist to complete some of these problems.
Examples of these problems are things like very advanced cryptography, molecular modeling at complex levels, materials design, or custom biomedical solutions. Some of these require modeling and computationally intensive operations that we just can’t do—even with billions of years’ worth of compute cycles on today’s platforms.
Quantum computing will enable us to perform those tasks in minutes, hours, or days, rather than centuries, eons, or billions of years. But to do that, our quantum platforms must scale, and that’s where Microsoft’s solution becomes so important.

Q: What resources are available for developers to get involved?

A: We built the Microsoft Quantum Development Kit with a few important goals in mind — number one, the most important thing, is that we want to grow a quantum workforce that will be ready to leverage our scalable quantum computer when it’s ready. So, we want to have people trained in quantum concepts, able to develop algorithms and applications that are appropriate for quantum computers. And we needed to start that yesterday, because to really be effective at that, we need great tools for industry and great programs in academic institutions.
The Quantum Development Kit was built with that in mind and there’s several things that we’ve done uniquely that set it apart from some of the other programming solutions out there. One thing we did was create a brand-new language that was conceived specifically for quantum development: Q#. It goes right along with C# and F# and Microsoft’s other languages. But Q# is unique in that it’s a high-level language. It features constructs like native quantum data types, operators, and other abstractions that are appropriate for quantum concepts like qubits and entanglement.
So complex physics problems become very straightforward from a programming perspective because we’ve done a lot of heavy lifting in the design of the language and the building of the libraries that we’ve created in the Quantum Development Kit.
Another big thing for developers is that the development kit is supported on multiple platforms — it works with Visual Studio on Windows and VS Code on Windows, Mac, and Linux, so everyone who wants to program for quantum computers has that capability. I run VS Code on a Mac, where I love to code, and I know there are lot of developers out there who feel the same.  Also, many developers have existing libraries of code in Python, so we gave them easy access to that functionality from Q# without having to port anything. Python interoperability, a preview in this release, allows Q# code to call Python routines directly, and vice-versa.

The last important update is we’re working very closely with both industrial and academic partners to build the right training around the Quantum Development Kit. We’re working to build course curriculums, textbooks, industrial references—and we’ve already got a great start on that today on our quantum development website, and we’ll continue to grow these resources for quantum developers.

Q: What are some of your favorite features, or one that you’re most proud of, in the latest Quantum Development Kit release?

A: At the top of the heap is the multi-platform support for Mac and Linux, which I mentioned earlier. The second one that I can’t go without mentioning is that a lot of our users told us that they want to begin programming in Q#, they really love the development kit and the libraries that we’ve shipped to them are helpful in jump-starting their development, but they need a full, open source solution to be able to leverage the work that we’ve done in their own work.
So, we took almost the entire library– great examples, tutorials, ready-to-use functionality – and we made that open source with this latest release. That means that not only can people use that code directly in their own applications, no matter what they’re doing—whether it’s learning, or whether it’s working in industry—to help them really get a leg up with their quantum programming, but it also opens an entirely exciting second avenue for us to begin letting the community feed back into those libraries.
Now, routines that people write, using the quantum development kit, can be fed back in and we can include those with later releases. We’re really excited to have that feedback loop possible now.

Q:  What’s planned for the next release of the development kit?

A: The areas that we’re investing in most right now are engaging with developers to understand how they’re using the Quantum Development Kit and what types of applications and what types of algorithms we can build to help them move forward quickly. The first couple releases were really about opening up a new community and building that community and since the response has been so positive and there have been tens of thousands of downloads of the development kit, it’s now about engaging that community to help understand how we can help them more.
The top things to look for from Microsoft’s Quantum Software team are enhancements to our libraries based both on work that we do and work that the community shares. Since it’s an open source library system now, we’ll look at engagement around the top types of algorithms, the top types of applications that people are trying to build, and enhancements to the language, simulator, or debugger to help people build those more quickly.

Q: Anything else that you’d like to tell current or future quantum developers?

A: I think that it’s super important to say, “Thank you!” to everyone who has downloaded the Quantum Development Kit to date. The feedback has been awesome, and we want to keep it coming. The February release tackled the top five upvoted issues on our Quantum Uservoice site. So, we’re listening and we want to help people enter the world of quantum and begin to build quantum apps and algorithms. We’re here to help, so please continue to download and share your experiences and feedback with us.
The second thing I want to encourage people to do is grab those open source libraries and contribute back because this is about much more than just Microsoft’s quantum program; this is about a broad quantum community that Microsoft is fostering. The interaction that we have in that open source code base and the ability to build on top of each other’s ideas is super important to us and we look forward to ongoing engagement with the community there.
You can follow Jeff Henshaw @Dingo.
Other questions? Let us know in the comments.

More information on Microsoft Quantum:

Stay up to date with the Microsoft Quantum newsletter
Read about the latest developments on the Microsoft Quantum blog
The Future is Quantum – Interview with Dr. Krysta Svore
Quantum Development Kit Overview
Quantum Development Kit Documentation