Quantum Programming SDKs

Quantum programming is still in its early stages but it won’t be long before it becomes mainstream. Quantum computers are architecturally different to classical computers so new instruction sets and quantum software development kits (SDKs) have been required. The quantum SDKs have been developed to handle quantum operations like bit-flips, phase-flips, entanglement and superposition as well as traditional logic functions. Several companies are already providing quantum programming SDKs to the development community but it’s still too early to say who will dominate.

Will having a Quantum Simulator be Enough?

Most of the companies working to deliver quantum computers have also delivered a quantum software development kit along with it. The company who delivers the best combination of both hardware and development software will wield significant power, after all, what’s the point of having a shiny new quantum computer if you’re constrained by the software allowed to run on it?

Similarly, a differentiating feature of the SDKs on offer is whether they can be run on just a simulator or if they can be run on a real quantum computer. Quantum simulators can usually only be used to simulate a small number of qubits, often topping out at around 20-40 qubits. This makes sense because if we could just make large quantum simulators, there would be no need to pursue quantum computers! It will be interesting to see if this becomes a factor in determining which quantum programming SDK wins the day. If quantum computers keep increasing their qubits then those SDKs which only have access to a small quantum simulator will be at a huge disadvantage.

Who is Offering Quantum Programming SDKs?

The table below summarises the main companies and institutions in the race and what they offer for budding coders:

InstitutionSDKLanguage or
Framework
Public Access to
IBMQiskitPython, Swift or JavaQuantum Simulators and
IBM Quantum Computers
RigettiForest
Python
Quantum Simulators and
Rigetti Quantum Computers
Inst for Theoretical
Physics (ETH)
ProjectQ
Python
Quantum Simulators and
IBM Quantum Computers
MicrosoftQuantum Dev KitPython
Quantum Simulators
GoogleCirq
Python

Quantum Simulators
XanaduStrawberry Fields
Python

Quantum Simulators

As you can see from the table, the field is still wide open but one common theme so far is that most of the contenders have chosen Python as the underlying language. If you’re thinking about dabbling in some quantum programming in the future, brushing up on your Python skills would be a good idea.
Also, although several of the above offerings do not currently provide a publicly available quantum computer, all of them have plans to add access in the near future.       

Quantum Coding Libraries

Specialised function libraries are starting to be developed and embedded in quantum programming SDKs. For example Microsoft has just released a new chemistry library within its Quantum Development Kit Q#. Other libraries are bound to be added so if you’re wanting to develop in a particular area it would be a good idea to regularly check if any new functional libraries covering that area have been added to any of the SDKs available.

Which Quantum SDK Should I Learn?

Choosing which quantum programming SDK to learn comes down to several key points. Firstly, is access to a real Quantum Computer important to your development? At the moment, it doesn’t make much difference as the quantum simulators and real quantum computers are very similar in capability. However, if quantum computers suddenly leap ahead in qubit counts and your programs need those extra qubits then you may be forced to switch platforms and hence SDKs to access them.

Secondly, are there any coding libraries important to your programming needs? Microsoft has recently added a specialised chemistry library and it will only be a matter of time before more specialised libraries are released within the various SDKs.

Lastly, if you want to be a successful quantum programmer, what will matter most is that you begin your coding journey now. Experience and understanding of quantum concepts is what will take the most time and patience to master but if you invest the time now potentially needing to switch between quantum programming SDKs down the track should be trivial.

Leave a Reply

Your email address will not be published. Required fields are marked *