Creo que algunos de los problemas son:
- Las primeras computadoras cuánticas son tan pequeñas que los algoritmos prácticos se centran más en el acceso de bajo nivel y funcionan con qbits individuales que en las características de alto nivel. Por la misma razón que los lenguajes de ensamblaje y el binario se usaron durante veinte años antes de que se inventaran Fortran y Lisp, y la programación en ensamblaje siguió siendo la norma durante otra década.
- Sin bloqueo en un diseño dominante para computadoras cuánticas. Las diferentes computadoras cuánticas que se están construyendo en el mundo de hoy tienen diseños muy, muy diferentes. Algo así como la diferencia entre una máquina de Turing y el cálculo lambda, pero mirando nuevos enfoques como control de calidad adiabático, recocido cuántico o computadoras cuánticas unidireccionales, la diferencia en realidad parece ser significativamente mayor que incluso eso.
- La mayoría de los algoritmos se dan como circuitos cuánticos, que son exactamente como suenan. Se describen en el nivel de puerta lógica. Esto está bastante lejos de ser una descripción de alto nivel, pero el formalismo de los circuitos cuánticos ha funcionado adecuadamente para los algoritmos que se han estudiado y existe cierta inercia contra el uso de otras descripciones.
- El paradigma de la computación procesal no se traduce bien a la computación cuántica, porque entre otras cosas, la ramificación basada en el valor de un qbit no medido … tendría problemas de implementación importantes. A menudo, los algoritmos prácticos exhiben un uso intensivo de superposición en lugar de ramificación para manejar diferentes casos del algoritmo. O en los enfoques más exóticos, los algoritmos ni siquiera se parecen a los algoritmos informáticos “ordinarios” y más bien a las matemáticas puras.