Open source as a path to learning Quantum Computing
Published: 2023-06-11 03:45:45

It sounds really intense doesn't it? Quantum computing! The funny thing about it is that it doesn't have to be. We learn programming without having to learn what a CPU does, so it's interesting that we think we need to be physicists to learn to contribute to this new industry technology. 

I wrote in "[A Beginner's Guide to Starting Your Journey in Quantum Computing](https://dev.to/taradev/a-beginners-guide-to-starting-your-journey-in-quantum-computing-300o)" that there are some fundamentals to learn. But we don't have to be experts in them. We just need to know what they are, and have some experience in some of them. Like anything technical, the opportunities come not from individual mastery, but the progress in and of a community. 

This applies even more-so in the quantum computing world, where the maturing industry needs more and more developers and designers and marketing and business and UX and devops and everything in-between. The paradox to date has been that the technical teams need more general talent but can't find any that has exposure to the culture and context of quantum computing. And the general talent can't find the opportunities to break into those teams. Which is where open source communities and open projects come in. Even the smallest level of participation in one can create a ladder to climb into a rewarding, incredible, and about-to-change-the-world kind of career.   

So here are ten open-source software projects in the field of quantum computing that you can explore and try:

## 1. Qiskit 
[Qiskit](https://qiskit.org/) is developed by [IBM](https://www.ibm.com/) and is a popular open-source framework for quantum computing. It provides a comprehensive set of tools, libraries, and simulators to design and run quantum circuits, execute experiments on real quantum hardware, and develop quantum algorithms. Qiskit also offers a friendly community and extensive documentation to support beginners. It's a bit weird that it seems to try hard to "not be IBM" but it's just IBM. But the content and community are enormous and it's a default one to learn.

## 2. Cirq 
[Cirq](https://quantumai.google/cirq) is developed by [Google](https://quantumai.google/), and is an open-source framework for quantum computing that focuses on writing quantum circuits and running them on simulators and quantum processors. It offers a Python-based interface and supports a variety of quantum devices. Cirq's documentation and examples provide a solid starting point for quantum programming. IMHO this side of things is best for those with an interest in AI given this is almost certainly the focus Google has.

## 3. Qristal SDK
[Qristal SDK](https://quantumbrilliance.com/quantum-brilliance-qristal) is made by [Quantum Brilliance](https://quantumbrilliance.com/) and is an open-source software development kit (SDK) designed for quantum computing research and education. It provides a full stack to compile, simulate and deploy a variety of quantum applications on virtual or hardware quantum computing devices. Quantum Brilliance is focusing on room-temperature quantum accelerators and works with existing HPC installations. It's pretty new and team is small but friendly, which makes it ideal for people wanting closer involvement (and opportunities) with the team.

## 4. Forest 
[Forest](https://www.rigetti.com/forest), developed by [Rigetti Computing](https://www.rigetti.com/), is another open-source software development kit (SDK) for quantum computing. It includes PyQuil, a Python-based quantum programming language, and offers access to Rigetti's quantum cloud services. Forest provides a comprehensive toolkit for quantum algorithm development and experimentation. The Rigetti community has ebbed and flowed a little (they were in the news in early 2023 [about financial woes and layoffs](https://www.hpcwire.com/2023/02/13/rigetti-axes-28-staff-as-quantum-computing-companies-face-financial-pressure/)) but is still very much a leading brand.

## 5. Xanadu PennyLane
[PennyLane](https://pennylane.ai/) is an open-source software framework developed by [Xanadu](https://www.xanadu.ai/) for quantum machine learning and quantum optimization. It enables the integration of quantum computing with popular machine learning libraries, such as TensorFlow and PyTorch. PennyLane allows you to simulate and run quantum circuits on various backends.


## 6. OpenQASM 
[OpenQASM](https://qiskit.org/documentation/apidoc/qasm.html) is an open-source quantum assembly language developed by IBM as part of the Qiskit framework. It allows users to write quantum circuits using a text-based representation. OpenQASM provides a standardized format for describing quantum algorithms and is compatible with various quantum programming frameworks.

## 7. QuTiP :
[QuTiP](http://qutip.org/) or "Quantum Toolbox in Python" is an open-source Python library for simulating and manipulating quantum systems. It offers a range of functionality for quantum dynamics simulations, quantum state and operator manipulation, and quantum information theory. QuTiP is widely used in the quantum physics and quantum information research community.

## 8. Strawberry Fields
[Strawberry Fields](https://strawberryfields.ai/) is an open-source quantum software platform developed by [Xanadu](https://www.xanadu.ai/) for simulating and executing photonic quantum computations. It provides tools for designing, simulating, and optimizing quantum circuits with continuous-variable (CV) quantum systems. Strawberry Fields is particularly focused on quantum information processing using photonic quantum hardware.

## 9. pyQuil
[pyQuil](https://pyquil-docs.rigetti.com/) is an open-source Python library developed by [Rigetti Computing](https://www.rigetti.com/). It enables users to write and execute quantum programs using the Quil language, which is a quantum instruction set designed for near-term quantum devices. pyQuil provides access to Rigetti's quantum cloud services and offers a range of utilities for quantum algorithm development.

## 10. Quantum Development Kit 
The [Quantum Development Kit (QDK)](https://docs.microsoft.com/quantum/) is an open-source framework developed by [Microsoft](https://azure.microsoft.com/en-us/solutions/quantum-computing/#overview) for programming quantum computers. It includes Q#, a high-level programming language designed specifically for quantum computing. The QDK provides simulators, libraries, and tools to develop and debug quantum algorithms. It also offers integration with classical languages like C# and Python.

## Getting involved is a community thing

These projects offer diverse functionalities, programming interfaces, and community support. Exploring these open-source projects will provide you with hands-on experience, access to quantum simulators, and, in some cases, direct access to real quantum hardware. Remember to check their documentation, tutorials, and code examples to get started and be sure to reach out to their developer relations or product management teams, as they are always open to conversations and very encouraging of anyone getting involved with their projects. In my next article I will show how to get started and first steps to take together.