History of Programming Languages – Overview and Examples

In Programming Languages by Rune

historyIn today’s world, every single thing is being run by programs. Yes, literally EVERY SINGLE THING. Since the revolution of computers, we’ve shifted to an age where most of our everyday tasks incorporate computer power and thus, various programs.

Take this article for example. You’re obviously reading it on some sort of computer, right? It can be a desktop, laptop, or your smartphone. The silicon chips powering these devices offer intensive computing power and with special design and programming, we now can enjoy the most sophisticated tasks of the world without breaking a sweat!

It’s all possible, thanks to the work of researchers and programmers who pushed the field of electronics forward. It’s their efforts that enabled us to read this web page, contact instantly with distant friends/relatives, and order your pizza without going outside and what not!

What is programming?

Whenever we talk about programming, we mean computer programming. In short, programming is the process of encoding an algorithm of performing a certain task(s) into a notation – a programming language.

Computers don’t understand our human talks. They only know how to work with bits – 1 or 0. By encoding the instruction into a programming language, we can translate the instruction into programs that the computer understands. Thus, we tell the computer to perform a certain task through programming.

At present, there are tons of powerful, specialized programming languages that excel at different workloads. At the early stage of programming, everything was WAY harder than today. Well, how about checking out the history of the computer programming languages?

Early days of programming

Old ComputerWhen computers started to emerge, the obvious necessity of telling the computer to do things also became clear. For that purpose, early programmers had to perform very difficult programming on the early machines. There were no high-level languages (C++, Java, Ruby, Python etc.) like today.

The first ever programmed machine was programmed using punch cards. Remember the first ever programmable machine? Developed by Herman Hollerith in 1889, the machine used punch cards, aka Hollerith cards. In 1906, with the development of a new plugboard for the machine, it could perform various tasks without being reconstructed.

The early computer programming required having an extensive knowledge of the underlying mechanism of the machine and it’s every single part. The programmers had to write code in binary and assembly language. Assembly is a low-level symbolic code that even the modern computers today use. For each microarchitecture, the required assembly code varies. This made things even harder as one program would simply not run on a different machine.

That made the task of programming really, really difficult and not something that anyone could pick up right away. In addition, there was no control over the data flow. Data could change on any part of the program. Debugging with an incorrect data could waste the entire effort of figuring out where the data might have changed.

The first programmer was Ada Lovelace, the daughter of Lord Byron who first programmed a computer. She translated an article about Charles Babbage’s proposed Analytic Engine. There, she noted an algorithm that’s regarded as the first ever computer program. We also got a modern programming language – Ada in respect to her contribution.

Modern programming

In today’s world, we got a handful of various high-level programming languages that offer easier coding to work with, better control over the program execution, debugging and others.

The first high-level programming languages were Fortran (Formula Translation) and COBOL (Common Business Oriented Language). Both of them targeted different fields. Fortran is used for general-purpose numeric computation and scientific computing and COBOL targets administration need in banking, insurance applications and government sectors etc.

At present, we have programming languages that offer different feature sets and flexibility with different scopes, for example, Java offers better cross-platform support and flexibility whereas C/C++ offers incredibly faster performance. We also got platform-specific languages like SQL, PHP, and HTML etc. for the web and database. C/C++ is also used extensively in tons of programs like games and the OS itself.

Let’s check out some of the most popular programming languages of today – their history, use case and impact on the developer community. On each language, we will display a code sample which sums together two variables.

Modern programming languages

FORTRAN – 1957

FortranIt’s one of the first high-level programming languages. FORTRAN was originally developed by IBM in the 1950s for use in engineering and scientific applications. FORTRAN stands for Formula Translation – translating a formula into a computer program for performing all the tasks with it.

FORTRAN is still used for multitude purposes like numerical weather prediction, computational fluid dynamics, crystallography, computational chemistry and so on. It’s also a quite popular language for benchmarking the world’s fastest supercomputers.

For example, the following FORTRAN 90 code sum together two numbers –

program sum
    REAL X,Y,Result
    X = 2
    Y= 3
    Result = X + Y
    PRINT *, "sum of x + y = ", Result
