Upending the entire structure of modern computing isn’t easy. First, you need to invent technologies that can chill things to temperatures colder than anything else in the universe, then you need to find a particle that’s its own antiparticle, before braiding them into stable quantum computing engines. Then, of course, you need to program them.
A while back I took a first look at Q#, Microsoft’s experimental quantum computing programming language. It takes familiar computing constructs and patterns, using them to build low-level quantum circuits that embody the problem we’re trying to solve. If you’ve written code using functional programming languages like F# or systems programming languages like Go, you’ll find much of Q# familiar—until it starts to veer off in the direction of silicon-design languages like Verilog.
The QDK: the foundation of programming Microsoft’s quantum computers
So how can developers start using Q#? For the foreseeable future, it will work only on local and Azure-based simulators, because we’re still some way away from a publicly accessible topological qubit, and from machines that can use enough qubits to ensure what scientists call “quantum supremacy.” That’s the point where a quantum computer becomes more efficient than a traditional silicon machine, solving problems almost instantly that would normally take hundreds, if not thousands, of years of processor time.
Microsoft has already shipped its Quantum Development Kit (QDK) that plugs into both Visual Studio and Visual Studio Code, with a local quantum simulator for small problems and access to a larger one on Azure for more complex work. Microsoft has also developed new algorithms that reduce the processing overhead for larger numbers of simulated qubits, making it easier to explore those more complicated quantum algorithms.