Three Years of Q#
This year I’ve organized this post thematically, rather than chronologically.
You can see all of the release notes for the year here.
Thinking of You
2020 was a year like no other. Life was dominated by the COVID-19 virus and the measures taken around the world to try and control its spread.
I, and the entire Microsoft Quantum team, hope that you and those close to you have weathered the pandemic safely, and wish you continued health and safety in the coming year.
Perhaps our primary theme for this past year has been opening up Q# to more community involvement.
Our first release of Year 3 added support for compiler extensions, which make it easier for anyone to add new functionality to the Q# compiler. We are very excited about this feature; we really want to make it as easy as possible for the community to experiment with Q#.
In September we launched the Q# Language Design GitHub repository. This site provides a forum for discussing proposed language features and defines a process for proposing new features and for evaluating and approving proposals. It serves a similar purpose for the Q# standard library APIs. We have already collected several issues from the community that will help guide the future evolution of the language. We hope to continue to get this sort of feedback both as new issues and also as feedback on proposed features while they’re being discussed.
Also in September, we launched QIR, our quantum intermediate representation. QIR is language- and platform-independent; it supports Q#, but it is completely general. QIR is based on the popular LLVM open source compiler framework, so it is immediately compatible with the many LLVM-based tools available, such as the clang compiler. There are already teams in several national laboratories using QIR to bridge Q# to classical and quantum platforms.
This past year saw continued growth in community contribution to Q# development, which we greatly appreciate. We added our first team-external maintainer to one of our core repositories, the Quantum Katas. Our Hacktoberfest participation generated about 30 contributions to our repositories, among a total of about 175 community contributions for the full year.
We are very proud to announce that the Unitary Fund made grants to two Q#-based projects: QRAM and QAOA.
Finally, we ran our third Q# coding contest this past summer. It attracted 657 participants, 591 of whom solved at least one problem.
The Modern World
We added a lot of library functionality in 2020. Perhaps the most exciting addition was the quantum machine learning library we rolled out in February. You can see it in use in this tutorial.
Machine learning, of course, is one of the hottest topics in modern computer science. Every large software company is investing heavily in machine learning and artificial intelligence, and many people expect that quantum computing will lead to better machine learning algorithms. While there haven’t been any demonstrations yet of quantum machine learning algorithms that significantly outperform classical ones, this is a very active area of research. We’re happy to provide a “starter kit” to help advance this field.
Wings of Speed
Based on user feedback we’ve been working on overall performance. Recent releases have made significant improvements to the compiler and simulator performance. We continue to work in this area, and there should be continued improvement over the coming year.
Life from a Window
Our last, but far from least, theme for 2020 was improved usability. We made a number of usability improvements to the Q# standard libraries, added new samples, and added some new testing and debugging features. We added the ability to create stand-alone Q# projects that don’t require a driver in another language.
One particular focus was on making our Jupyter notebook integration easier to use and more powerful. We added multiple new features there, especially around visualization. We also made it easier to use IQ# with other Python tools such as NumPy.
This post is part of the Q# Advent Calendar 2020. Follow the calendar for other great posts!