end program sum

There are several versions of FORTRAN since its debut back in the 1950s – FORTRAN IV, FORTRAN 77, Fortran 90 and Fortran 95. Yes, since Fortran 90, the name of the language abandoned the capitalization. It’s the oldest programming language that’s still in use today!

LISP – 1958

LispLisp (formerly LISP) is a family of programming languages that came up with unique full parenthesized prefix notation. It’s the second-oldest high-level programming language that’s still used in today’s modern world.

LISP stands for “LISt Processor”. The data structure of Lisp includes linked lists. The source code of the Lisp programs is made of lists. Using this feature, programmers can also create new syntax or even new domain-specific languages embedded in Lisp.

Lisp was originally developed by John McCarthy in 1958 while he was at the MIT. Since the starting, Lisp is always in a close connection with the AI research community. Lisp was also successfully implemented in the famous AI system SHRDLU.

This is an example of Lisp –

(let ((x 2)
      (y 3))
 (print (+ x y)))

In its course of life, Lisp became more and more developed. There are many derivatives of Lisp, also known as dialects, for example, Scheme, Dylan, Common Lisp, and Hy etc.

BASIC – 1964

BasicThis is yet another family of high-level, general-purpose programming languages with a great emphasis on ease of use. BASIC stands for Beginner’s All-purpose Symbolic Instruction Code.

BASIC first started its journey in 1964 by John G. Kemeny and Thomas E. Kurtz. The goal was enabling the students in fields other than science and mathematics. Moreover, almost all the computers required custom software. Yes, there were no pre-built utilities like now.

The next biggest event in the history of BASIC was the introduction of Microsoft’s Visual Basic. It brought a revolution in the industry. Visual Basic also comes up with the constructs from the original BASIC, for example, block-structured control statements, optional static typing, parameterized subroutines, and object-oriented constructs.

Here’s a nice little example of a BASIC program.

10 LET X = 2
20 LET Y = 3
30 PRINT X + Y

Visual Basic also comes up with a scripting part, just like JavaScript – VBScript. The code can also be embedded in web pages for performing various dynamic actions.

PASCAL – 1970

PascalPascal is an imperative, procedural programming language that’s designed to encourage good programming practices while using other structured programming and data structuring. It’s worth mentioning that a good programming habit can serve as a lifesaver in tons of situations.

Pascal was designed by Niklaus Wirth during 1968-69 and was published as a finalized, efficient and small programming language in 1970. Pascal followed the pattern of ALGOL 60. The work of Wirth was to improvise ALGOL as a part of the ALGOL X proposals. However, as his tweaks were not accepted, it led Niklaus Wirth to publish as a different language – Pascal.

Later on, Pascal got its object-oriented extensions – Object Pascal. Now, Object Pascal is the basis of the Delphi system for Windows. There’s another open-source, cross-platform solution named “Free Pascal”.

Here’s a sample code of Pascal –

program sum;
var x: integer = 2;
var y: integer = 3;
begin
    writeln(x + y);
end.

Pascal is mostly used for teaching programming techniques. Besides C and Python (and other languages like Java etc.), Pascal is one of the first languages that a new programmer learns.

C and C++ – 1972

CC is quite a powerful, general-purpose language that’s still used extensively in today’s modern computing! It’s a structured programming language having support for recursion and lexical variable scope.

Originally developed by Dennis Ritchie between 1969 and 1973 at Bell Labs, the first demonstration of the power of C was introduced by the UNIX operating system. As we know, UNIX is the current leader of all the awesome Linux systems we have today.

C also offers constructs for efficiently mapping to typical machine instructions and low-level access to memory. That’s why it’s used for building the core of many applications that formerly required assembly programming. For example, the Linux kernel is entirely programmed in C! Other operating systems and drivers also use C for the same purpose.

Since its debut in 1972, it got several improved versions over the course – ANSI C and ISO C (1989-1990), C99 (1999), C11 (2011) and C18 (2017-2018).

C++ can be called a superset of C. The programming in C++ is pretty similar with C. In addition, C++ supports object-oriented programming and extremely high performance, efficiency, and flexibility.

