7 Our HelloWorld, explained

 

This chapter covers

  • Introducing quantum computing simulators
  • Using Strange for high- and low-level programming
  • Debugging quantum applications using Strange and StrangeFX
  • Understanding runtime targets: local, cloud, and real device

Tools in software development have specific goals. Some tools help with developer productivity; others help manage dependencies or give easy access to specific frameworks. Developers using those tools should be aware of what the tools they use can do and what their limitations are. In this chapter, we explain the benefits of quantum computer simulators, and we explore some of the specific features of Strange that make the use of quantum computing algorithms easy for existing (Java) developers. Strange, like any other quantum computer simulator, is not going to solve all our application issues by applying a quantum sauce to it. But it will help us benefit from quantum computing without being experts in quantum computing. To benefit maximally from the advantages Strange is offering, some understanding of quantum computing tools in general is helpful. That is the focus of this chapter.

The Java code for the HelloWorld example in chapter 2 is familiar to Java developers. The goal of Strange is to provide a library that is both familiar to Java developers and capable of using the quantum phenomena discussed in earlier chapters.

7.1 From hardware to high-level languages

7.2 Abstractions at different levels

7.3 Other languages for quantum computing simulators

7.3.1 Approaches

7.3.2 Resources for other languages

7.4 Strange: High-level and low-level approaches

7.4.1 Top-level API

7.4.2 Low-level APIs

7.4.3 When to use what

7.5 StrangeFX: A development tool

7.5.1 Visualization of circuits

7.5.2 Debugging Strange code

7.6 Creating your own circuits with Strange

7.6.1 Quantum arithmetic as an introduction to Shor’s algorithm

7.6.2 Adding two qubits

7.6.3 Quantum arithmetic with a carry bit

7.6.4 Next steps

7.7 Simulators, cloud services, and real hardware

Summary