Bientôt un langage de programmation quantique dans votre Visual Studio !

La programmation quantique, le Saint Graal de l'informaticien... Je ne verrai jamais ça sur mon PCpensiez-vous ? Vous étiez trop pessimiste. Lors de sa conférence Ignite qui a débuté hier, Microsoft a annoncé le lancement d'un langage de programmation quantique.

Et ce langage sera intégré à Visual Studio ! Avec toutes les possibilités que cela sous-entend. Pas seulement la coloration syntaxique, mais l'exécution du code, le débogage, tout.

Il faudra quand même que votre poste de travail soit costaud. Visual Studio proposera un simulateur d'ordinateurs quantique 32 qubits, ce qui demandera la bagatelle de 32Go de mémoire dans votre machine. Pour chaque qubit supplémentaire souhaité, votre capacité mémoire devra doubler. C'est gourmand l'informatique quantique. C'est pourquoi Microsoft proposera aussi un simulateur d'ordinateur quantique sur son cloud Azure, pour une capacité de 40 qubits maximum. Microsoft n'a pas encore donné d'informations concernant le nom de ce nouveau langage. Des rumeurs évoque Q++ ou Q#. Les outils seront disponibles gratuitement d’ici la fin de l’année. Les développeurs peuvent rejoindre la communauté quantique de Microsoft dès aujourd’hui en s’inscrivant sur www.microsoft.com/quantum

Mais qu'est-ce donc qu'un ordinateur quantique ? C'est un ordinateur dont les bits que nous connaissons dans les microprocesseurs de nos antiquité actuelles :-) sont remplacés par des qubits.

Un bit a 2 états 0 ou 1. Pour un qubit c'est tout autre chose... On lit bien souvent dans les articles de vulgarisation que les qubit sont des sortes de super bits à 3 états 0, 1, ou 0 et 1 superposés. Mais en fait les choses sont beaucoup plus complexes, c'est le cas de le dire :-)

Car s'il y a bien une superposition d'états dans un qubit, cette superposition d'états est une superposition non pas comme nous la comprenons intuitivement - deux choses l'une sur l'autre - mais comme une superposition au sens mécanique quantique du terme :-) Dans un qubit la superposition de ces deux états est décrite par une combinaison linéaire des états :

a * |0> + b |1>

où a et b sont deux nombres complexes tels que a au carré plus b au carré égale 1.

Lorsqu'on lit un qubit, on récupère soit 0 soit 1, mais avec les carrés des valeurs absolues de a et b comme probabilités d'état :-) Dans nos bons vieux microprocesseurs à la papa Cro-Magnon, lorsqu'on lit un bit, on est sûr de son état et de ce qu'on lit : 0 ou 1. En informatique, on obtient une probabilité d'état... Une probabilité modifiée qui plus est :-)

Car pour agrémenter encore un peu les choses, il faut savoir que la lecture du qubit modifie son état - le fige, ou le projette dans l'état mesuré - en vertu d'une loi de la mécanique quantique qui veut que l'observation influe sur le système observé. Ce qui implique qu'un qubit ne peut être dupliqué, puisque pour ce faire, il faudrait le lire, donc le modifier :-) Mais par contre il peut être téléporté au sens de téléportation quantique du terme :-)

La téléportation quantique  consistant à transférer l’état quantique d’un système vers un autre système similaire et séparé spatialement du premier. Comme nous ne sommes pas (pas encore...) dans la série Star trek, il ne s'agit donc pas de transfert de matière ni d'énergie. Le terme de téléportation quantique est utilisé pour souligner le fait que le processus est destructif : à l'issue de la téléportation, le premier système ne sera plus dans le même état qu'initialement :-)

Voici un exemple de programmation quantique, qu'on pourra qualifier de 'Hello World' quantique, qui téléporte un qubits :-)