Cloud & Platform
프로그래밍 언어 계보 정리
프로그래밍 언어 계보 정리 학습 내용을 정리한 백필 노트입니다.
이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.
1. 초기 기원 (1940~1950년대)
- 어셈블리어(Assembly, 1940s)
- 기계어(Machine Code)를 사람이 읽기 쉽게 기호로 표현.
- 특정 하드웨어에 종속적.
- 포트란(Fortran, 1957)
- 최초의 고급언어(HLL, High-Level Language).
- 수학, 과학 계산 중심.
- 리습(Lisp, 1958)
- 인공지능(AI) 연구에 사용.
- 함수형 프로그래밍의 시초.
- 코볼(COBOL, 1959)
- 기업용 데이터 처리 중심.
- 영어 문장과 유사한 문법.
2. 절차적 프로그래밍의 발전 (1960~1970년대)
- 알골(Algol, 1960)
- 구조적 프로그래밍과 블록 구조 개념 도입.
- 후대 언어(C, Pascal, Java)에 큰 영향.
- 베이직(BASIC, 1964)
- 교육용으로 설계, 쉬운 문법.
- PC 보급과 함께 대중화.
- 파스칼(Pascal, 1970)
- 구조적 프로그래밍 교육에 최적화.
- C 언어(1972)
- 운영체제(특히 Unix) 개발용.
- 하드웨어 제어와 고급 문법을 절충.
- 이후 C++, Java, C#, Go 등에 지대한 영향.
3. 객체지향 언어의 등장 (1980년대)
- 스몰토크(Smalltalk, 1980)
- 순수 객체지향 언어.
- GUI와 이벤트 기반 프로그래밍에 영향.
- C++ (1983)
- C에 객체지향 개념(클래스, 상속, 다형성)을 추가.
- 게임, 시스템, 고성능 애플리케이션 개발에 핵심.
- 에이다(Ada, 1983)
- 미국 국방부 주도로 개발.
- 대규모 시스템 안정성과 실시간 제어에 초점.
4. 스크립트 및 동적 언어의 확산 (1990년대)
- 파이썬(Python, 1991)
- 가독성, 간결성 중시.
- 데이터 과학, 웹, AI, 자동화 등 다방면 활용.
- 자바(Java, 1995)
- “한 번 작성하면 어디서나 실행(Write Once, Run Anywhere)”.
- JVM 기반, 웹/모바일/엔터프라이즈 전반에 확산.
- PHP (1995)
- 웹 개발 전용으로 시작, 서버사이드 스크립팅 언어.
- 자바스크립트(JavaScript, 1995)
- 브라우저에서 실행되는 동적 언어.
- 웹 프론트엔드 혁신의 핵심.
- 루비(Ruby, 1995)
- 순수 객체지향, “개발자 행복” 강조.
- Ruby on Rails 프레임워크로 웹 개발 인기.
5. 현대 언어의 다변화 (2000년대~현재)
- C# (2000)
- 마이크로소프트 .NET 플랫폼용.
- C++과 Java의 장점을 융합.
- 스칼라(Scala, 2004)
- 객체지향 + 함수형 통합.
- 빅데이터(스파크)에서 주로 활용.
- 고(Go, 2009)
- 구글 개발.
- 간결한 문법, 병렬 처리(Goroutines) 강점.
- 러스트(Rust, 2010)
- 메모리 안전성과 성능 모두 확보.
- 시스템 프로그래밍, 블록체인, 보안 분야에서 인기.
- 코틀린(Kotlin, 2011)
- JVM 기반, 안드로이드 공식 언어.
- 스위프트(Swift, 2014)
- 애플의 iOS/macOS 개발 언어.
- 안전성과 생산성 강조.
- 타입스크립트(TypeScript, 2012)
- 자바스크립트에 정적 타입 추가.
- 대규모 웹 애플리케이션에 필수로 자리잡음.
6. 계보 요약 (영향 관계)
- Fortran → Algol → C → C++ → Java → C#, Go, Rust
- Lisp → Scheme → JavaScript, Scala, Clojure
- Smalltalk → Objective-C, Ruby, Python, Swift
- COBOL → 기업용 언어들(SQL 등)에 간접 영향
👉 정리하면, 프로그래밍 언어는
- 초기: 계산 중심(Fortran, Lisp, COBOL)
- 절차적 발전기: 구조적 프로그래밍(C, Pascal, Algol)
- 객체지향: 재사용성과 확장성(Smalltalk, C++, Java)
- 인터넷/스크립트 확산기: 웹과 동적 언어(JavaScript, PHP, Python)
- 현대: 생산성+안전성+멀티패러다임(Rust, Go, Kotlin, TypeScript)