2.3.1 타입에 강해지기
대부분의 프로그래밍 언어에는 타입이 있다. 베이직과 같은 가장 단순한 프로그래밍 언어도 문자열과 정수 타입을 가지고 있다. 이와 유사한 언어 중 일부는 심지어 실수를 위한 타입도 가지고 있다. Tcl, REXX, Forth 등과 같이 타입리스(typeless)라고 불리는 몇 가지 언어가 있다. 이러한 언어들은 일반적으로 문자열이나 정수와 같은 단일 타입에서만 동작한다. 타입을 염두에 둘 필요가 없기 때문에 프로그래밍하는 것은 편할지 몰라도, 이렇게 작성된 프로그램은 느리며 버그가 쉽게 발생한다.
타입은 기본적으로 코드의 정확도를 무료로 검사하기 때문에 기본 타입 시스템을 이해하는 것은 생산적인 프로그래머가 되는 데 큰 도움이 된다. 타입을 구현하는 방법은 프로그래밍 언어가 인터프리터 방식인지 혹은 컴파일 방식인지와 밀접하게 관련되어 있다.
• 파이썬이나 자바스크립트와 같은 인터프리터 방식의 프로그래밍 언어를 사용하면 컴파일 단계 없이 즉시 텍스트 파일의 코드를 실행할 수 있다. 이러한 특성으로 인해 변수가 유연한 타입을 갖는 경향이 있다. 즉, 이전에 정수였던 변수에 문자열을 할당할 수 있고, 심지어는 문자열과 숫자를 함께 추가할 수도 있다. 이러한 언어는 타입을 구현하는 방법 때문에 일반적으로 동적 타입 언어라고 불린다. 인터프리터 언어를 사용하면 타입을 따로 선언하지 않아도 되므로 코드를 훨씬 빨리 작성할 수 있다.