Founding Fathers and Mothers of ProgrammingPublished: September 17, 2018 / Article by: Siarhei Kulich
Our digitalized world seems to have always been so. It is difficult for the overwhelming majority of youngsters to imagine how it can be possible to do without social networks, news feeds, video games, and other boons–if only controversial ones–the world of computers brings. It is worthy of note that we are living in the age when the last witnesses to the non-Internet world are still easy to find. Soon, there will be no people who remember poring over encyclopedias in libraries–with all information being a couple of clicks away, such an approach to obtaining information is now deemed inefficient, if not bizarre.
With the advent of personal computers, people became different. But few understand that these advances in technology, which paved the way for the systems currently used by most people, appeared as a result of work carried out by people from different fields. Physicists, of course, are often the first to be praised – for good reason. However, there are other inventors who are no less responsible for the emergence of the Internet, software and all things digital. These are programmers.
Computer programs were not created by a single person. There is no way to trace the invention to some solitary genius working in his lab. There are several names which are associated with the emergence of programming, and the history of the industry is worth knowing even if you do not belong to the plethora of programmers who are now reaping the benefits of knowing the field inside out.
The beginning of the programming era spans a period of over two centuries. The recent advances that led to the development of sophisticated programming languages and systems were preceded by the work that opened the door to what we use today.
The first attempts to devise anything programming-related date back to the 19th century. In 1843, Charles Babbage developed the concept of programming and actually devised the first machine of this kind, only on paper. His brainchild, dubbed the Analytical Engine, would comprise a processor, a control unit, and input and output devices. However, this project was not implemented.
It was not until his friend Ada Byron, who later became known under the surname of Lovelace, created the first-ever computer program for the machine designed by Babbage. The program was algorithm-based and, if implemented, would be able to calculate Bernoulli numbers. She is considered the first programmer, and she coined such terms as cell and cycle.
It was not until Hermann Hollerith’s electric tabulation system was introduced that the next stage of programming development, the practical one, started. The punch card machines for which he is famous are what can be called the roots of data processing. Among other names that can be listed as the programming pioneers are Alan Turing, the developer of the concept of the reprogrammable Universal Turing Machine, John von Neumann, the person who described the architecture required for the devising of a stored-program computer, and Konrad Zuse, a German who actually build the first ever functional computer that could be programmed. He was also the first to use a programming language in the project: it was called Plankalkul, and it was in binary.
The first compiler, which opened the door to programming as we know it, was introduced in 1952 by Grace Hopper, an American admiral and computer scientist. Her contributions were of utmost importance for the field because they enabled to avoid conversion of every command into binary code: with the advent of the first compiler, programming languages could now resemble human languages, namely English.
However, these are not the only people who made great contributions to the advancement of computing. Its milestones embrace the geniuses of such people as John Napier, Francis Bacon, Blaise Pascal, and many others. One of the most comprehensive lists is available here. The history of the Internet, which is one of the greatest achievements in programming, is also worth reading about.
Programming denotes the process of developing a computer program capable of accomplishing a computing task. To do it, one uses programming languages, or sets of instructions aimed to produce output. It is the internal wiring, the very basis of how computing machines work, and the means of communication used by humans to interact with computers. However, not all programming languages are the same: since the beginning of their history, the evolutionary processes have been those of introducing more complexity while making it easier for the user to operate the machine.
The range of programming languages that have been devised over the years is so wide that it is impossible to cover them all in one article. There are thousands of them, and ramifying dialects are being designed extensively. To have an idea of their variety, look at this list – it is far from being comprehensive, and this timeline is actually the tip of the iceberg.
However, we cannot dismiss the overview of the history of programming languages as a too challenging endeavor. Here are some of the most notable examples that had the most significant impact on further advancement of programming.
The most notable person of the mid-1800s, as far as programming is concerned, is definitely Ada Lovelace. Born to a wealthy and noble family, she was the only legitimate daughter of George Gordon Byron, one of the greatest British poets. However, Ada never actually knew her father: Lord Byron left the family a month after the birth of his daughter. Brought up by her mother who wanted Ada to focus on logic and mathematics, she was brought into contact with prominent scientists, including Michael Faraday, Andrew Crosse, etc. She also made friends with Charles Babbage, a mathematician and the developer of the famous Analytical Machine. When translating an Italian article about her friend’s invention, she added notes of her own, which included what is now deemed to be the first program in the world. Her prediction of the expansion of computers’ capabilities beyond the domain of pure calculation is also notable.
Her program was an example of an algorithm for a machine, the first of its kind, and that is why her name is so important to the history of programming.
The next stage of programming development, which was most fruitful, is the one we are living in now. It started in the 40s, with the introduction of the first assembler language. The mastermind behind it is Kathleen Booth, who designed the ARC assembly language.
Booth got to know John von Neumann (see above) when she travelled to the U.S. in 1947, and proposed modifications to the ARC based on von Neumann’s architecture. She also participated in the production of various machines, including ARC, SEC, and APE(X)C, which she programmed. An author of many a research paper, she was the first to have developed a functional assembler language, which paved the way for its successors and inspired other scientists.
The 50s were marked by the emergence of powerful programming languages, including Fortran and LISP.
The former was designed by John Backus, an American who is known for the development of the first high-level programming language that was widely used. Besides, he invented the Backus-Naur form, which is a notation for formal language syntax definition.
The latter was introduced by John McCarthy, a computer scientist who is also known as the father of artificial intelligence. The author of the Lisp language family, he coined the term AI and enhanced the ALGOL language originally created by Backus. While studying at Caltech, he attended a lecture delivered by von Neumann, and that was when programming piqued his interest.
The 70s were marked by the birth of object-oriented programming. One of the most prominent computer scientists of the decade was Ole-Johan Dahl, a Norwegian who designed the Simula programming language. He, along with Kristen Nygaard, was the first to define the concepts of classes and subclasses, inheritance, and other elements characteristic of object-oriented programming.
Another person associated with the development of OO programming is Alan Kay. An American scientist, he was also a professional jazz guitar player and composer. Besides OOP, he made a name for himself as the designer of windowing GUI. As far as programming languages are concerned, he is the developer of the Smalltalk language, which was integrated in the first networked workstation prototypes. These prototypes were the starting point for further development of Macintosh and Lisa by Apple.
The industry giant IBM can be considered the nexus of computing. Embracing the experience and contributions of five Nobel Prize winners and a plethora of other scientist awarded prestigious medals and awards, it is definitely a major research organization, and its role in the history of programming is hard to overestimate. As to languages, it is there that the SQL programming language was devised. It was designed by Donald D. Chamberlin and Raymond F. Boyce, but SQL is always regarded as one of the IBM’s notable achievements, along with the hard disk drive, ATM, the floppy disk, DRAM, etc.
And the last but not the least is Niklaus Wirth, the father of the famous Pascal language. He was a Swiss scientist who took part and played a major role in the development of a wide range of programming languages, including Modula (and Modula-2), Oberon (and Oberon-2), Euler, Algol W, and Oberon–07, but it is Pascal that made him famous all over the world. Pascal embraced advanced technologies and was based on data structuring and structured programming.
As we are approaching modernity, we come across the languages that remain widely used even today. One of the most popular languages, C++, was introduced in 1985 by Bjarne Stroustrup, a Danish scientist. Actually, he began working on it six years earlier, but it was the publishing of The C++ Programming Language book that marked the adoption of this invention by many major developers and other scientists working in the field.
Perl is another hallmark of the decade’s worth of inventions. It was created by Larry Wall. It is interesting to note how his linguistic training helped him design the language for which he was awarded many prizes. Wall and his wife aimed to find an unwritten language and develop a writing system for it, but health problems prevented them from travelling to Africa to find one. Instead, he became one of the influential fathers of programming languages.
Another language created at that time, which is worthy of description, is Ada. As you have probably guessed, it is named after Ada Lovelace. The language, which is general-purpose, OO high-level, structured, imperative and statically typed, was designed by a team of scientists led by Jean Ichbian, a French scientist of Greek and Jewish origin.
Rasmus Lerdorf is the programmer responsible for the powerful PHP scripting language. His first description of the new language in question appeared in 1995. Nowadays, PHP is the cornerstone of web development.
We are almost there! One of the names we would like to mention here is Anders Hejlsberg. He is another prominent Danish software engineer (have you noticed how many great scientists of Danish origin there are?) who authored several programming languages. Among these are Turbo Pascal and Delphi. However, he is renowned most for his work on C#, of which he is the lead architect at Microsoft.
Here we are. Our decade has seen the emergence of MonkeyX, a high-level programming language. This language has one primary purpose: all its code is designed to be used in development of video games. An OO dialect of BASIC, it is gaining popularity and has several target platforms, including Windows, Linus, iOS, Android, etc. The language was designed by Mark Sibly, a programmer from New Zealand working for Blitz Research Ltd.
Phew! That was a lot of names, but one thing that is strikingly obvious is that while there are definitely plenty of fathers of programming to list, the number of mothers is not that impressive. Of all the most famous computer pioneers, which include Babbage, Zuse, Turing, Jobs (yes – Steve Jobs is one of the most popular computing-related personalities ever!) and others, only Ada Lovelace stands out of the crowd – due to her gender.
Why is that so? Could it be possibly explained by the alleged inability of women to work in the field effectively? Or did they have fewer opportunities to implement their ideas? Or is it just not the way women choose for themselves?
Take a look at the timeline above: some of the actual pioneers were females! Ada Lovelace and Grace Hopper made contributions to the science of computing which are no less important than those of male scientists who worked later. Still, for some reason, their role in the history of programming is not as widely discussed as that of men. The list of female programmers is not limited to the two persons mentioned above. There are others, including Kathleen McNulty, Ruth Lichterman Teitelbaum and their colleagues, who were also female.
This is not to say that there should be some gender-based confrontation. The message here is that being a programmer means having a particular mindset and talents as a mathematician. When we read about the history of programming, we are often told a story of men’s success, be it Steve Jobs or one of the programmers listed in the timeline. But the truth is that women also played a very significant role in the technologies we enjoy today.
In fact, the mothers of programming created as many as nine languages.
- One of the first assembly languages, ARC assembly, was created by Kathleen Booth.
- A Soviet woman Kateryna Yushchenko was one of the team that created the first programmable computer on the other side of the pond, and Yushchenko herself invented the language of programming known as Address.
- COBOL, as stated above, is the result of Grace Hopper’s efforts.
- Jean Sammet, an IBM mathematician, is the author of FORMAC.
- Cynthia Solomon is one of the scientists who worked on the programming language for kids called Logo.
- Barbara Liskov made an important step in OOP language development when she created CLU in the 70s.
- Alan Kay designed his Smalltalk with the help of Adele Goldberg and several other people.
- Sophie Wilson is renowned for the creation of BBC Basic, the only programming language designed specifically for the sole purpose of airing TV programs.
- Christine Paulin-Mohring was among those who worked on the Coq language.
Who was the first programmer?
The underrepresentation of women in programming is not the only issue that is observed in the field. It is interestingly interwoven with another one. The question of who the first programmer was has no clear answer: in most sources, it is Ada Lovelace who is regarded as the first person to have written a program. However, it is simply not logical: her notes definitely were of great significance, but one should remember that it was Charles Babbage who designed the famous Analytical Engine, and it was L.F. Manabrea who wrote that very memoir on the invention that Ada translated and supplemented with notes. That is why all the three deserve the title of the first programmer.
More inventions to come. More problems to solve
Gender stereotypes remain an issue for many people. While there is no doubt that men are behind the majority of inventions, women also play a significant role in science, and it is a matter of time until all biases, be they gender, race or nation, are eliminated from research.
Rationalization of the gender gap in the tech field is something that does not seem to cease to spark heated debates. (Consider the recent case of Google firing an employee challenging the company’s policy.) Of course, it goes without saying that it is the skills and hard work that matter, not what gender or skin color it is. And it should be remembered by both men and women that it is what you do that defines what you have. Just as men cannot humiliate women in the workplace because they are women, women themselves should understand that the very fact of being a female does not make you superior.