[go: up one dir, main page]

0% found this document useful (0 votes)
200 views12 pages

Homework 1 Research Paper: A Complete History of Programming Languages

The document provides a history of programming languages from ancient times to modern day. It discusses early calculation aids like the abacus and Pascal's calculator. It then covers the creation of important early languages like Assembly (1949), Fortran (1957), Algol (1958), COBOL and Lisp (1959), BASIC (1964), Pascal (1968), Smalltalk, C, and SQL (1972), C++ and Objective-C (1983), Python and Ruby (1991), Java, JavaScript, and PHP (1995). Many modern languages were influenced by these earlier innovations. The document traces the evolution of programming and highlights milestones in the development of different languages.

Uploaded by

Phúc Hồ Thế
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
200 views12 pages

Homework 1 Research Paper: A Complete History of Programming Languages

The document provides a history of programming languages from ancient times to modern day. It discusses early calculation aids like the abacus and Pascal's calculator. It then covers the creation of important early languages like Assembly (1949), Fortran (1957), Algol (1958), COBOL and Lisp (1959), BASIC (1964), Pascal (1968), Smalltalk, C, and SQL (1972), C++ and Objective-C (1983), Python and Ruby (1991), Java, JavaScript, and PHP (1995). Many modern languages were influenced by these earlier innovations. The document traces the evolution of programming and highlights milestones in the development of different languages.

Uploaded by

Phúc Hồ Thế
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

Student’s name: Hồ Thế Phúc

Instructor’s name: Phạm Trọng Nghĩa

Course: Introduction to Information Technology

Date: 06/10/2021

Homework 1 Research Paper:

A Complete History of Programming Languages

Since ancient times, humanity has tried to aid their calculations with mechanisms
such as the famous abacus in ancient China, Pascal's calculator (also known as the
arithmetic machine or Pascaline) in 1641. In 1833, however, we caught a glimpse of what
powerful modern-day programmable computers are based on; this apparatus was the
Analytical Engine. Many essential functions found in the Analytical Engine can also be
found in modern computers. It revolutionized how calculations machines will behave
from there on with its programs integrated through punch cards. Through that flexibility,
it harbored many useful mathematical tools that in later years of computer science
adapted modern terminologies like conditional branching, looping (iteration),
microprogramming, parallel processing, iteration, latching, polling, and pulse-shaping.

