Quantum Computing for Java Developers

Johan Vos
Johan Vos
Nov 3 · 4 min read

I’m writing a book on Quantum Computing for Java Developers, published by Manning. There are currently 4 chapters available in the MEAP process, and a fifth one will follow very soon. In this post, I want to cover some of the reasons why I decided to work on this book.

In summary, I believe quantum computing can create huge opportunities with a tremendous impact on our society. We still need to think about the software to realize this. I want to make it clear to the 12 million Java developers out there that they can be part of this quantum computing revolution. Java can be a first-class language in the quantum computing world.

The subject of quantum computing is really fascinating. I am always looking for simplicity. While quantum computing may sound complex, it is actually much closer to nature and reality then classical computing. The elementary unit in quantum computing is a qubit. Similar to a classical bit, a qubit can hold the value ‘0’ or ‘1’. But a qubit can also be in a linear combination of those 2 values. There are a number of options for the physical representation of a qubit, but the important thing is that real world sub-atomic particles can be used. As the famous physicist Richard Feynman said: “Nature isn’t classical, dammit.” Our concept of a bit is more artificial than the concept of a qubit.

Second, while there are many open questions about the feasibility of quantum computers, the potential impact is huge. Today, many people are impressed by the impact of artificial intelligence. However, if a number of obstacles are solved, the impact of quantum computing can in my opinion be much bigger than the impact of artificial intelligence.
The combination of both can be extremely huge, but that is a different story.

There are a number of areas where quantum computing can make a big difference, including security, optimization, healthcare and science in general. Medical research today is often limited by the capacity of classical computers, and it has become clear that some problems will never be even close to solvable by using classical software only. Quantum computing can allow us to understand how systems interact, and lead to huge advances in healthcare.

However, a quantum computer is not just a super-fast classical computer. It is simply something different. For some problems, a quantum computer is not suited, while for other problems (typically those that require exponential scalability) a quantum computer could be very promising. One of the major challenges is to come up with problems, algorithms and solutions that take advantage of quantum computers. This often means we have to think completely out of the box. Problems need to be transformed to situations where a quantum computer is beneficial. This often requires a different mindset than writing classical software.
But the benefits can be extremely huge and rewarding.

Developing software for quantum computers is therefore non-trivial. There are currently a number of known algorithms and areas where we can benefit from quantum computers. One of the most famous algorithms is Shor’s algorithm, that allows a quantum computer to factor large integers very fast, thereby jeopardizing many current encryption techniques.
But we need more research, more algorithms, more software to leverage the full potential of quantum computing. While a number of extremely bright physicists are working on making quantum computers a reality, software developers can in parallel work on software that can run on those quantum computers. Today, there are a number of companies that created quantum computers with a very limited number of qubits. Those early prototypes are not yet ready for mass production, but they are good enough to validate a number of concepts.

There are about 12 million Java developers. The Java platform powers a large number of applications, in many different areas. With this book, I want to give those 12 million Java developers the opportunity to experiment with quantum computing, using a Java-based quantum computing simulator.
While progress is being made on the hardware, Java developers can work on applications that will leverage real hardware once available. Those applications can be in the financial sector, securing transactions, solving optimization problems, or they can be used to boost medical research.

Quantum computing may huge a huge impact. As a Java developer, you can be part of this revolution. You don’t have to wait until others defined what you can do. You can start today writing quantum software, and think about potential applications.

The book contains a number of samples that are available on github at https://github.com/johanvos/quantumjava

The samples use a Java-based quantum simulator, which is available on github at https://github.com/gluonhq/strange

The book itself is available from Manning.