I am planning to write a paper which compares Qiskit and Q# in the following circuits/algorithms

  • Bell circuits

  • Controlled swap to test similarity of two registers

  • Phase kickback between two qubits

  • Deutsch-Jozsa algorithm

  • Grovers algorithm

  • Simons algorithm

  • Shors algorithm (slightly advanced for me)

What all parameters apart from time and space complexity can I take to compare these languages

  • $\begingroup$ As @Chris Granade already said in his answer, such comparison will have very limited value. Instead, consider using the things that have impact on developer experience such as: simulators performance, available debugging options, quality of documentation, community size, ..etc. $\endgroup$ Commented Mar 15, 2021 at 9:26

1 Answer 1


Just as with classical computing, we don't expect that in quantum computing the choice of a programming language will have a direct effect on the time and space complexity of most algorithms. That is, while C, Python, Rust, and Swift are all very different programming languages, quicksort is a $O(n \ln n)$ algorithm in all of them. Rather, classical languages tend to be compared on the basis of whether they are low-level or high-level, how easy they are to work with, what safety they provide the programmer (e.g.: it's more difficult to segfault in Python or Rust than in C), and so forth.

If you're interested in more resources comparing quantum languages, you may find https://www.nature.com/articles/s42254-020-00245-7 helpful. I also have a look together with Sarah Kaiser on Q# coming out soon that you may find interesting as well: https://bit.ly/qsharp-book

  • $\begingroup$ I think something which can differ from language to another is the amount of "simulation" of a real quantum physical computer vs having the same effect as a quantum computer ? I have no real idea how these really work but they were used as arguments for te languages $\endgroup$ Commented Mar 15, 2021 at 9:11
  • $\begingroup$ @BrockenDuck: Simulation time is also fairly separable from languages, as it turns out. For example, the first design principle for Q# is that the language should be independent from what target programs run on (github.com/microsoft/qsharp-language/#design-principles), meaning you can swap between different simulators and devices while keeping the language and libraries the same. $\endgroup$ Commented Mar 15, 2021 at 16:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.