Hi all! I'm new to CodeRanch but I just saw this topic, and I can help clear things up for sure.
I work as an engineer at a company building a
general purpose silicon photonic quantum computer, and two colleagues and I recently wrote a book called
Programming Quantum Computers from O'Reilly Media.
It's a hands-on guide written for quantum-curious programmers.
Regarding Java and QC: Stephan's right, the QC control is just a library which can be called from any language, including Java. A quantum computer can be thought of as a co-processor, like a GPU (in fact, at work we refer to it as a QPU). Like a GPU, you won't usually run the whole program on the QPU, but rather write a CPU program (in Java or anything else) as you normally would, and call library functions when there are tasks for the QPU to handle.
 |
Next week (Oct 8) on CodeRanch: I'll be hosting a week-long promo Q&A on quantum computing, so if you're interested bring any questions you've got. I'll either answer them (with working code samples whenever possible) or else get the answers (my co-authors are awesome, they'll know whatever I don't). |
More details on QPU programming language, if you want them:
The O'Reilly book has 54 samples which run both in simulation and on a physical QPU.
They're in JavaScript, Python, QASM (the QPU assembly IBM's QPUs know) and Microsoft is helping to translate them into Q# as well.
As an example of how this will look in practice, here's a function from
the book samples which generates a quantum-random byte.
Here, anything starting with `qc.` is an instruction for the QPU.
For a more interesting case, here's part of the book's
teleportation code sample.
In this case, the variables `alice`, `bob`, and `ep` are classes which issue QPU programs for specific qubits.
Fun fact: When you run this code sample using IBM's QPU hardware, which is free to access, it performs
actual quantum teleportation, not a simulation. :]
Cheers, and hope to see you next week!
- ej