배움과 지식2026년 3월 30일

프로그래밍 언어의 역사: FORTRAN부터 Python·Rust까지 완전 가이드

bynoa·6 분 읽기

IT 역사 전체를 알고 싶다면 → IT의 진화 역사

프로그래밍 언어는 지금 이 순간에도 새로운 것이 탄생하고 있다. GitHub에 등록된 언어는 500개를 넘으며, 현역으로 사용되는 것만도 수십 종에 달한다. 왜 이렇게 많은 언어가 존재하는가. 그것은 컴퓨터에 무엇을 시키고 싶은가라는 인간의 요구가 시대와 함께 계속 변해왔기 때문이다.

이 글에서는 1950년대 여명기부터 2020년대 AI 시대까지, 프로그래밍 언어의 진화를 시간 순으로 따라간다. 언어의 탄생에는 반드시 각자의 "이유"가 있다. 그 이유를 알면 현대의 기술 선택도 더 깊이 이해할 수 있게 된다.

목차

  1. 프로그래밍 언어는 왜 이렇게 많은 종류가 있는가
  2. 1950〜60년대:컴퓨터와 최초의 언어(FORTRAN・COBOL・LISP)
  3. 1970년대:C언어의 등장과 Unix의 탄생
  4. 1980년대:객체 지향의 대두(C++・Smalltalk)
  5. 1990년대:Web과 스크립트 언어의 폭발(Java・PHP・JavaScript・Python・Ruby)
  6. 2000년대:모던 언어의 부흥(C#・Scala・Haskell)
  7. 2010년대:새 세대의 대두(Go・Rust・TypeScript・Swift・Kotlin)
  8. 2020년대:AI 시대의 언어 트렌드

프로그래밍 언어는 왜 이렇게 많은 종류가 있는가

프로그래밍 언어는 "문제를 푸는 도구"다. 목수가 용도에 따라 끌・대패를 구분해 쓰듯, 엔지니어는 풀어야 할 문제에 따라 언어를 선택한다.

언어가 늘어나는 이유는 크게 세 가지다.

1. 컴퓨터의 용도가 넓어졌다 1950년대에는 수치 계산 전용이었던 컴퓨터가, 지금은 웹 서버・스마트폰・자동차・AI 칩에서 동작한다. 용도별로 최적의 언어가 요구되었다.

2. 기존 언어에 대한 '불만'이 새 언어를 낳았다 C는 PDP 어셈블리의 불만에서, C++는 C의 불만에서, Rust는 메모리 안전성에 대한 불만에서 탄생했다. 언어의 역사는 "선배에 대한 반성과 개선"의 역사이기도 하다.

3. 패러다임의 전환이 있었다 절차형→객체 지향→함수형→리액티브……프로그래밍의 사고방식이 바뀔 때마다, 그것을 구현하는 언어가 등장했다.

1950〜60년대:컴퓨터와 최초의 언어(FORTRAN・COBOL・LISP)

초기 컴퓨터는 프로그램을 기계어(0과 1의 나열)나 어셈블리 언어로 작성해야 했다. 전문 오퍼레이터가 스위치를 전환하며 동작시키는, 인간에게 극히 비효율적인 세계였다.

거기에 등장한 것이 고수준 언어라는 개념이다.

FORTRAN(1957년)

IBM의 존 배커스가 개발한 FORTRAN(FORmula TRANslation)은 세계 최초로 널리 보급된 고수준 언어다. 과학・공학 계산을 위해 설계되어, 수식을 그대로 코드로 쓸 수 있다는 것이 혁명적이었다. NASA의 우주 개발 계산에도 사용되었으며, 지금도 기상 시뮬레이션과 과학 계산 분야에서 현역이다.

COBOL(1959년)

그레이스 호퍼(훗날 미 해군 준장)가 중심이 되어 설계한 COBOL(COmmon Business-Oriented Language)은 금융・비즈니스 처리에 특화된 언어다. 영어에 가까운 구문이 특징이며, 지금도 은행의 핵심 시스템 다수가 COBOL로 동작하고 있다.

LISP(1958년)

존 매카시가 개발한 LISP(LISt Processing)은 수학적 "람다 계산"을 기반으로 한 함수형 언어의 선구자다. AI 연구 언어로 오래 사용되었으며, 함수를 "데이터로 다루는" 발상은 현대의 JavaScript나 Python에 계승되고 있다.

엔지니어에게 시사하는 것:'오래된 언어=나쁜 언어'가 아니다. COBOL과 FORTRAN이 지금도 살아있는 것은 그것이 "일을 해내기" 때문이다. 기술의 새로움과 문제에 대한 적합성은 별개의 이야기다.

1970년대:C언어의 등장과 Unix의 탄생

1970년대는 프로그래밍의 세계에 "기반"이 생겨난 시대다.

C언어(1972년)

벨 연구소의 데니스 리치가 개발한 C언어는 현대 프로그래밍의 초석이라 할 수 있다. Unix OS를 재작성하기 위해 만들어졌다는 배경이 있으며, 저수준 하드웨어 조작과 고수준 표현력을 양립한 최초의 언어다.

C언어의 설계 원칙은 지금도 살아있다. "프로그래머를 신뢰한다" "필요한 기능만 제공한다" "이식성을 중시한다"——이는 Rust에도 계승된 철학이다.

C언어에서 파생·영향받은 언어의 계보는 압도적이다. C++・Java・C#・JavaScript・PHP・Python・Go는 모두 어떤 형태로든 C의 영향 아래 있다.

Pascal・Prolog

같은 시기에 Pascal(니클라우스 비르트 설계)이 교육용 언어로 보급되고, 논리 프로그래밍의 Prolog도 등장했다. Prolog는 "지식을 기술해 추론시키는" 접근법으로 후의 AI 연구에 영향을 주었다.

엔지니어에게 시사하는 것:C를 배운 엔지니어는 메모리・포인터・스택과 힙의 개념을 체험할 수 있다. 현대의 고수준 언어가 "숨기고 있는" 것을 이해하는 것은 디버깅 능력과 퍼포먼스 사고의 기반이 된다.

1980년대:객체 지향의 대두(C++・Smalltalk)

소프트웨어의 규모가 커짐에 따라 코드를 "어떻게 정리할 것인가"가 문제가 되기 시작했다. 그 답이 **객체 지향 프로그래밍(OOP)**이다.

C++(1983년)

비야네 스트로우스트럽이 개발한 **C++**는 C에 OOP 개념(클래스・상속・다형성)을 추가한 언어다. 게임 엔진・브라우저・데이터베이스・임베디드 시스템에서 지금도 C++의 영역은 넓다.

Smalltalk(1972〜80년대에 보급)

앨런 케이 등이 제록스 연구소에서 개발한 Smalltalk는 "모든 것이 객체"라는 순수 OOP의 원형이다. GUI 프로그래밍의 개념도 Smalltalk에서 탄생했다. Ruby는 Smalltalk의 철학을 강하게 계승하고 있다.

Perl(1987년)

래리 월이 만든 Perl은 텍스트 처리에 강한 스크립트 언어로 보급되었다. CGI 스크립트(초기 웹 동적 콘텐츠)의 주력 언어로 웹의 여명기를 지탱했다.

엔지니어에게 시사하는 것:OOP는 "만능 해법"이 아니었다. 상속의 남용에 의한 복잡화나 과잉 설계 같은 문제가 후에 비판받았다. 설계 사상은 시대와 맥락 속에서 평가하는 것——이것은 기술 선택 전반에 해당하는 말이다.

1990년대:Web과 스크립트 언어의 폭발(Java・PHP・JavaScript・Python・Ruby)

1990년대는 인터넷의 폭발이 프로그래밍 언어의 지도를 바꿔놓은 시대다. World Wide Web의 등장(1991년)으로 "Web 위에서 동작하는 프로그램"에 대한 수요가 급등했다.

Java(1995년)

선 마이크로시스템즈의 제임스 고슬링이 개발한 Java의 캐치프레이즈는 「Write Once, Run Anywhere」. JVM(Java 가상 머신)위에서 동작하므로 OS를 가리지 않고 같은 코드를 실행할 수 있다. 엔터프라이즈 시스템・Android 앱의 기반으로 지금도 가장 널리 사용되는 언어 중 하나다.

JavaScript(1995년)

브렌던 아이크가 10일 만에 설계했다는 JavaScript는 처음에는 "웹 페이지에 약간의 움직임을 주는" 정도의 용도였다. 그것이 지금은 프론트엔드・백엔드(Node.js)・모바일(React Native)・데스크톱(Electron)까지 쓰이는 "어디에나 있는 언어"가 되었다.

PHP(1994년)

라스무스 러도프가 자신의 웹사이트 관리용으로 만든 PHP는 서버사이드 웹의 실용 언어로 급성장했다. WordPress의 보급과 함께, 세계 웹사이트의 약 40%가 PHP로 동작한다고도 알려져 있다.

Python(1991년)

귀도 반 로섬이 "읽기 쉬움"을 최우선으로 설계한 Python은 1990년대 등장 당시에는 교육용 용도가 주였다. 그러나 2000년대 이후, 과학 계산・기계 학습 라이브러리의 충실로 급격히 존재감을 높였다(후술).

Ruby(1995년)

일본인 **마츠모토 유키히로(통칭:Matz)**가 개발한 Ruby는 "프로그래머의 행복도"를 설계 지침으로 내세웠다. 웹 프레임워크 Ruby on Rails(데이비드 하이네마이어 한손 작, 2004년)의 등장으로 스타트업의 정번 언어가 되었다.

엔지니어에게 시사하는 것:JavaScript가 "10일 만에 설계되었다"고 자주 조롱받지만, 그렇기 때문에 그 후 30년간 방대한 사양 변경・개선이 이루어졌다. 완벽한 설계보다 계속 사용됨으로써 진화한다——언어의 생태계는 그런 것이다.

2000년대:모던 언어의 부흥(C#・Scala・Haskell)

2000년대는 언어 설계의 "성숙기"다. 그간 언어의 문제점을 정리하고, 더욱 표현력 높은 언어가 등장했다.

C#(2000년)

마이크로소프트의 아네르스 헤일스베르그가 설계한 **C#**은 Java의 대항마로 탄생했다. 게임 엔진 Unity의 주요 언어이기도 해 게임 개발자에게 널리 사용되고 있다. async/await 도입 등 언어 자체의 진화가 빠른 것으로도 알려져 있다.

Scala(2003년)

마틴 오더스키가 설계한 Scala는 Java 자산을 활용하면서 함수형 프로그래밍 개념을 도입했다. Twitter와 LinkedIn이 대규모 시스템에 채용해 주목받았다.

Haskell(1990년대〜2000년대에 보급)

순수 함수형 언어 Haskell은 "부작용 없는 프로그램"을 이론적으로 추구한 언어다. 주류 언어는 아니지만, Haskell의 개념(모나드・타입 클래스・지연 평가)은 후의 언어 설계에 다대한 영향을 주었다. Rust의 타입 시스템이나 Scala의 함수형 기능에 Haskell의 철학이 계승되고 있다.

엔지니어에게 시사하는 것:사용되지 않는 언어에도 배울 가치는 있다. Haskell이나 Prolog를 조금 다루는 것만으로 프로그래밍의 "다른 사고방식"이 보인다. 지식의 폭은 문제 해결의 선택지의 폭이다.

2010년대:새 세대의 대두(Go・Rust・TypeScript・Swift・Kotlin)

2010년대는 "현대의 문제에 맞춘 새 언어"가 잇따라 등장한 시대다. 클라우드・멀티코어・모바일・대규모 웹이라는 새로운 실행 환경이 언어 설계에 영향을 주었다.

Go(2009년〜2010년대에 보급)

구글의 롭 파이크, 로버트 그리스머, 켄 톰프슨이 설계한 Go는 "단순하고 빠른 서버사이드 언어"로 설계되었다. 고루틴에 의한 병행 처리의 다루기 쉬움이 특징이며, Kubernetes나 Docker 등 클라우드 인프라의 중요 툴이 Go로 작성되어 있다.

Rust(2010년〜)

모질라의 그레이돈 호어가 처음 설계한 Rust는 "메모리 안전하면서 C++에 필적하는 속도"라는 난제에 도전한 언어다. 소유권 시스템으로 가비지 컬렉터 없이 메모리 안전을 보증한다. Linux 커널 채용(2022년)은 획기적인 사건이었다. Stack Overflow 조사에서 "가장 사랑받는 언어"를 8년 연속으로 획득하고 있다.

TypeScript(2012년)

마이크로소프트의 아네르스 헤일스베르그(C# 설계자와 동일인물)가 개발한 TypeScript는 JavaScript에 정적 타입 시스템을 추가한 언어다. React・Vue 생태계와 함께 급속히 보급되었다.

Swift(2014년)・Kotlin(2011년)

Swift는 Apple의 크리스 래트너가 설계한 iOS/macOS 개발 언어로, Objective-C를 대체했다. Kotlin은 JetBrains가 개발한 JVM 언어로, Google이 공식 Android 개발 언어로 채용해 보급되었다. 둘 다 "모던하고 안전한 문법"을 의식해 설계되었다.

엔지니어에게 시사하는 것:Rust가 증명한 것은 "메모리 관리는 프로그래머냐, GC냐"라는 양자택일이 아니라는 것이다. "트레이드오프의 전제를 의심하는" 것이 언어 설계에서도 제품 설계에서도 혁신을 낳는다.

2020년대:AI 시대의 언어 트렌드

2020년대는 생성 AI의 등장이 프로그래밍의 풍경을 바꾸고 있는 시대다.

Python의 재평가

기계 학습・딥러닝 생태계(TensorFlow・PyTorch・scikit-learn・NumPy)가 Python 중심으로 구축되었기 때문에, Python의 지위는 절대적이 되었다. 생성 AI(ChatGPT・GitHub Copilot)의 등장으로 "코드를 작성하는 비용"이 낮아진 것은 Python 같은 "쓰기 쉬움 우선" 언어의 수요를 더욱 높였다.

Mojo(2023년)

AI의 선구자 크리스 래트너(LLVM과 Swift의 아버지)가 개발한 Mojo는 "Python 같은 AI 개발 경험으로 C의 속도를 내는" 것을 목표로 한 신언어다. AI 추론 최적화에 특화된 언어로 주목받고 있지만, 아직 발전 중이다.

LLM과 프로그래밍 언어의 관계

GitHub Copilot이나 Claude・ChatGPT 같은 LLM은 프로그래밍의 진입 장벽을 크게 낮추었다. 자연어로 코드를 생성할 수 있는 시대에, "어떤 언어를 선택할 것인가"보다 "어떻게 질문을 세울 것인가"가 중요해지고 있다.

한편, AI 생성 코드의 안전성・유지보수성을 담보하기 위해 타입 시스템이 강한 언어(TypeScript・Rust・Kotlin)에 대한 수요는 오히려 높아지고 있다.

엔지니어에게 시사하는 것:AI가 코드를 작성하는 시대에도, 언어의 설계 사상을 이해하는 엔지니어는 강하다. AI가 출력한 코드를 "왜 이렇게 썼는가"를 읽어내고 개선하는 힘은, 언어의 역사적 배경 이해에서 생겨난다.

AI 역사 전체가 궁금하다면: 인공지능의 역사 — 튜링부터 ChatGPT까지

자신의 시간의 가치를 계산하고 싶다면 → 급여 시계 / Salary Ticker