자바스크립트, 루비, 파이썬 등등... 동적 타입 언어들이 좃같은 이유?

그냥 간단한 스크립트 작성하는 정도면 타입을 신경쓸 필요가 없다. 그런데 본격적으로 프로젝트를 만들고자 하면 사정이 달라진다. 라이브러리를 예로 들면 한 번 만들고 나면 막 바꿀 수 없고 일정한 호환성이 필요하다. 동적 타입으로 개발하더라도 호환성을 위해서는 결국 반환 타입이 일정할 필요가 있고 결국 이걸 다 문서화해서 관리해야 한다. 타입을 코드에만 직접 안 적을 뿐이지 주석에 무슨 타입이 반환되는지 다 적거나 최소한 추측할 수 있게 만들어야 한다는 거다. 다양한 타입이 반환될 수 있으면 그걸 다 명시해야 한다.


반면 정적 타입 언어는 그냥 처음부터 코드에 타입을 박아 넣으므로 문서를 따로 관리할 필요가 없다. 문서화를 해도 타입이 아니라 동작에 초점을 두는데 이조차도 많은 경우는 그냥 타입에서 유추할 수가 있다.

결론 : 타입을 명시하지 않는다는 점은 개발 스케일이 커질수록 오히려 개발에 오버헤드가 됨