비교적으로 패러다임이란 것은 언어와 무관하며 더 중요하다.
패러다임은 어떤 구조를 언제 쓸 지를 고민할 수 있게 해준다.
Structured Programming
- 첫번째로 적용된 패러다임이다.
- 마구잡이로 goto문을 쓰던 시절이 있었다고하는데 난잡한 코드가 되어 이를 해결하기 위해
- If, while, for 등의 제어문을 권장하는 패러다임이다.
- 이를 통해서 코드에 대해 직접적으로 if/while,for 등으로 분기 및 함수수준에서의 모듈화를 가능하도록 했다.
Object - Oriented Programming
- 함수호출 이후 오랫동안 힙이 된 것을 알고 거기서 착안
- 함수 생성자 > 클래스 / 로컬 변수 > 인스턴스 변수 > 중첩 함수 > 메소드
- 캡슐화, 상속, 추상화, 다형성가 특징이라 하지만 캡슐화와 상속은 이전의 컨셉에서도 가능했으며 단지 조금 쉽게 가능하게 해주었다는 것. 진짜 가장 큰 컨셉은 추상화와 다형성이라고 말함. (아직 개념에 대한 정리가 더 필요하다)
Functional Programming
- 프로그래밍 이전에 발견된 것 그러나 가장 최근에 반영되는 패러다임
- 특정 범위 내에 값에 대한 불변성을 보장하면서 할당문에 규칙에서 제한하도록 하는 것
- 이로 인해 값이 전역변수로 언제 값이 변하는 것을 알 수 없는 두려움에서부터 벗어난다.
이전 블로그 게시글
Conclusion
- 패러다임은 전체적으로 개발자에게 어떤 새로운 기능을 쥐어주기보단
- 새로운 규제들을 추가해서 무엇을 하지 말아야 할지 알려주는 제안이다.
- 저자는 현 패러다임에서 우리에게 더 가져갈 것이 없다고 말하며, 더 이상의 패러다임은 없을 것이라고 이야기한다.
- 패러다임은 앞으로의 아키텍쳐에서 3가지 모두 차용되어야한다고 한다.