정적타입 vs 동적타입
용어
- 동적 언어 (dynamic language) - 런타임에 데이터 타입을 결정하는 언어.
- 정적 언어 (static language) - 컴파일 타입에 데이터 타입을 결정하는 언어.
정적 언어가 미래다
- 프로토타이핑이 목적이라면 동적 언어의 생산성을 즐길 수 있다.
- 하지만 프로덕션에서는?
- 동적 언어 코드를 검증하기 위해서는 실행을 해봐야 한다.
- 코드베이스가 커질수록 런타임에 문제를 찾기 어려워진다.
- 정적 언어로 만든 코드베이스는 필연적으로 레거시가 된다.
- 개발 환경에서의 intellisense가 정적 언어의 생산성을 훨씬 높일 수 있다.
- 정적 언어의 코드 양이 많다는 건 이제 큰 문제가 아님. (타입추론)
정적 타이핑을 선택하는 동적 언어들
- 자바스크립트는 타입스크립트, 플로우 등으로 사실상 동적 언어로서의 정체성을 잃어가고 있다.
- 파이썬도 mypy 같은 정적 타입 체커가 있음.
- 루비에 이어 얼랭도 정적 타입 지원을 시작함.
참고자료
- Jukka Lehtosalo, “4백만 줄의 파이썬 타이핑을 위한 여정”, 최경재 역, 2019.
- 강성훈, “<마비노기 듀얼> 서버, 동적 타입 언어에서 반 정적 타입 언어로의 변신”, NDC, 2016.
이 문서를 인용한 문서
- 프로그래밍 언어
- 커뮤니티 CS 논쟁
-
정적타입 vs 동적타입 참고.
-