강의에 별다른 도입부가 없어 강의 소개페이지를 재구성하였습니다.
08년도 부터 클로저, 엘릭서, 스칼라와 같은 함수형 언어들이 생겨나고,
기존 언어에서는 관련 라이브러리들이 생겨나고 있다.
Java, Swift, Kotlin, JS 등에선 언어 자체에 LISP 혹은 FP가 도입되었다.
함수형프로그래밍은 거의 대부분의 언어에 적용이 되었다. 이는 더 이상 특정 언어에 한정된 특성이 아니다.
함수형 프로그래밍은 실질적인 가치가 있다.
이터러블 프로그래밍은 1) 문제를 작게 만들고 2) 조합성을 높인다.
이를 통해 생산성
, 오류율
, 유지보수
에 이점을 가질 수 있다.
ES6를 기점으로 언어 자체에서 이터러블 프로토콜을 특별히 강조하고 있다. (심볼
/ 이터러블
/ 이터레이터
/ 제너레이터
, Promise
/ async
/ await
)
언어 차원에서 지원되는 프로토콜이기에 조합성이 뛰어나다.
언어 차원에서의 에러 핸들링이 가능하다.
비동기 / 동시성 프로그래밍을 보다 안전하고, 쉽게 할 수 있다.
코드양을 최소화 할 수 있다.
i++
, if
, for
, break
, 상태 변경에 의존한 코드는 버그가 생기기 쉽다.
확장성, 유연성이 떨어진다.
코드스타일이 제각각이다.
생산성이 떨어진다.
i++
, if
, for
, break
를 거의 사용하지 않아 버그가 쉽게 안 생긴다.