At first, C++ was developed as “C with Classes” name. The goal of Bjarne Stroustrup was to add object-oriented programming into C language.

Currently, C++ is also used in tons of situations, just like C. As coding in C++ is more efficient, it’s found its way into heavy workloads like games! Yes, games are created in C++.

Here’s a short code of C.

#include <stdio.h>
int main()
{
    int x = 2;
    int y = 3;
    int result = x + y;
    
    printf("Sum: %d", result);
   
    return 0; 
}

In the case of C++, an example would look like this –

#include <iostream>
 
using namespace std;
int main()
{
   int x = 2;
   int y = 3;
   int result;
 
   result = x + y;
   cout << result << endl;
   
   return 0;
}

Objective C – 1984

Objective CObjective C is based on the original C programming language with additional support of object-oriented programming. It was used extensively as the main programming language in Apple products like macOS and the iOS operating systems.

The early development of Objective C was complete in the early 1980s by Brad Cox and Tom Love. The first platform to integrate it was NeXT for its NeXTSTEP operating system. Well, NeXTSTEP served as the mother of both macOS and iOS.

Objective C is also compatible with all the popular C/C++ compilers like GCC or Clang, so it can be easily compiled for any platform. Here’s a short program using Objective C language.

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    int x= 2;
    int y= 3;
    int result = x+ y;
    NSLog(@"%i", result);
    return 0;
}

SQL – 1986

sqlSQL is a programming language that’s greatly used for database manipulation. SQL stands for Structured Query Language. It’s used for communicating with the database and performing various actions.

It’s a design-specific language that’s designed for managing data held in an RDBMS (Relational Database Management System) or stream processing in an RDSMS (Relational Data Stream Management System).

Originally based upon the relational algebra and tuple relational calculus, SQL comes up with many statement types, like a DQL (Data Query Language), a DCL (Data Control Language), DDL (Data Definition Language) and a DML (Data Manipulation Language).

The development of SQL started back in the early 1970s by Donald D. Chamberlin and Raymond F. Boyce at IBM. The first version was initially named SEQUEL (Structured English Query Language). SQL was first standardized in ANSI in 1986 and ISO in 1987. However, SQL is still not suitable for portability among different database without any adjustment.

Usually, SQL is used for querying data from a database. Like getting all the data from a Person table like this:

SELECT * FROM Person

But since we use the same example to sum together two numbers, I feel we need to apply it here as well:

GO
DECLARE @x INT;
DECLARE @y INT;
SET @x = 2;
SET @y = 3;

SELECT (@x + @y)
GO

However, it is rare to use SQL in this way.

Perl – 1987

perlPerl is a family of 2 high-level programming languages – Perl 5 and Perl 6. Perl is a general-purpose scripting language. Developed by Larry Wall in 1987, the language was used as a UNIX scripting language for making report processing easier. In the year 2000, Perl 5 got redesigned into Perl 6, eventually branching out as 2 separate languages.

Perl gathered features from the other existing languages including shell script (sh), C, AWK and sed. Often times, Perl is used as a sort of “glue” language that binds together systems and interfaces that were not specifically designed to interoperate.

That makes Perl a popular choice for system admins as short Perl programs can be run on a single command line and generate reports and perform other tasks.

Here goes a short Perl script example.

use strict;
my $x = 2;
my $y = 3;
my $result = $x + $y;
print $result;

Perl was originally called “Pearl”. However, Larry Wall wanted a more concise and favorable connotation. Hence, the name changed to Perl.

Python – 1991

pythonPython is one of the finest programming languages that’s still used extensively in numerous situations. It’s a very powerful, interpreted, general-purpose programming language that’s used as the primary programming language in many programming courses.

Python was originally developed by Guido van Rossum and released in 1991. The philosophy of Python focuses on code readability. The language offers a dynamic type system and auto memory management. There are also other major features included like object-oriented, imperative, procedural and functional facilities with an extensive standard library.

Let’s check out a short example of Python.

x = 2
y = 3
result = x + y
print(result)

