리서치 뉴스
Lisp 가독성 논란: 인지과학적 관점에서 본 구문 분석
What makes Lisp difficult to read?
Hacker NewsLisp의 가독성 문제는 단순히 사용자의 익숙도 차이가 아닌, 인간의 인지과학적 처리 방식과 관련이 있다는 이론을 제시합니다.
세 줄 요약
- C 스타일 언어는 공백 배치나 구조가 게슈탈트 법칙(근접성 등)에 더 잘 맞아 시각적으로 토큰 그룹화가 용이하며, Lisp의 균일한 구문보다 읽기 쉽다는 분석입니다.
- 코드를 설계할 때는 문법적 정확성 외에도 인간의 작업 기억 용량이나 시각 처리 한계 같은 인지과학적 원리를 고려해야 함을 강조합니다.
- 다만, 제시된 가독성 이론은 스트룹 효과나 근접성의 법칙 등 인지 현상에 기반한 설계 원칙이며, 모든 상황에 객관적으로 적용되는 절대 기준은 아닐 수 있습니다.
Lisp 계열 언어는 괄호(parenthesis)를 많이 사용하는 문법으로 인해 가독성이 떨어진다는 평가를 받습니다. 이러한 낮은 가독성은 단순히 사용자의 익숙도 문제라기보다는, 인간의 인지과학적 처리 방식과 관련이 있다는 이론이 제시됩니다. 글쓴이는 Lisp의 표기법이 왜 파싱에 더 많은 노력을 요구하는지에 대한 자신의 이론을 설명하며, 시각적 인식 메커니즘을 분석 근거로 활용합니다.
C 스타일 언어는 문법적으로 다양한 형태의 표기법(예: 중위 표기법, 키워드 등)을 사용하는데, 이러한 변이가 가독성에 영향을 미칩니다. 특히 게슈탈트 심리학의 '근접성의 법칙'에 따르면, C-스타일 언어는 공백 배치나 구조가 이 법칙을 더 잘 따르는 경향이 있습니다. 반면 Lisp 스타일은 모든 함수와 인자가 동일한 간격으로 분리되어 있어 시각적 그룹화를 전달하는 데 어려움이 있다는 분석입니다.
또한, 괄호의 배치 거리는 가독성에 중요한 영향을 미칩니다. Lisp는 함수 이름과 여는 괄호 사이에 거리가 있어, C 스타일 표기법에 비해 닫는 괄호를 시각적으로 매칭하기 어렵게 만듭니다. 더 나아가, 중첩된 표현식을 읽을 때는 작업 기억(working memory)의 한계가 존재하며, 이로 인해 깊이 중첩된 구조를 이해하는 것이 어려워질 수 있습니다.