정적타입 vs 동적타입

용어

  • 동적 언어 (dynamic language) - 런타임에 데이터 타입을 결정하는 언어.
  • 정적 언어 (static language) - 컴파일 타입에 데이터 타입을 결정하는 언어.

정적 언어가 미래다

  • 프로토타이핑이 목적이라면 동적 언어의 생산성을 즐길 수 있다.
  • 하지만 프로덕션에서는?
    • 동적 언어 코드를 검증하기 위해서는 실행을 해봐야 한다.
    • 코드베이스가 커질수록 런타임에 문제를 찾기 어려워진다.
  • 정적 언어로 만든 코드베이스는 필연적으로 레거시가 된다.
  • 개발 환경에서의 intellisense가 정적 언어의 생산성을 훨씬 높일 수 있다.
  • 정적 언어의 코드 양이 많다는 건 이제 큰 문제가 아님. (타입추론)

정적 타이핑을 선택하는 동적 언어들

  • 자바스크립트는 타입스크립트, 플로우 등으로 사실상 동적 언어로서의 정체성을 잃어가고 있다.
  • 파이썬도 mypy 같은 정적 타입 체커가 있음.
  • 루비에 이어 얼랭도 정적 타입 지원을 시작함.

참고자료

이 문서를 인용한 문서