It might be too Early to Pick Sides
Picking the right tools for the job is always important but it might be too early for quantum. There’s almost no-one who’s independently working on production applications. The only best practices that exist are the ones that each hardware provider builds and they are coupled to their tools.
The most fascinating thing here is that there’s almost one niche for every existing player in the field at the moment:
- Do you want to do QML? Pick Xanadu’s Pennylane or TensorFlow + cirq
- Do you want to go down deep to the pulses that control your qubits? Pick IBM + Qiskit
- Do you want to do some CVQC (this is truly complicated!)? Pick Xanadu’s Strawberry Fields
- By now D-Wave is probably not much worth checking from my perspective but they do Quantum Annealing.
To be honest I do not really know what’s Microsoft niche here with Q# but it seems they are betting more on the platform side of things than developing actual quantum technology.
Exploring Software vs. Hardware
Can we separate them? Current algorithms are so coupled to the machines they run on that it is almost tempting to let the best QPUs dictate our choices. The problem with this is that once we have fault tolerance, things like qubit connectivity are going to become less and less relevant.
If you are learning, you can still explore topics like Quantum Error Correction at the software level. But if you are interested in getting deep with the hardware, and less with the algorithms then IBM / Qiskit is your place to go. For everything else, my personal recommendation is to pick the corresponding tool set from the list above.
Simulators vs. Real Devices
Real devices are blackboxes and you can’t really inspect what’s going on inside. Your best bet is to go with simulators. I am aware that using a simulator is just playing with a mathematical model and not with real quantum computation, nevertheless, simulators offer a unique chance for everyone from beginners to experts when testing and exploring new ideas.
My personal favorite here is Quirk. Simple, runs on your browser, works perfectly on a smartphone and it has a unique set of measurement tools that allow you to build intuition quickly.
If we take a look at a more programmatic approach, almost all languages available have a way to step through a circuit and see what’s going on inside the simulation. It’s just a matter of taste.
An Integrated Approach
All in all, it seems like there’s no convincing argument for us to pick a particular stack unless you really care about the hardware underneath.
When doing research you do want to play with real hardware at some point. At the same time you also want to test things in as many QPUs as possible. Even within IBM’s offering, different machines behave really differently.
Regardless of what you are doing it really seems like betting on an integrated approach for the near future is the way to go. This is where my favorite platform so far comes in: Stranegworks. The level of integration within the platform is great and it goes beyond the available programming libraries.