Quantum computers have been developed in laboratories since 1998 when the first quantum computer was created using alanine and trichloroethylene as a medium. This computer had 3-qubits with nuclear magnetic resonance which the quantum computer is based on. A qubit is like a bit because it can be either 1 or 0 however the qubit can be either 1, 0 or a super position of both. This allows a quantum computer to perform multiple calculations at once rather than just one at a time like the architecture of a modern computer. A bit can be represented by the poles of a sphere or a simple switch but a qubit is represented by the Bloch sphere and super positions must be calculated using 3d vector calculus (Van Meter 2013). Quantum entanglement is used to check the state of a qubit without affecting the state of the qubit by observing it. Which is where two atoms are entangled by an outside force and then when one changes state the other changes its state in the opposite direction (Lagana 2011).
Around the year 2000 it was demonstrated that a quantum computer can solve certain math problems in one step that would take a conventional computer multiple cycles. In 2001 an algorithm developed by Peter Shor created to factor an integer on a quantum computer was implemented using a 7 qubit computer finding the factors of 15. In 2005 quantum memory was implemented when quantum information was transferred between atoms and photons and back. Then in 2008 a quantum bit was stored which are the first steps towards creating quantum computer memory. In the last 2 years some disputed breakthroughs have been made with a system known as adiabatic quantum computing which allegedly calculated an R(8,2) two color Ramsey number, which is used to calculate order in a system, in only 270 milliseconds. The computer that performed this calculation is a D-wave 84 qubit quantum computer (Elteja 2013). The power of the quantum computer is highly disputed by physicist when compared to conventional computers. Even though their use at this point is disputed many companies and organizations have begun exploring this use of such a machine for purposes like cryptography for the NSA and computer modelling of things like disease development and climate predictions for the Google quantum lab. In the future uses could be better direct market targeting algorithms, optimization problems like water usage and scheduling, and object detection which is being researched by Google to attempt to create a self-driving vehicle (Grossman 2014).
Programming quantum computers to perform useful tasks will require a different type of logical thinking as their architecture is much different. Two quantum high level languages have already been created, QCL and Quipper. The very basic algorithm for solving a problem on a quantum computer is to prepare a set of quibits to an initial state, apply operations and then measure the final state of the qubits which should hold the answer if the operations were performed properly (Hayes 2014). This is very similar to how a classic computer is programmed except the conceptual layers of computer science have hid this basic architecture. Since quantum computing is very new programming for these machines goes back to thinking about basic structures before creating conceptual layers to better understand the processes. As a programmer I find it hard to wrap my mind around the idea that instead of a simply Boolean 0 or 1 there could be 54% 0 and 46% 1 or many other super positions of 0 and 1. So it would make since that a new set of logic might need to be created to understand the processes of a quantum computer.
One of the possible constraints of a quantum computer is that it must flow straight through and have a function nature where the input must be able to be recreated from the output that’s given from an operation. This means that all operations must keep enough information for reverse methods. Copying a qubit breaks the no-cloning theorem and a qubit cannot be set or reset in a computation or the super position would be destroyed. Due to this theory on the constraints of the quantum computer the quantum langauges that have been created acknowledge that a hybrid classic computer with a quantum subsystem is a likely solution (Hayes 2014).
While there are many possible constraints, many conflicting opinions and questions about quantum computers they could very well be a large part of computer technology of our future. In 1947 a computer engineer named Howard Aiken stated that just six computers would satisfy the computing needs of the United States. It is impossible to predict anything at this point in terms of quantum computing. The responsibility of scientists is to advance, expand and discover knowledge and quantum computing is no different. In 20 years I could be programming on a quantum computer or the idea of quantum computing could be seen as a failed theory of the past. Only time and research will tell what the potential of quantum computing is.
ELTEJA, S. (2013). THE APROACH OF CLASSICAL COMPUTER TO QUANTUM COMPUTER. Journal Of Science & Arts, 13(2), 209-212.
Grossman, L. (2014). Quantum Leap. Time, 183(6), 26.
Hayes, B. (2014). Programming Your Quantum Computer. American Scientist, 102(1), 22-25.
Lagana, A. A., Lohe, M. A., & von Smekal, L. (2011). Interfacing External Quantum Devices to a Universal Quantum Computer. Plos ONE, 6(12), 1-5. doi:10.1371/journal.pone.0029417
VAN METER, R., & HORSMAN, C. (2013). A Blueprint for Building a Quantum Computer. Communications Of The ACM, 56(10), 84-93. doi:10.1145/2494568