언어 평가 기준
왜 어떤 언어는 읽기 쉽고, 어떤 언어는 읽기 어려울까?
기준 넷
언어는 네 가지로 평가합니다
이 넷이 언어 평가 기준(language evaluation criteria)입니다. 이번 편은 첫째인 가독성부터 봅니다.
가독성 ① 단순성
같은 일에 방법이 넷
네 줄 모두 count를 1 늘립니다. 방법이 여럿이면 읽는 사람은 넷을 다 알아야 합니다. 기능이 적고 서로 겹치지 않아야 읽기 쉽습니다. 이것이 전반적 단순성(overall simplicity)입니다.
++는 1 늘린다는 기호이고, 여기서는 앞에 붙든 뒤에 붙든 같습니다. 방법이 여럿인 것을 기능 중복이라고 합니다.
가독성 ① 단순성
기호 하나에 뜻이 여럿
+ 같은 연산자 하나에 뜻을 여러 개 주는 것이 연산자 오버로딩(operator overloading)입니다. 지나치면 +를 볼 때마다 무슨 뜻인지 따져야 합니다.
예시입니다. 둘째 줄은 자바의 경우이고, 셋째 줄은 프로그래머가 +의 뜻을 새로 정한 경우입니다.
가독성 ② 직교성
적은 부품, 예외 없는 조합
칸 하나가 조합 하나입니다. 기본 타입 4개와 만드는 방법 2개만 알면 조합 8가지가 예외 없이 됩니다. 이런 성질이 직교성(orthogonality)입니다.
double은 float보다 정밀한 소수 타입입니다. 교재가 드는 예입니다.
직교성이 깨지면
예외는 외워야 합니다
C에서 함수는 구조체를 돌려줄 수 있지만 배열은 돌려줄 수 없습니다. 이런 예외가 많을수록 외울 것이 늘고, 읽기도 쓰기도 어려워집니다.
구조체(struct)는 여러 값을 한 묶음으로 만든 타입입니다. 교재가 드는 C의 예입니다.
다음 편