First, let us have a look at the various programming languages and their developers and then proceed to the history of programming languages and discuss the types of programming languages.
# | Language | Developer |
---|---|---|
1. | Fortran | John Backus, IBM (1957) |
2. | Pascal | Niklaus Wirth (1970) |
3. | SQL | Donald D. Chamberlin, Raymond F. Boyce (1970) |
4. | C | Dennis M. Ritchie (1972) |
5. | Objective-C | Brad Cox, Tom Love (1980s) |
6. | MATLAB | MathWorks (1984) |
7. | C++ | Bjarne Stroustrup (1985) |
8. | Perl | Larry Wall (1987) |
9. | Python | Guido van Rossum (1991) |
10. | R | Ross Ihaka and Robert Gentleman (1993) |
11. | PHP | Rasmus Lerdorf (1993) |
12. | Javascript | Brendan Eich, Netscape (1995) |
13. | Ruby | Yukihiro Matsumoto (1993) |
14. | Java | James Gosling, Sun Microsystems (1995) |
15. | C Sharp | Anders Hejlsberg, Microsoft (2000) |
16. | Scala | Martin Odersky (2003) |
17. | Go (Golang) | Google (Robert Griesemer, Rob Pike, and Ken Thompson) (2007) |
18. | Rust | Mozilla (Graydon Hoare, 2011) |
19. | Kotlin | JetBrains (2011) |
20. | TypeScript | Microsoft (2012) |
21. | Swift | Apple Inc.(2014) |
The history of programming languages is a fascinating journey that spans several decades and reflects the evolution of computing technology and human creativity. From the early days of machine language to the sophisticated high-level languages we have today, each step in the development of programming languages has played a crucial role in shaping the digital world we live in.
The story begins in the 1940s, when the first computers programmed using machine language, consisting of binary instructions directly understood by the hardware. However, programming in machine language was tedious, error-prone, and impractical for complex tasks.
Later, in the 1950s, assembly languages were introduced to make programming somewhat more manageable. Assembly languages use mnemonic codes to represent machine instructions, making them more human-readable and easier to write than machine language. Nevertheless, programming in assembly remained challenging, especially for large-scale projects.
The breakthrough came in the late 1950s with the development of the first high-level programming language, Fortran (Formula Translation). Fortran, created by IBM, allowed programmers to write mathematical and scientific calculations using more English-like statements.
In the successive decades, more high-level languages emerged, including COBOL (Common Business-Oriented Language) and Lisp (List Processing).
Structured programming languages like Pascal and C followed soon after. Structured programming focused on breaking down complex programs into smaller, manageable parts through the use of control structures such as loops and conditionals.
The 1980s marked the era of object-oriented programming (OOP) languages. Smalltalk, created at Xerox PARC, is considered the first pure object-oriented language, while C++ expanded on C's features, introducing classes and objects. In the 1990s, Java emerged as a versatile, platform-independent language, making it widely used for web development and enterprise applications.
With the turn of the century, scripting languages like Python and JavaScript became popular for their ease of use and flexibility.
Today, we have a vast array of programming languages, each optimized for specific tasks and domains. Ruby, Swift, Go, and Rust are among the modern languages that have gained significant attention and usage. Additionally, domain-specific languages (DSLs) and domain-specific libraries have emerged to address specific needs in specialized fields.
Machine language is the lowest level of computer language and consists of binary code that directly corresponds to the instructions executed by a computer's central processing unit (CPU). It is hardware-specific and very difficult for humans to read and write directly. Machine language is essentially the language of the computer and humans communicate with it in its own language.
Assembly language is the next higher level of a computer language. It uses mnemonics, a term, symbol etc., to represent instructions to machine. It provides a more human-readable format than machine language, as each mnemonic corresponds to a specific machine language instruction. Assembly language programs must be translated into machine code through an assembler.
High-level languages are more abstract and easier for humans to read and write than assembly or machine language. They use statements which are grammatically better than low-level languages to create programs. High-level languages are designed to be portable, meaning they can run on different hardware platforms without modification. To execute, high-level language programs need to be translated into machine code by a compiler or an interpreter.