Computer programs are designed or written by computer programmers. A few programmers write programs in the computer's own language called machine code. Most programs are written using a programming language like C, C++, Java. These programming languages are more like the language with which one talks and writes every day. The compiler converts the user's instructions into binary code (machine code) that the computer will understand and do what is needed.
Most people have a problem with math. To show this, try doing 584 x 3,220 in your mind. It is hard to remember all the steps! People made tools to help them remember where they were in a math problem. The other problem people have is that they have to do the same problem over and over and over again. A cashier had to make change every day in his/her head or with a piece of paper. That took a lot of time and they made mistakes. So, people made calculators that did those same things over and over. This part of computer history is called the "history of automated calculation," which is a fancy phrase for "the history of machines that make it easy for me to do this same math problem over and over without making mistakes."
The abacus, the slide rule, the astrolabe and the Antikythera mechanism (which dates from about 150-100 BC) are examples of automated calculation machines.
People do not want a machine that would do the same thing over and over again. For example, a music box is a machine that plays the same music over and over again. Some people wanted to be able to tell their machine to do different things. For example, they wanted to tell the music box to play different music every time. They wanted to be able to program the music box- to order the music box to play different music. This part of computer history is called the "history of programmable machines" which is a fancy phrase for "The history of machines that I can order to do different things if I know how to speak their language."
One of the first examples of this was built by Hero of Alexandria (c. 10–70 AD). He built a mechanical theater which performed a play lasting 10 minutes and was operated by a complex system of ropes and drums. These ropes and drums were the language of the machine- they told what the machine did and when. Some people argue that this is the first programmable machine.
Some people disagree on which early computer is programmable. Many say the "castle clock", an astronomical clock invented by Al-Jazari in 1206, is the first known programmable analog computer. The length of day and night could be adjusted every day in order to account for the changing lengths of day and night throughout the year. Some count this daily adjustment as computer programming.
Others say the first computer was made by Charles Babbage. Ada Lovelace is considered to be the first programmer.
At the end of the Middle Ages, people started thinking math and engineering were more important. In 1623, Wilhelm Schickard made a mechanical calculator. Other Europeans made more calculators after him. They were not modern computers because they could only add, subtract, and multiply- you could not change what they did to make them do something like play Tetris. Because of this, we say they were not programmable. Now engineers use computers to design and plan.
In 1801, Joseph Marie Jacquard used punched paper cards to tell his textile loom what kind of pattern to weave. He could use punch cards to tell the loom what to do, and he could change the punch cards, which means he could program the loom to weave the pattern he wanted. This means the loom was programmable. At the end of the 1800s Herman Hollerith invented the recording of data on a medium that could then be read by a machine, developing punched card data processing technology for the 1890 U.S. census. His tabulating machines read and summarized data stored on punched cards and they began use for government and commercial data processing.
Charles Babbage wanted to make a similar machine that could calculate. He called it "The Analytical Engine". Because Babbage did not have enough money and always changed his design when he had a better idea, he never built his Analytical Engine.
As time went on, computers were used more. People get bored easily doing the same thing over and over. Imagine spending your life writing things down on index cards, storing them, and then having to go find them again. The U.S. Census Bureau in 1890 had hundreds of people doing just that. It was expensive, and reports took a long time. Then an engineer worked out how to make machines do a lot of the work. Herman Hollerith invented a tabulating machine that would automatically add up information that the Census bureau collected. The Computing Tabulating Recording Corporation (which later became IBM) made his machines. They leased the machines instead of selling them. Makers of machines had long helped their users understand and repair them, and CTR's tech support was especially good.
Because of machines like this, new ways of talking to these machines were invented, and new types of machines were invented, and eventually the computer as we know it was born.
In the first half of the 20th century, scientists started using computers, mostly because scientists had a lot of math to figure out and wanted to spend more of their time thinking about science questions instead of spending hours adding numbers together. For example, if they had to launch a rocket ship, they needed to do a lot of math to make sure the rocket worked right. So they put together computers. These analog computers used analog circuits, which made them very hard to program. In the 1930s, they invented digital computers, and soon made them easier to program. However this is not the case as many consecutive attempts have been made to bring arithmetic logic to l3.Analog computers are mechanical or electronic devices which solve problems.Some are used to control machines as well.
Scientists figured out how to make and use digital computers in the 1930s to 1940s. Scientists made a lot of digital computers, and as they did, they figured out how to ask them the right sorts of questions to get the most out of them. Here are a few of the computers they built:
Several developers of ENIAC saw its problems. They invented a way to for a computer to remember what they had told it, and a way to change what it remembered. This is known as "stored program architecture" or von Neumann architecture. John von Neumann talked about this design in the paper "First Draft of a Report on the EDVAC", distributed in 1945. A number of projects to develop computers based on the stored-program architecture started around this time. The first of these was completed in Great Britain. The first to be demonstrated working was the Manchester Small-Scale Experimental Machine (SSEM or "Baby"), while the EDSAC, completed a year after SSEM, was the first really useful computer that used the stored program design. Shortly afterwards, the machine originally described by von Neumann's paper—EDVAC—was completed but was not ready for two years.
Nearly all modern computers use the stored-program architecture. It has become the main concept which defines a modern computer. The technologies used to build computers have changed since the 1940s, but many current computers still use the von-Neumann architecture.