brunch

You can make anything
by writing

C.S.Lewis

by 쑹이씨 Nov 25. 2015

프로그래밍 언어의 표현력

프로그래밍 언어의 표현력과 간결함과 숙달에 걸리는 시간은 비례한다.
이게 무슨 말이냐면, 
표현력이 좋다는 것은 긴 코드를 함축할 수 있다는 것이고, 
간결하다는 것은 코드가 함축된다는 것이고, 
숙달에 걸리는 시간이 길다는 것은 함축된 표현이 많다는 것이다.
그래서 펄 리스프 하스켈 등은 숙달되는데 자바, 파이썬 등에 비해 많은 시간이 필요하다.

얼마 전에 페이스북에 올렸던 글이다.


흔히 프로그래밍 언어 입문 책의 도입부에  "표현력"이라는 말이 있는 경우가 있다.

표현력이 좋다 나쁘다라는 개념은 왠지 우리에게 생소하다. 생산성이라면 모를까..

표현력은 좋은 말로는 다양한 경우를 표현하는 키워드 또는 문법이 많다는 것이고,

나쁜 말로는 외울게 많다는 것이다.


표현력이 그럭저럭 한 파이썬의 경우를 보자.

if x == 1:
    return None

표현력 좋다는 펄의 경우를 보자. 위의 경우를 두 가지로 표현할 수 있다.

if ( $x == 1 ){
    return undef;
}
return undef if ( $x == 1 );

뭐 세련된 예는 아니지만 대충 이런 의미다.

2번째 if는 특수한 경우에만 쓰는 거지만 코드가 간략해진다.


표현력이 좋으면 뭐다? 외울게 많다.

외울게 많으면 뭐다? 코드가 간략해진다.

코드가 간략하면 뭐다? 한 눈에 보이는 로직이 많다.

한 눈에 보이는 로직이 많으면, 이상한 흐름이 잘 보인다.

이상한 흐름이 잘 보이면, 당연히 버그가 줄어든다.


표현력이 좋으면 몇 줄 안 짜고도 코드가 완성되지만, 

그러려면 많이 외워야 하고,

그래서 시간이 많이 걸린다. (아니면 잘 외우거나, 경험이 많아도 된다.)


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari