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. We have a dedicated site for feedback, at https://quantum.uservoice.com. The February release tackled the top five upvoted issues on that 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: