If you knew that computer programming has its roots from the beginning of the 13th century you may find that hard to believe. Who would have thought that the creation of mechanical toys at the beginning of the 13th century would have started an evolutionary process that has led to our understanding of computer programming today?
A look back through history to see how computer programming has developed provides an insight into how far ahead of their time some inventors were. The foundations of modern computer programming were laid in the middle ages and bought to life throughout the 20th century.
During the later part of the 20th century computer programming has advanced to the development of thousands of different programming languages. The technological developments of the last thirty years far exceed what has occurred in the previous millennia.
It is both scary and exciting to reflect on the developments of computer programming and the transition from binary programming to the development of programming text we have today. A walk through memory lane also provides an insight into the future of programming – and the reality that programming that matches (and exceeds) biological intelligence is within our grasp.
Origins of programming
The origins of programming can be dated way back to the very beginning of the 13th Century. Ismail al-Jazari was an Islamic inventor and mathematician with a skill set that preceded his generation.
On the year of his death, in 1206, he released nearly 100 templates, drawings and instruction guides for mechanical toys, many of them using simple programming peg and camshaft mechanisms to produce sound and movement.
Fast-forward 600 years to the beginning of the 19th century and it was upon these principles that the Jacquard Loom was created. The loom was used to simplify the creation of textiles using a ‘punched card’ programme system. The programme was developed and differentiated using various designs of punched cards processed through the loom. Different punched card designs created different textiles. The Jacquard loom was an early 19th century phenomenon.
The first computer programme
Charles Babbage was motivated to use the Jacquard loom programme system design of punched cards in his analytical engine. It was here that mathematician Ada Lovelace created an algorithm using Bernoulli numbers to simplify the process for the analytical engine.
Unfortunately for her the machine was never created in her lifetime, so her theory was never tested. But the notes she created, in collaboration with Charles Babbage are believed to be the birth of computer programming.
Ada Lovelace, a woman ahead of her time, is now recognised as the world’s first computer programmer.
The development of storing data
By the end of the 19th Century Herman Hollerith created the storage of machine-readable data. During twenty years of modification he significantly improved his design to add a control panel to the back of his invention - the Type 1 Tabulator. This control panel plug board allowed the Tabulator to be programmed for different jobs. Interestingly, the company that was incorporated from the creation of the Tabulator has evolved into IBM.
Through the first half of the 20th century programming was continually improved but restricted to the use of punch cards. IBM was the leading business for unit record equipment throughout this period. The language of these early computers was solely binary code.
However, drastic change occurred in the development of assembly languages in the early 1950s. These assembly languages in text let the programmer provide instructions straight into the computer with a freedom and ability for them to hold abstract information.
The release of FORTRAN
FORTRAN was conceived in 1953 as a practical, easier assembly language for programming the IBM 704-mainframe computer. The idea was created by John Backus who admitted he was looking for an easier way to get things done out of laziness! The FORTRAN language was not formally adopted until 1957 when it was proven to increase operating system efficiency. A lot of the FORTRAN language programmers were still entered using punched cards and paper tape.
It was not until the late 1960s that data storage devices and computer terminals became inexpensive enough to type text directly into computers.
Development through the 60’s and 70’s
During these decades programming was enhanced to a point of new creativity and variety. Spacewar was the first computer game created in 1961. This game and invention of gaming programming directly lead to the creation of coin operated arcade companies such as Atari Computers.
At around the same time two other programming languages came into prominence. Work began on LISP a language that is still closely tied with the development of artificial intelligence. At the same time APL, a language with its own unique character set was released.
By the time the 1970’s arrived new programming languages were popping up frequently. The programming language ‘C’ was created in 1972 by Dennis Ritchie and it has dominated operating system development. This occurred two years before the invention of the Internet which originated in 1974.
Diversification through the 80’s and 90’s
Through the 1980’s programming diversified at such a rate that specialized programmes for individual operating systems were becoming common. In 1983 the first computer virus was created, for no other reason than just to show it could be done.
Two years later, in 1985, programming technology had advanced so much that the wreck of the Titantic was found using a submarine controlled by the programme Forth.
2000s and beyond
By the turn of the new millennium it was becoming more and more evident that programming and the knowledge of multiple programming languages are vital to business success. The continued boom of the Internet meant that familiarity with programming concepts, computer systems and architecture has become an invaluable and vital business skill.
In fact, the amount of programmers and Universities offering up programming courses has exploded exponentially. Programming is now an established vocation throughout the Western World. It is only just beginning to unearth its potential as a vocation throughout the developing countries such as China and India. As the popularity for programming matures so does its capacity for growth and development.
In the Long-term it is difficult to make predictions of where the future of programming will take us, especially with the speed that programming continues to evolve. Arguably it will not be long before programming is replicating high and exceeding levels of biological intelligence. One thing is for sure - computer programming has come a long way from the creation of mechanical toys.