클린 아키텍처를 읽으며 정리한 내용입니다.
구조적 프로그래밍보다 먼저 등장
함수 호출 스택 프레임을 힙으로 옮기면, 함수 호출이 반환된 이후에도 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있음을 발견
→ 함수: 클래스의 생성자, 지역 변수: 인스턴스 변수, 중첩 함수: 메서드
객체지향 프로그래밍 요약: 제어흐름의 간접적인 전환에 대해 규칙을 부과한다.
최근에서야 도입되기 시작했지만, 만들어지긴 가장 먼저 만들어졌다.
컴퓨터 프로그래밍 자체보다도 먼저 등장
근간이 되는 람다 계산법의 기초: 불변성
심볼의 값이 변경되지 않는다.
→ 함수형 언어에는 할당문이 전혀 없다.
→ 함수형 언어가 대부분 변수 값을 변경할 수 있는 방법을 제공하긴 하지만, 매우 까다롭다.
함수형 프로그래밍 요약: 함수형 프로그래밍은 할당문에 대해 규칙을 부과한다.
각 패러다임은 프로그래머에게서 권한을 박탈한다. 즉, 패러다임은 무엇을 해야할지보다 무엇을 해서는 안되는지를 말해준다.
구조적 프로그래밍 → goto문
객체지향 프로그래밍 → 함수 포인터
함수형 프로그래밍 → 할당문
각 패러다임이 이 세 가지를 앗아갔고, 더 가져갈 수 있는 것은 없다.
그러므로 프로그래밍 패러다임은 더이상 생기지 않을 것이다. 적어도 무언가를 앗아가는 패러다임은 이 세개뿐일 것이다.