I don’t like qiskit 1. I really have only two reasons for that. Unfortunately they are massive and I’m concerned that it’s going to be something that damages Qiskit in both the short and long run. Yes. I’m tagging them, it’s because I’m concerned and want this software to do well. I used to believe it was the best quantum programming language available.
My biggest struggle with writing this is that it all kind of makes sense. If asked, as a developer I think I would have agreed. I remember a comment that this change should help queue times. Weather a lot or a little, I don’t know, but they’re really really bad. Lowering that pressure is great! I saw more efficient mappings as an improvement, also great!
I truly appreciate qiskit and the team’s work towards maturing the quantum ecosystem. I’ve written about it a few times. And at the time I thought there were some missteps.
But it’s been going beyond missteps. I feel like the IBM quantum ecosystem is degrading in front of me. I’d describe it as someone told research it needed to make quantum make money now and put a business first person in the driver’s seat. The car wasn’t ready, it needs more time. Whatever the reason, it’s an erosion of the community goodwill.
The good
Qiskit sits on a perfect niche, it seems to be trying to straddle the divide between the low level work that needs done today and the more large scale software that needs done later. As far as this goes, it’s weaknesses are slow abstraction of algorithms (a community issue, not inherent to the package) and the fact that it runs on Python. I joke occasionally that it’s a boat, sitting at “C” level as best it can. That’s unfortunately not a great place for Python but practically unavoidable when trying to distribute new technology to a wide audience.
Qiskit 0 stands as a testimony to IBM’s commitment to open source. Qiskit 1 feels like a missed shot at something. I imagine it’s all good and useful changes but it’s too much change.
You don’t want your entire codebase to not work.
Educational resources wasted
Qiskit has a large following with many many many different people and organizations creating educational content. It’s not just IBM. There are multiple larger YouTube channels, websites and training programs for learning qiskit.
All useless.
Previously I’ve said
Most quantum Education assumes prerequisites, ends too soon to be useful or is expensive. Qiskit offers a great, free education that gets to a useful level of understanding.
And that’s just Qiskit’s work alone that’s not counting the work done by third parties.
Now most of it is worthless. I search for qiskit 1, what do I get? Across the board, qiskit 0.x. Look at what I get from searching for machine learning. The github link? Same. I know (because I’ve read the changelog) what’s up, but would someone who’s just learing and is unfamiliar with the change? Probably not. It looks like machine learning for the old qiskit.
Speaking of github….
Development time wasted
Imagine writing a large codebase with a ton of gates, heavy use of aer, and of course all this is for naught if you can’t execute.
I do think the aer move is a fair change, that simplifies things. But it’s still a pain from the maintaining standpoint.
Other then that, they’ve changed all the gates I recognize in my code. Yes I believe some existed in the current format before, but depending on your company’s development standards, you may be changing every single gate.
And then execute? Gone. Migrate to transpile (learn its options) then backend.run(). This alone breaks everything I’ve written, and most other code I’ve seen.
provider.fake_provider? Change every instance of that to qiskit_ibm_runtime.fake_provider.
Is this reading like the release summary? Yes, yes it is.
I’m not saying that this breaks everything but it has the potential to break almost everything. I’m just lucky I’m not in charge of any migration and my coding style seems mostly compatible across versions.
And it’s mostly just gone. I have a notification on the quantum platform reminding users that backend.run is getting removed server side on October 15th. We were notified in April. Basically we got less than a year to migrate before it’s just done. Everything using this is broken. A sunset? That’s a light switch!
Python 2 is still around to allow migration and industry applications to keep working. With one fell swoop IBM created a ton of extra tech debt that needs done yesterday. Qiskit 0 is gone.
Individually I think most of these decisions make sense. But the time we had to migrate isn’t great. It’s relegating qiskit to a tool for your hobby.
TLDR.
I believe that Qiskit’s power has been it’s community and massive amounts of work done, particularly with the textbook.
It used to be that Qiskit seemed to be taught (using the textbook) in university courses. The textbook has been “superseded” by IBM quantum learning and the repo is now read only. This change may help a new professional in the space getup to speed faster, but it erodes the ease of access for the well of knowledge that is a university. It’s also less convenient to look up if I’m needing help on a specific subject.
Industry must suffering through a massive update, who knows how much code needs rewriting. Couldn’t we hold off on flipping the Qiskit 0 switch to off?
This may be a technically good move, but all at once? Remove the textbook, the resource that seems to be the best method to getting into quantum?
Qiskit had the goodwill of the community. Industry, hobbyists, academics. Everyone seemed more or less positive about it. I think this move is going to erode that goodwill. The improvements need to be really great if it’s going to be fixed.
Does IBM think it’s too big to fail here? Remember Google and Microsoft have their own quantum development kits. There’s also smaller, more agile companies doing things.
Qiskit I’m concerned about you. I’m concerned you’re losing the community that was your superpower. I know great developers and communicators that have sworn off qiskit because of this change.
Since writing this I’ve had the opportunity to sit down and discuss this with a member of the Qiskit team. (Thank you so much!) We were able to discuss my concerns, and basically I’d summarize that discussion with qiskit is shifting from education and toy programs to utility and production environments, which is going to be a problem for some users. They are also trying to learn from mistakes made in the depreciation of AER.
This obviously doesn’t fix my concerns, it does explain much of the reasoning and I hope my feedback is able to help improve future changes, especially in the area of communication.
Unfortunately I think this makes the move from the qiskit textbook a bigger problem, perhaps even deserving its own section. Most quantum software courses that I have been aware of used to use it, providing a wonderful pipeline from academia to Qiskit user. Sadly now we don’t have that (unless you want to use an outdated textbook) and now need to rely on on the job style training which every other platform provides.
All thoughts are my own and not that of the company I work for, which is IBM.
I’d like to thank Brian N. Siegelwax for persuading me I need to do this and checking that I seemed accurate in my statements.