Overview
This lecture provides a chronological summary of major programming languages, highlighting their creators, key features, and historical significance from the 1800s to 2020.
Early Origins (Pre-1950)
- 1883: Ada Lovelace wrote the first algorithm for Babbage's Analytical Engine, recognized as the earliest programming language.
- 1949: Assembly language was created, closely tied to machine code, implemented on the EDSAC calculator.
The 1950s: Foundation Languages
- 1952: Autocode, a family of compiled languages, was first implemented for the Manchester Mark I.
- 1957: FORTRAN (Formula Translation), developed by IBM, was made for mathematical calculations.
- 1958: ALGOL (Algorithmic Language) introduced structured syntax, code blocks, and nested functions with scoping.
- 1959: COBOL (Common Business Oriented Language) created for business applications, still used in legacy systems.
- 1959: LISP (List Processing Language) introduced, focusing on linked lists and artificial intelligence.
1960s-1970s: Expanding Access and Structure
- 1964: BASIC (Beginner's All-purpose Symbolic Instruction Code) was designed for student accessibility.
- 1970: Pascal promoted structured programming and was widely used in education and early Apple software.
- 1972: Smalltalk introduced change-on-the-fly coding and influenced future languages.
- 1972: C, by Dennis Ritchie at Bell Labs, enabled portable UNIX systems and became highly influential.
- 1972: SQL (Structured Query Language) created for managing and querying databases.
- 1978: MATLAB (Matrix Laboratory) developed for advanced mathematical computations.
1980s: Object-Orientation and Scripting
- 1983: Objective-C combined C with messaging from Smalltalk, main Apple language until Swift.
- 1983: C++ extended C with object-oriented features for systems programming.
- 1987: Perl introduced for text editing, scripting, and system administration.
1990s: Web & Functional Programming
- 1990: Haskell (after Haskell Curry) introduced as a functional language, with type inference and lazy evaluation.
- 1991: Python emphasized readability and ease of use, popular in data science.
- 1991: Visual Basic enabled graphical programming via drag-and-drop.
- 1993: R was designed for statistics and data science.
- 1995: Java targeted “write once, run anywhere” and object-oriented design.
- 1995: PHP was created for web development and powers sites like WordPress.
- 1995: Ruby merged features from various languages for web development, with dynamic typing and garbage collection.
- 1995: JavaScript was designed to enhance web browser interactivity.
2000s–2010s: Modern Evolution
- 2000: C# (C-Sharp) by Microsoft combined C++ and Visual Basic features for the .NET framework.
- 2003: Scala integrated functional and object-oriented programming, improving on Java.
- 2003: Groovy made learning Java easier with concise syntax.
- 2009: Go (Golang) by Google focused on memory safety and simplicity, inspired by C.
- 2014: Swift replaced Objective-C for Apple development, prioritizing safety and user-friendliness.
Key Terms & Definitions
- Algorithm — A step-by-step procedure for calculations or problem-solving.
- Compiler — A tool that translates source code into machine code.
- High-level language — Programming language closer to human language than machine code.
- Object-oriented programming (OOP) — A paradigm based on objects and classes.
- Functional programming — A paradigm treating computation as function evaluation.
Action Items / Next Steps
- Review the major languages and their unique features.
- Research at least one language in depth (e.g., Python, Java, C++).
- Study the evolution of programming paradigms (procedural, OOP, functional).