반면에 우리 모두가 세상에 공짜 점심은 없다는 사실을 잘 알고 있다. 여기서 문제는 뭘까? 사용하면 안 될 때는 언제일까? 문자열을 바이트로 분해하기 위해 문자열 구문 분석을 위한 약간의 오버헤드가 발생한다. 일부 코드는 문자열을 검토하여 IP 주소가 IPv4 인지, IPv6 주소인지 확인하고 그에 따라 최적화된 코드를 사용하여 구문을 분석한다. 구문 분석 후 문자열의 유효성을 검사하기 때문에 나머지 코드에서는 유효성 검사를 다시 하지 않아도 된다. 이러한 장점이 구문 분석 때문에 발생하는 약간의 오버헤드를 상쇄한다. 처음부터 올바른 타입을 사용하면 전달된 인수가 올바른 타입인지 확인하는 데 드는 오버헤드를 피할 수 있다. 마지막으로 올바른 타입을 선호하는 것은 값 타입이 유용한 경우에도 마찬가지로 적용된다. 값 타입의 이점에 대해서는 다음 절에서 자세히 알아보자.
성능과 확장성은 단일 차원의 개념이 아니다. 7장에서 다시 설명하겠지만, 예를 들어 데이터 스토리지를 최적화하면 실제로 성능이 저하될 수 있다. 그러나 어떤 작업에 특정 유형을 사용하고 데이터에 특화된 유형을 사용하는 것은 대부분 아주 쉬운 일이다.