The naming of the programming language was funny enough. It was not named after the largest snakes of the present age. Instead, the naming came from a TV show – Monty Python’s Flying Circus.

Ruby – 1995

rubyRuby is another interpreted, dynamic, reflective and object-oriented general-purpose programming language. In today’s world, Ruby is used extensively for all those awesome web applications and other functions. Ruby is extensively used with the help of Rails framework. Hence the name – Ruby on Rails. Popular platforms like GitHub, Hulu, and Shopify etc. use Ruby on Rails at their core.

This programming language was developed during the mid-1990s by Yukihiro “Matz” Matsumoto in Japan. The inspiration behind this language was from Ada, Lisp, Perl, Smalltalk, and Eiffel. Ruby also features multiple programming paradigms like functional, imperative and object-oriented.

According to the creator of Ruby, Yukihiro Matsumoto, his hope is to lead programmers to be more productive and enjoy the programming with Ruby.

The syntaxes of Ruby is quite easy to understand and implement. For example, here’s a code snippet –

x = 2
y = 3
result = x + y

printf("%d", result);

Quite simplistic, right? Fun fact – Yukihiro Matsumoto started his career as a C++ programmer before he created Ruby. According to him, Ruby also breaks the principle of “least surprise” in programming.

Java – 1995

javaIt’s another well-known, popular and extensively used programming language that offers tremendous feature sets for any developer. Java is a general-purpose programming language featuring paradigms like concurrent, object-oriented and class-based. It’s specially crafted for having the least possible dependencies as possible.

Java follows the principle “write once, run anywhere” (WORA) strictly. That aspect gives Java programs immense power of writing portable, cross-platform apps without worrying about the immense difference from platform to platform. For example, a Java program created on a Linux machine is bound to run on a Windows machine and perform the same tasks in the same manner!

Java programs are compiled into “universal bytecodes”. For executing the codes, the respective platform needs to have its respective JVM (Java Virtual Machine). The virtual machine will read the code and execute on the specific platform.

Java started its journey by James Gosling under Sun Microsystems in 1991. After the acquiring of Sun Microsystems in 1995, Oracle became the maintainer of the Java world.

Let’s check out this Java program.

public class MyClass {
    public static void main(String args[]) {
        int x = 2;
        int y = 3;
        int result = x+y;

        System.out.println(result);
    }
}

Did you know that even Android used Java as its programming language? Now, it shifted to Kotlin as the official programming language.

JavaScript – 1995

jsYou can often find JavaScript being named as JS. It’s a high-level, interpreted programming language that complies with the ECMAScript specification.

Alongside HTML and CSS, JavaScript shares the crown as being one of the core technologies that consist of the World Wide Web. With the help of JavaScript, it’s possible to enable user interaction with web pages. That’s why it’s a really essential part of any web application. In fact, the majority of the websites today use JavaScript. The implementation is so deep that every modern browser includes a dedicated JavaScript engine to execute it.

In the early competition days of web browsers back in the 1990s, JavaScript was first prototyped in 1995 by Brendan Eich. Now, we live in an age where no JavaScript, no “good”, “interactive” website.

For example, let’s check out the following code.

var x = 2;
var y = 3;
var result = x + y;
console.log(result);

JavaScript, at the start of its lifecycle, was named Mocha. Then, the name changed to LiveScript when Netscape Navigator 2.0 was released back in September 1995. Finally, it changed the name to JavaScript when Netscape Navigator 2.0 beta 3 was out in December that year.

PHP – 1995

phpPHP stands for Hypertext Preprocessor. It’s an extremely powerful scripting language powers today’s web. It’s a language for the server side that primarily works as a filter.

Using PHP, it can take input from a file or stream containing text and/or other PHP instructions and outputs them into another stream of data. Commonly, PHP prints the output as HTML. However, it can also be designed to provide output in other types like JSON, binary data or image/audio formats. In modern websites, PHP performs all the important actions like communicating with the database, user interaction and a number of other tasks.

The syntax of PHP resembles C in a lot of ways. Even different operations and other functions can be used just like C language. The development of PHP began in 1994 by Rasmus Lerdorf. The first version of PHP came out in 1995. Now, the latest version – PHP 7.3, came out at the end of 2018.

