The history of computer programming is as complex as it is interesting. Here are some glimpses of the history of programming languages.
With the world becoming more tech-focused and data-driven, the importance of computer programming and other digital literacy skills will only increase. As we have already seen that coding – a subset of Programming that implements the initial steps of programming – has emerged as the number-one in-demand skill in recent years. The pandemic has sent even more people to seek out coding courses as a means of upskilling and future-proofing themselves in times of economic uncertainty. While these skills are becoming more essential to success, the history of computer programming is an interesting one, albeit with much complexities. Here are some glimpses of the history of programming languages.
Lady Ada Lovelace: The first coder
Almost 200 years ago, the first person to be what we would now call a coder was, in fact, a woman: Lady Ada Lovelace, a British mathematician. In 1833, she met Charles Babbage, a scientist and inventor who was struggling to design a ‘Fully programmable machine’ which would be later called an Analytical engine.
Enthralled, Lovelace grasped the enormous potential of a device like this. A computer that could modify its own instructions and memory could be far more than a rote calculator, she realized. To prove it, Lovelace wrote what is often regarded as the first computer program in history, an algorithm with which the Analytical Engine would calculate the Bernoulli sequence of numbers. The Analytical Engine introduced a number of computing concepts still in use today. Features included a store and mill, analogous to today’s memory and processor. Input and output was provided using punched cards, based on the invention by Jacquard in the early 1800s.
Unfortunately, Babbage never managed to build his computer, and Lovelace, who died of cancer at 36, never saw her code executed. Nonetheless, Babbage’s analytical engine is considered to be the concept for the first general mechanical computer.
Oddly enough, in 1890, an American by the name of Herman Hollerith became aware of Babbage’s Analytical Engine. Hollerith built his own machine based on Babbage’s idea of punch cards and electromagnetic relays to help the U.S. Census Department in the 1890 census. Although Hollerith’s machine did not perform all the operations Babbage envisioned, it did work.
With this new machine, Hollerith was able to open his own business – The Tabulation Machine Company. In 1924, that company changed its name and became International Business Machine Corporation or IBM.
The twentieth century saw a flurry of developments in programming. The first modern computers (electrically powered) were created in the 1940s. These computers were limited in speed and memory capacity. Because of such limitations, programmers were forced to write assembly language programs manually. Being a low-level programming language, it was a tough task to program it manually. Programmers then realized the need for high-level languages to lower the effort that was required for writing the assembly language programs manually.
First Programming Languages
Konrad Zuse, a German engineer, designed the first-ever high-level programming language – Plankalkül – for engineering purposes around 1943, but for some reason, it was not implemented.
It was in 1949 that the first-ever high-level programming language for electronic computers was created. John Mauchly proposed Short Code, originally known as brief code and it was implemented by William F Schmidt. Shortcode was the first functional programming language. It was represented in a mathematical expression that was human-understandable. But there was a big disadvantage. A program has to be translated into the machine code every time it ran. This was a much slower process. In 1952, Autocode was developed by Alick Glennie. It was the first compiled language that directly converts into machine code using a compiler. It’s the second version, Mark 1 auto code, was developed two years later by R.A. Brooker for Mark 1.
Autocode was better than its predecessors, but it still failed to gain popularity. FORTRAN was the first popular programming language that was developed in 1954 by a team in IBM. It is the oldest high-level programming language that is still in use.
There was still time for high-level languages such as Java, C, and C++ to come out. But their starting point was developed in 1958 by a scientific committee for research and scientific uses. They developed a language known as Algol. Java and many other high-level languages are somehow based on Algol.
Establishing Programming Paradigms
COBOL was the first high-level programming language that could run on the type or brand of computers. It was developed in 1959 and it stands for COmmon Business Oriented Language. It is used in card processing, ATMs, and even it was used in the movie Terminator for the Terminator’s visual display. The same year, LISP was invented by John McCarthy for use in artificial intelligence. These languages are still in use.
Many programming languages were developed in the last decade. There were many improvements but still programming was a tough task. John G. Kemeny and Thomas E. Kurtz decided to create something for students who do not have good programming and mathematical understandings. They created a family of easily useable programming languages and named it BASIC. Years later, Bill Gates and Paul Allen modified BASIC and this modified version ended up as the first product of Microsoft.
In 1974, Donald D. Chamberlin and Raymond F. Boyce developed SQL. SQL stands for Structured Query Language. It was particularly developed for working with databases, and even today, it remains one of the most popular languages in the database world.
In this period, from the late 1960s to the late 1970s, many popular programming paradigms were invented. Simular was invented in the 1960s and it was the first programming language that supported object-oriented programming. C was the first systems programming language, and Prolog was the first logic programming language.
Consolidations and Improvements in the 1980s
In this decade, instead of developing new paradigms, improvements were made to inventions of the last decade. One of such consolidations was C++. C++ was developed by Bjarne Stroustrup in 1983. It is an extension of C, with an important feature, object-oriented programming. It combined systems and object-oriented programming. Today, C++ is one of the most widely used programming languages. It is heavily used in game engines and web development. Popular software such as adobe Photoshop also uses C++.
Another very important trend added during this time was the usage of modules, or simply, large-scale organizational units of code. In the future, modules became a very important part of the programming world. Also, the object-oriented features such as polymorphism originated in this decade.
Objective-C, the main language used in Apple’s operating system, macOS and IOS was developed in 1983. Other notable languages developed during this period were Perl in 1987 by Larry Wall, TCL in 1988 by TCL core team, Ada in 1983, Common Lisp in 1984 and Eiffel in 1984.
The Internet Age
It is one of the core technologies of the World Wide Web, the other two being CSS and HTML. Tim Berners-Lee developed the HTML markup language in 1990. It is one of the most popular and widely-used programming languages in the world.
Another major high-level programming language that came out in the 1990s was Java. Originally it was developed for cable boxes and hand-held devices. But it enhanced so much that today, it is everywhere. From the World Wide Web to computers and smartphones, and even parking meters. No doubt, Java is the most popular programming language today.
Other notable languages created during this period were Haskell in 1991, Visual Basic in 1991, Lua in 1993, R in 1993, Ruby in 1995, Ada 95 in 1995, PHP in 1995, and Rebol in 1997. Functionally programming came out in this period and Haskell is a purely functional programming language. It is very popular when it comes to complex mathematical operations. Microsoft developed Visual Basic which also became very popular. R became popular in data analysis while PHP and Ruby are widely used in web development.
Growth of Modern Programming Languages
The evolution of programming languages continued with the start of a new century. Microsoft developed C# in 2001. it is very similar to C++, Java, and Visual Basic. C# is heavily used in Microsoft products, and desktop applications. In 2003, Martin Odersky created Scala that is used in Android development. Go was developed by Google in 2003 to address problems that were originating in large software systems.
Later in the next decade, Google also invented another useful language, Dart. Dart is used in Flutter to create cross-platform mobile applications. TypeScript invented in 2012 is an important part of the Angular framework. Apple also developed a new language, named Swift in 2014 as a replacement for C#, C, and C++.
Other notable languages developed in the 21st century are ActionScript 2000, D in 2001, Scratch in 2002, Groovy in 2003, F# in 2005, PowerShell in 2006, Clojure in 2007, Rust in 2010, Kotlin and Elixir in 2011, and Julia in 2012.
To sum up, programming languages have undergone a sea change in the last seventy years. From creating tough programs in assembly language to extremely user-friendly python programs, there has been much development in every decade. The future will be shaped by many emerging technologies such as Mobile Development, Blockchain, and Artificial Intelligence that will open up doors of opportunity. But inventions and improvements did not stop here. This will continue in the future and maybe, it will continue forever.
(This is an excerpt from Techtonic Shift: A Brief History of Computing and the Web by Sohini Bagchi, Editor, CXOToday.com. The book is published by Orange Publishers and is also available on Amazon.in)