There are too many quantum application development tools available to list them all. And as the GeeksforGeeks article titled “Popular Quantum Computing Tools” points out, each of these tools has different strengths and weaknesses. In addition to that, one’s choice of tools might come down to budget, as some tools are available for free while others are available in a range of subscription and pay-as-you-go plans. Some are even open source quantum computing tools, which means that they are customizable to a developer’s particular requirements. Furthermore, personal preference can, of course, have a major role to play in tool selection.
This review will focus first on the classifications of tools that are available, as that list alone is already quite lengthy. Such a high-level guide can hopefully be valuable in finding the tools that are right for you. Toward the end, we will also include a short list of our own preferred tools, which ought to be helpful for any exploration of quantum computing specifically with neutral atoms.
Understanding the Quantum Developer Landscape
As noted in our article titled “A Mile Wide and an Inch Deep: Quantum Computing 2023,” the landscape of quantum app development tools is remarkably broad, hence the “mile wide” metaphor. It’s so broad, in fact, that the following list is a compilation of classifications from both this article and another article titled “Quantum Computer Technology: Architecture, Advantages and Disadvantages.”The consolidated list of classifications includes:
- Hardware. At this stage, every quantum computer is unique. They might be similar to others, but they’re still unique. The selected backend is itself a tool that determines what is possible or not.
- Control systems. The hardware layer just above the quantum computer directly determines what is possible, for example, the implementation of classical logic on a quantum processor.
- Software Development Kits (SDK). For the many thousands of users who access quantum computers via the cloud, the SDK is yet another layer that determines what is possible or not.
- Qubit count. The size of a quantum processor can be thought of as a tool, one which directly determines the size of the problem that can potentially be solved with it.
- Error rates. Any map of error rates, of the qubits and their connections, can mean the difference between an algorithm that produces results and an algorithm that produces noise.
- Digital vs analog. All quantum computers are inherently analog. Some providers offer a layer of abstraction above this level of control, which is the gate-based, circuit-based, digital model.
- Libraries. Different quantum programming languages offer different libraries that might make it easier to do, for example, simulation, machine language, and/or optimization tasks.
- Familiarity. Different tools may require knowledge of different quantum programming languages, which may or may not be included in a user’s current skillset.
- No code. Some tools allow quantum computation, or at least the simulation of it, without any knowledge or use of any classical or quantum programming languages.
- Drag-and-drop. Going one step beyond no-code tools, which may still require typing, are tools with completely visual interfaces, such as drag-and-drop quantum circuit builders.
- Specialization. While the original goal was universal quantum computers, the future landscape might be hybrid, with quantum computers designed to solve specific problems very well.
- Sensitivity. Environmental noise is generally regarded as bad for quantum computation, and yet research is ongoing as to whether this sensitivity can be exploited, akin to sensing and metrology.
- Subroutines. There are a handful of quantum computing subroutines that promise exponential or other speedups over classical computers, even using high-performance computing (HPC).
- Speeds. As just noted, not all speedups are equal. As tools, different subroutines promise different speedups, from modest to the highly sought after exponential speedups.
- Possibility. As tools, certain quantum algorithms promise to solve problems that are classically intractable, which is to say they cannot efficiently be solved with existing technologies.
- Simulation. For toy problems, the results of NISQ, aka noisy, quantum computers can be verified using quantum computing simulators running on classical CPUs or GPUs.
- Emulation. Instead of waiting in queues or paying for real hardware access, some quantum computers can be emulated using quantum computing simulators with realistic noise models.
- Quantum mechanics. Different effects can be thought of as tools. For example, quantum information can be teleported across large quantum processors, but it doesn’t have to be.
- Tested. Some algorithms and subroutines have been thoroughly researched, for example the applicability of Rydberg blockades in solving Maximum Independent Set (MIS) problems.
- Randomness. Not just for cryptographic purposes, the true randomness of quantum computers has applications in generative algorithms and general artificial intelligence (GAI).
- Energy efficiency. Especially compared to running farms of GPUs, quantum computers can be thought of as tools to minimize energy consumption and its associated billing.
- IDEs. Development environments vary from command line interfaces (CLI) to locally-installed VS Code to hosted Jupyter notebooks to no-code visual user interfaces.
- Portals. Online portals may offer a range of aggregated tools, from hosted Jupyter notebooks to sample Jupyter notebooks to interactive tutorials to universal API keys.
- Education and training. Knowledge and experience can be gained through countless online and in-person courses, summer schools, hackathons, workshops, webinars, and so forth.
- Communities. Ideas may be shared, questions answered, and collaborations fostered in environments such as Discourse, Discord, Slack, GitHub, Stack Exchange, and others.
- Partnerships. One way to be more productive might be to enter into a collaboration, whether that is on an individual basis or at an organization level.
- Incubators. Depending on the intent of the project, quantum-specific business incubators exist to nurture startups, providing often-needed funding and experience.
- Novel. New tools are being proposed on a rolling basis. These tools can be found anywhere in the quantum stack, or might even be completely unrelated to the stack, eg., new social media.
Some quantum application development tools are less obvious than others. For example, the Quantum Insider article titled “Top 35 Open Source Quantum Computing Tools ” lists the Julia-language Yao library as a tool. This library is actually incorporated into the Julia-language Bloqade library, making it essentially the non-visible tool of another tool.
Some tools are even less obvious than Yao. If using the Python programming language, for example, the NumPy library, although not specific to quantum computing, is essentially ubiquitous in quantum computing. Not every application uses it, but it is remarkably common to see. And with roughly the same occurrence rate as NumPy is the Python-language Matplotlib library. Matplotlib is frequently used for visualizations of gate-based quantum circuit diagrams, as well as histograms and other visualizations of the results.
Best Quantum App Development Tools
Any list of the “best” quantum developer tools is going to be subjective to some degree. More importantly, the list is going to be dynamic, and change over time as new tools are introduced, existing tools evolve, and other tools are no longer supported. For your consideration, however, is the following list of the “best” quantum developer tools specifically for neutral atom quantum computing:
- Bloqade is a Python- and Julia-language framework for simulating neutral atom quantum computing, as well as for executing experiments on a real, cloud-accessible, 256-atom quantum computer.
- Julia is an easy-to-learn classical programming language that is gaining in popularity in general, as well as more specifically with neutral atom quantum computing.
- Bloqade-Python is a recently-released adaptation of the Julia-language Bloqade library to the popular Python programming language.
- Python is reportedly the most popular development language in the world, not just for quantum computing but overall.
- AWS Braket is a cloud service provider that grants access to a range of quantum computers, including our 256-qubit neutral atom quantum computer named Aquila.
- qBraid is a platform that grants access to many providers, including AWS Braket with Aquila; it has a development environment specifically for Bloqade and neutral atom quantum computing.
- Google Colab is a Jupyter-like hosted notebook environment being used to demonstrate the new Bloqade-Python framework .
- GitHub is our current platform for sharing educational materials, including PDF files and sample Jupyter notebooks with an introduction to neutral atom quantum computing with Aquila.
- Discourse is our preferred community-building platform for facilitating general Q&A, promoting upcoming events, squashing bugs, requesting new features, and more.
As just recently noted, new tools are continuously being developed and more are to be expected. Due to the popularity of the Python programming language, for one example, we recently released a Python adaptation of our Julia-language Bloqade library. In total, we now have two frameworks, the Julia-language Bloqade and the Python-language Bloqade-Python. For another example, in addition to what you can find on GitHub, stay tuned for the release of novel educational resources in the near future.