프로그래밍 패러다임
1938년, 앨런 튜링(Alan Turing)은 지금 우리가 컴퓨터 프로그래밍이라고 부르는 분야의 토대를 쌓았다.
튜링은 프로그래밍이 가능한 머신을 최초로 상상한 사람은 아니었지만, 프로그램을 단순히 데이터라고 이해한 최초의 사람이었다.
구조적 프로그래밍
구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과한다.
객체지향 프로그래밍
객체 지향 프로그래밍은 제어흐름의 간접적인 전환에 대해 규칙을 부과한다.
함수형 프로그래밍
1958년 존 매카시(John McCathy)가 만든 LISP 언어의 근간이 되는 개념이 바로 이 람다 계산법이다. 람다 계산법의 기초가 되는 개념은 불변성으로, 심볼의 값이 변경되지 않는다는 개념이다.
함수형 프로그래밍은 할당문에 대해 규칙을 부과한다.
생각할거리
각 패러다임은 프로그래머에게서 권한을 박탈한다. 어느 패러다임도 새로운 권한을 부여하지 않는다.
각 패러다임은 부정적인 의도를 가지는 일종의 추가적인 규칙을 부과한다.
패러다임은 무엇을 해야 할지를 말하기보다는 무엇을 해서는 안 되는지를 말해준다.
예를들면, 세 가지 패러다임 감각은 우리에게서 goto문, 함수 포인터, 할당문을 앗아간다. 우리에게서 가져갈 수 있는게 더 남아 있는가?
아마 없을 것이다. 따라서 프로그래밍 패러다임은 앞으로도 딱 세 가지밖에 없을 것이다.
1958년부터 1968년에 걸친 10년 동안 모두 만들어졌다는 사실이고 그 이후로 수십 년이 지났지만, 새롭게 등장한 패러다임은 전혀 없다.
이러한 패러다임으로 얻을 수 있는 교훈은 아키텍처와 관계가 있다.
함수형 프로그래밍을 이용하여 데이터의 위치와 접근 방법에 대해 규칙을 부과한다. 우리는 모듈 기반 알고리즘으로 구조적 프로그래밍을 사용한다.