¿Cómo cambiaría la computación cuántica el campo del diseño de software?

TL; DR No lo cambiaría tanto como podría pensar, pero afectará ciertos campos. Piense cómo otros dispositivos especializados, como las GPU y los procesadores multinúcleo, han afectado el diseño de software en términos de algoritmos paralelos. De manera similar, los algoritmos cuánticos afectarán solo a ciertas personas que realmente pueden beneficiarse al usarlos.

Los controles de calidad resultarán ser dispositivos muy especializados, similares a lo que son ahora las tarjetas gráficas discretas. De hecho, Nvidia (al igual que Intel, más recientemente) está trabajando en una GPU de uso general llamada Tesla, que está optimizada para ciertos tipos de cálculos paralelos. En el caso de las computadoras cuánticas, también son muy especializadas para ciertos problemas, como búsqueda, factorización, programación, otros problemas de optimización, etc. Sin embargo, como la computación paralela, algunos problemas simplemente no funcionan bien con estas técnicas, e incluso puede darte una desaceleración en lugar de una aceleración.

He escrito un poco sobre cómo un paradigma de computación cuántica, llamado modelo adiabático, puede ser extremadamente efectivo. Lo emocionante de este modelo es que ya existe una compañía llamada D-Wave Systems, que ha construido una computadora cuántica adiabática de 128 qubits y está trabajando con muchos grupos diferentes para desarrollar algoritmos rápidos para ella.

¿Cómo funciona la computación cuántica? ¿Qué lo hace diferente del paradigma informático actual? ¿Qué tipo de problemas podría resolver la computación cuántica? ¿Cómo se realiza la corrección de errores?

Hay algunos problemas inherentes con la computación cuántica que deben resolverse, pero eso está fuera del alcance de esta pregunta.

La mayoría de los ingenieros de software no pueden hacer algoritmos de concurrencia / paralelos muy bien, incluso ahora, a pesar del hecho de que ha existido durante bastante tiempo y los beneficios podrían ser significativos. La computación cuántica es conceptualmente difícil de entender, lo que será una barrera para su ingeniero habitual. Sin embargo, esto abre el área para que grupos especializados de consultoría o ingenieros de bibliotecas vendan software que pueda interactuar con estos dispositivos. Ya hay empresas que hacen esto para sistemas distribuidos y GPU (a veces consultan y construyen sus propias bibliotecas genéricas para la venta).

Calcular un algoritmo de PageRank o encontrar las rutas más cortas en un mapa podría ser más rápido con un dispositivo de control de calidad. La tendencia que notará es que todo se reduce a problemas matemáticos, por lo que las personas que más se beneficiarán de los controles de calidad son los científicos / ingenieros informáticos, investigadores, ingenieros de bibliotecas e ingenieros de sistemas. Con el tiempo suficiente, es posible que cualquiera que tenga que diseñar un algoritmo lo haga de manera diferente que ahora, solo porque hay una biblioteca rápida para hacerlo mejor.

A las personas les importaría aún menos la complejidad algorítmica, la gestión de la memoria o el escalado.

Esto es bueno y malo.

Malo por la cantidad de código hinchado e imposible de mantener que terminaría flotando en el mundo.

Realmente increíble si quieres escribir lenguajes específicos de dominio que puedan disparar cálculos enormemente complejos detrás de escena y aún así darte resultados en una cantidad de tiempo útil.

Creo que en algún lugar aquí podría formular una regla que indique que cualquier avance en la velocidad de cómputo, una disminución correspondiente en la calidad del código y un aumento en las características inútiles harán que el X por ciento del código real no sea más rápido.

Esto viene del mundano mundo de la informática centrada en los negocios. En el mundo de la investigación, creo que cosas increíbles serán posibles. La gente podría dejar de quejarse de que LISP es demasiado lento, por ejemplo.