Let’s take a look at the following PHP code.

<?php  
$x=2;  
$y=3;  
$result=$x+$y;  
echo $result;  
?>

Seems like C, right? The PHP code is within the <?php ?> tag.

C# – 2000

CSharpC# (pronounced as c-sharp) is a part of the .NET initiative from Microsoft. C# is a multi-paradigm programming language that offers strong typing, functional, object-oriented (class-based), component-oriented programming disciplines. C# has a specific purpose. It’s designed for the Common Language Infrastructure.

The goal of C# is to be a simple, general-purpose, modern and object-oriented programming language. It also offers great portability with C and C++. Despite targeting to be economical and hardware-efficient, it doesn’t target to compete with either Assembly or C in terms of performance.

The development of C# started with the development of the .NET Framework. Anders Hejlsberg and his team started working with a new language called Cool – C-like Object Oriented Language. However, due to trademark conflict, Microsoft changed the name to C#. It came out as a complete language in June 2000 as a part of the .NET Framework.

Here’s an example code of C#.

using System;
					
public class Program
{
	public static void Main()
	{
		var x = 2;
		var y = 3;
		var result = x + y;
		
		Console.WriteLine(result);
	}
}

For running programs that are developed using C#, you need to have the .NET Framework runtime installed. According to Wikipedia, the name was inspired by C++. In the case of C programming languages, “++” means increment by 1. So, C++ is an increment of C.

In the case of C#, it would be an increment of C++. So, instead of being C++++, it became C#.

TypeScript – 2012

TypeScriptWe’ve already discussed JavaScript, right? TypeScript is an open-source superset of JavaScript that’s developed and maintained by Microsoft. The original motivation of TypeScript is to develop large applications easily. Using transcompile, TypeScript outputs as a JavaScript program.

TypeScript supports definition files that can contain the information of existing JavaScript libraries, just like C/C++. There are a number of 3rd-party header files available, like jQuery, D3.js and MongoDB etc. You can also develop programs in TypeScript using Node.js.

The language was first made public in 2012 (v0.8). The first, complete TypeScript v1.0 was released back in 2014. The only available IDE for TypeScript back then was Visual Studio only. Now, there are a number of IDEs supporting TypeScript, for example, Eclipse with the TypeScript plugin.

Let’s check out a sample code of TypeScript.

let x = 2;
let y = 3;
let result = x + y;

console.log(result);

Swift – 2014

swiftObjective C was the first programming language that Apple incorporated into their operating systems like iOS and macOS. Now, Apple has shifted towards Swift – a newer programming language that’s the official language for iOS, macOS, watchOS, z/OS and tvOS Linux.

Swift is a general-purpose, multi-paradigm and compiled programming language. It’s developed by Apple Inc. for their product lineup. The design of Swift allows it to work easily with Apple’s Cocoa and Cocoa Touch frameworks.

As Apple was originally focused on Objective C, Swift also incorporates a number of concepts from its predecessor – dynamic dispatch, late binding, extensible programming, and others. It’s also highly optimized for detecting software bugs easily.

Since its debut in 2014, Swift is already a part of the Xcode IDE. Swift is also available on Linux platform like Ubuntu. For publishing an app on the Apple Store, however, it’s mandatory to build the app using the Xcode Swift.

The latest version of Swift (on the time of publishing this article) is Swift 4.2.1, published in October 2018.

Let’s check out the following Swift example.

import Foundation 
let x = 2
let y = 3
let result = x + y
print(result)

The evolution of programming

From the beginning, programming has been evolving. At the start, we had to program in a way that’s easy for the computer to understand but difficult for humans. We’re now approaching a time where programming languages are offering more and more ease for the programmers to read, understand and code the programs without breaking a sweat.

In the future, programming is bound to become easier and easier with the improved programming languages and even becoming simply drag-n-drop! There will still be the necessity of traditional programming but with the help of advanced methods, the stress is bound to be reduced.

One day, maybe, we all can program our own apps without any programming at all!