(Babbage’s analytical engine , as displayed at the Science Museum (London)


Source: https://www.computerhistory.org/babbage/)
Since the machine was programmable, it was only natural to create universal rules
and methods for people to use it. Hence, the need for a programming language. To tackle
this problem, Ada Lovelace- a renowned female mathematician at the time, developed
algorithms using punched cards for the Analytical Engine; this algorithm was used to
compute Bernoulli numbers. Although this was not an actual programming language, it
showed people what could be done if computing technology advanced.
In 1949, 66 years later, a programming language named Assembly Language was
created. As a low-level language, it did not branch too far from a computer's architecture
instruction; it supplied a simplified version of machine code. In the mid-1940s,
programming general-purpose computers were counterproductive. Computers like
ENIAC did not have internal storage for code, and reprogramming involved the
manipulation of its cables and light switches. It was eventually rewiring the whole
computer. With the creation of EDSAC (Electronic Delay Storage Automatic Calculator)
by Maurice Wilkes at Cambridge University, it became possible to store programs inside
computers. Assembly language was used in this computer to solve differential equations;
through calculations, it discovered a 79 digits prime number which was the most
significant prime number. The Assembly language was essential because it is the first
low-level programming language, and its creation was credited to David Wheeler, who is
widely accepted in the IEEE Computer Society as the creator of the first "assembler."

(ENIAC-the first digital computer , source: getty images)


The first compiler was created in 1951 by Murray Hopper, who also discovered
the first "computer bug." This compiler paved the way for Auto code. To be precise, Auto
code was not a singular language, but it was a terminology to refer to a family of early
programming languages. The first was designed in Manchester by Alec Glenny, called
Auto code Manchester for Manchester Mark 1; this language is widely considered the
first proper high-level programming language.
Created in 1957, Fortran, which translates into Formula Translation, specializes in
processing mathematical calculations. It is so highly effective that we are still using it
today for mainframe computers; an exciting application of it was the benchmark program
for supercomputers. In 1958, Algol, or algorithmic language, was born; as the name
implies, it uses algorithms to carry out tasks efficiently. In later years, many modern
languages like PASCAL, C, C++, and Java used Algol as a basic and inspiration. Another
reason Algol was so influential was that it introduced code blocks limited by "begin" and
"end" delimiter. It was also the first to implement functions with lexical scoping.

(Fortran, the powerful mainframe computer’s language)


1959 was a fruitful year for programming as we saw the advent of two major
programming languages COBOL and Lisp. Murray Hopper once again contributed to the
world of programming with COBOL, which is an acronym for Common Business
Oriented Language. Hopper's ambition was to create a language that ran on all brands of
computers. It was used in ATMs, telephones, general business, finance, administrative
systems. Although it is an old language, it is still being used in mainframe computers
(primarily to maintain old programs).
On the other hand, Lisp is not a general-purpose language but a list processing
language. Designed at MIT university by John McCarthy, it was favored for artificial
intelligence at that time. Lisp is still being used today to develop Artificial intelligence by
many people instead of Python or Ruby.
Developed by John G. Kemeny and Thomas E. Kurtz in 1964 at Dartmouth
College, BASIC, or Beginner's All-purpose Symbolic Instruction Code, was designed to
create an easily approachable language for general computer users without a solid
knowledge of math or computer understanding. This language was altered by Bill Gate
and Paul Allen, which later be sold as the first product made by Microsoft.
Pascal's development was launched by Niklaus Wirth in 1968 and was
implemented in 1970. Mainly focusing on educational purposes, this programming
language introduced easy syntaxes and incredible utility. Therefore, Pascal was widely
accepted as a perfect fit for beginners. As a result of Pasca's straightforward processes,
Apple used it for software development during the company's early years.

(An old MAC GUI running PASCAL on its screen


source: https://macgui.com/news/article.php?t=477)
In 1972, we saw the creation of three languages that played essential roles in
shaping today's programming landscape: Smalltalk, C, and SQL. Smalltalk was created
by Alan Kay, Dan Ingalls, and Adele Goldberg for the purpose of creating a flexible
language that helped programmers alter the code on the fly. Smalltalk played a significant
role because it introduced many aspects commonly seen in modern-day easy-to-learn
programming languages like Python, Ruby, and Java. C was also a significant player in
the programming language scene; it was a powerful high-level language; what made it
especially peculiar is that although it was a high-level language, it had many features of
low-level languages. Designed for the Unix system, C can run on multiple Operating
Systems, which was inherited by later languages. Donald D. Chamberlin and Raymond F.
Boyce at IBM developed SQL to monitor and manipulate databases on computers.
Nowadays, many businesses still use SQL. When paired with Python, SQL is an
incredible tool for data visualization in Data science.
In 1978, MATLAB was developed by Cleve Mole. MATLAB stands for matrix
laboratory; its function is what its name said it to be. Scientists of all fields widely use
MATLAB because of its user-friendly interface, which specializes in math equations,
two-dimensional and three-dimensional graphs.

(A three-dimensional graph created with MATLAB,


source: https://www.mathworks.com/help/matlab/visualize/creating-3-d-plots.html)
C++ and Objective-C are both deviations of the original C language, created in
1983. Bjarne Stroustrup developed C++ with the aim of creating a better C with added
features such as templates, classes, and virtual tasks. Since then, C++ has been regarded
by many as one of the best high-performance languages; with the 2003 re-edition, it fixed
many errors from earlier versions, making it an all-around better programming language.
Objective-C was created by Tom Love and Brad Cox exclusively for macOS and IOS,
the first step taken by Apple to create a closed ecosystem like what it is today.
In 1991, Python was created by Guido Van Rossum as a University project. It was
designed to use many programming styles. It is a high-level language with readable easy-
to-learn syntax, and because of this, it is a beginner-friendly language; people used it a lot
in the past. However, it has lost its popularity over the years, as people have preferred
more powerful languages for better processing capability. In the same year, Microsoft
created Visual Basic, which featured drag-and-drop features for programming. Both
Visual Basic and Python are aimed at beginners who have no experience in
programming, while Python has a more traditional approach; Visual Basic allows its
users to select and alter large blocks of code with ease. 2 years later, Yukihiro Matsumoto
developed Ruby. Inspired by many languages before it, Ruby is a decent general-purpose
language, yet it is commonly used for web development. In the beginning, it had an even
worse run time than Python, and now it has the same run time as other general-purpose
languages. Companies that use Ruby are Hulu, Groupon, and Twitter.

(Python’s extreme versatility in general-purpose programming is widely loved ,


source:https://hocvienagile.com)
1995 marked the creation of Java, JavaScript, and PHP. At the time, interactive
television was gaining popularity among people as the technology of the future. Because
of this, James Gosling of Sun Microsystems created Java. Initially used for cable
television's data transmission, Java was later enhanced for the World Wide Web. Java is
now found everywhere, from websites to android apps and even enterprise applications.
JavaScript, although it shares the "Java" part with Java, it is an entirely different
language. Developed by Brendan Eich in that year, JavaScript allows users to enjoy
responsive web design; it was widely used to create webpages, browsers, widgets, PDF
documents, and even use algorithms and data structures for websites. The last language
of the three, PHP or Personal Home Page, is a Hypertext Processor. It is created for
personal usage like its name inferred; it is used to build and update websites for
businesses and individuals. Its prevalence is not as high as when it was first introduced,
but big tech companies still use it, namely WordPress, Facebook, and many more.

(Fundamental aspects of a modern website, source: http://alihafezi.com/)


In the year 2000, the first year of the 21st century, Microsoft launched C#,
combining the power of C++ with the approachability of Visual Basic. C # was originally
named C++++ as Microsoft wanted to create a superior version of C++ for their systems.
They were successful as today, most Microsoft's product uses C#, and C# primary usage
is for desktop applications.
When 2003 came around, Scala and Groovy were both developed. Martin Obersky
created Scala to combine mathematics with object-oriented programming. Its focus was
being concise while being functional, covering many shortcomings of the object-oriented
programming language Java. Groovy, created by Bob McWhirter and James Strachan as
an improvement of Java, though not as popular as other languages, was favored by some
developers for its simplicity and directness.
In 2009, we saw the emergence of Go or Golang. Developed by the tech giant
Google, this language was designed to fix problems inside Google's immense ecosystem.
Its modern and easy-to-use structure gives it an edge when navigating Google's
comprehensive system. Because of this, Go is used by many other corporations to boost
productivity. As for syntax, it is like C with the addition of memory safety, garbage
collection, and much more.
Starting in the 2010s, Rust, which Graydon Hoare designed at Mozilla, supports
large-scale concurrency and system safety. Centralizing around memory safety, Rust does
not permit null or dangling pointers, which can be troublesome during programming.
Rust also discarded many languages' automated garbage disposal functions and favored a
more deterministic way of programming.
Dart, released in 2011 by Google, was intended to write applications that run on
multiple platforms with syntax similar to Java and Google. It even has a java converter;
therefore, it can run on popular websites. As for mobile applications development, Dart's
flutter framework (which was also written by google) is widely endorsed. Another
language released this year that specializes in Android applications development is
Kotlin. Kotlin and Java are described as intertwined since Kotlin emphasizes on
JVM(Java Virtual Machine), and it can compile Java's code without worrying about the
operating devices. In addition, Kotlin also relies on Java's standard libraries.
In 2012, TypeScript was released by Anders Heijberg. It incorporates features
from C#, Java, and JavaScript. Built on the foundation of JavaScript, all JavaScript file is
also TypeScript file. Moreover, it covers all of JavaScript's issues. Since its launch,
TypeScript has had many updates; typescript 4.0, released on August 20th, 2020, is its
latest version. In the same year, Julia was introduced. Julia uses a just in-time-compiler
which compiles all Julia code to machine code before executing it. Julia is extensively
used in the field of scientific programming as it focuses on math like MATLAB and
features parametric polymorphism, multiple dispatch paradigm, parallel and distributed
computing, eager evaluation, and much more. Julia is extremely useful for bankers as it is
used by the Federal Reserve Bank of New York to simulate the United States' economy,
which is ten times faster than MATLAB.
Apple's ambition of creating a closed ecosystem was finally realized in 2014, with
the birth of the Swift programming language. However, it did not do a complete swap
from objective-C to Swift but integrate Objective-C, C, and Swift in the same system,
with Swift being the primary language being used. Apple is gradually shifting toward
Swift and is encouraging Swift usage among coders because of Swift's easy syntax and
Dynamic semantics.
The outburst of cloud storage led to the creation of Ballerina in 2017; initially
provided by WSO2, Ballerina is an open-source language with many of its features
focusing on cloud-native developments.
Since then, the programming landscape has not had significant changes aside from
old languages getting updates like C++17, C18, and Fortran 2018. In the 2020 Stack
Overflow Developer Survey, the five most prevalent languages are JavaScript,
HTML/CSS, SQL, Python, Java. These languages all have the same similarity of being
easy-to-use. It promises a future where programming is widely approachable by everyone
in the world. However, older high-performance languages still hold their ground, with C,
C#, C++ appeared in the top 10 most used languages. Assembly remains the most
popular low-level language. Although Julia has the lowest user base, it has a promising
future. It provides understandable code and calculations speed as fast as C++ and C. Its
implementation in machine learning will be a valuable tool for Artificial Intelligence in
the future. Another prediction of the future is the birth of many more cloud-native
developing languages like Ballerina. Big enterprises such as Amazon and Microsoft will
look for cloud developers in the near future.

(Stack overflow’s 2020 Developer’s survey,


source: https://insights.stackoverflow.com/survey/2020#technology-programming-
scripting-and-markup-languages-professional-developers)
IBM's quantum computer also opens a new horizon for programming. As soon as
quantum computers are commercialized, it will need its own programming language
since how it works is different from traditional computers. Programming languages for
blockchain will also be prevalent because of the risk coming from the quantum
computer's immense decryption capability. Another trend of programming languages is
for them to become closer to our human's natural language. At some point, we will be
able to program computers with voice commands.

(IBM’s quantum computer,


source: https://www.engadget.com/ibm-quantum-computing-speedup-050134678.html)
Programming languages have made a long way since their first appeared under the
form of punched card to software in our computers. However, the horizon for
programming is endless with new programming languages coming out every year, and
the market's needs constantly shifting is a programmer's duty to understand this and
improve ones' knowledge continuously.

Bibliography:
Kathleen Both: assembling early computers while inventing assembly

https://hackaday.com/2018/08/21/kathleen-booth-assembling-early-computers-while-inventing-assembly/

Babbage engine

https://www.computerhistory.org/babbage/engines/

First programming language use by Microsoft and apple

https://www.learnacademy.org/blog/first-programming-language-use-microsoft-apple/

Wiki sources:

https://en.wikipedia.org/wiki/Assembly_language

https://en.wikipedia.org/wiki/Autocode

2020 Stack overflow survey:

https://insights.stackoverflow.com/survey/2020#technology-programming-scripting-and-markup-languages-
professional-developers

A brief history of programming languages:

https://www.computersciencedegreehub.com/brief-history-of-programming-languages/?
fbclid=IwAR3_oR337_PyNScDPXYmGYCIWaIlpD_a366EwMJPr1MaEXtlRVsj1buh7Sg

visual-foxpro.

https://riptutorial.com/Download/visual-foxpro.pdf

A brief history of programming languages:

https://www.youtube.com/watch?v=mhpslN-OD_o

Applications of Java:

https://techvidvan.com/tutorials/applications-of-java/

-A brief history of programming languages 2010s:

https://www.youtube.com/watch?v=32VEaKuBge0

-A history of programming languages by Andrew D. Ferguson:


https://cs.brown.edu/~adf/programming_languages.html

-Book: Encyclopedia of Computer Science and Technology:

https://books.google.com.vn/books?
id=lTZluAAACAAJ&dq=Encyclopedia+of+Computer+Science+and+Technology&hl=vi&sa=X&redir_esc=y

You might also like