2005년 6월 16일 오전 2:40 (GMT+9)

3. 사례 2: Smalltalk

앞에서 우리는 어떤 것이 '어렵게 느껴지는' 7가지의 이유를 살펴보고 이를 토대로 C/C++ 언어에 적용시켜 생각해 보았다. ※ 참고 진실 2: Smalltalk는 어렵다 -1- (C언어, 왜 어려운가?)

이번에는 본격적으로 사람들이 흔히 말하는 것처럼 "Smalltlak가 어려운가"에 대해서 생각해 보기로 하자. 지금까지 살펴본 일곱 가지의 기준으로 설명해 나가겠다.

1) 다르다. / 새롭다.

프로그래밍 언어의 초심자들에게는 물론 Smalltlak가 어려울 것이다. 아니, 그들에게는 어쩌면 '프로그래밍의 개념' 자체가 어려운 것일지 모른다. 그러므로 엄밀히 말하면 프로그래밍 초심자들은 Smalltalk가 어렵다기 보다는 '프로그래밍 그 자체'가 어렵다고 봐야 한다.

그럼 기존 언어에 익숙한 사람들은 어떨까? 대부분의 사람들이 Smalltalk가 어렵다고 하는 이유는 대략 다음과 같이 생각해 볼 수 있다.

[1] 소스 코드의 모양이 다른 (대중적인) 언어들과 사뭇 다르다.

[2] 객체지향 패러다임을 무조건 강요한다.

우선 **[1]**의 경우가 아마 Smalltlak가 어렵다고 느끼는 가장 타당한 경우일 것이다. 사실 오랫동안

while (not( fileStream.eof() )) {
	someObject.doSomething( data[i] );
}

라는 구문에 익숙한 프로그래머들이

https://gist.github.com/andrea9292/8e149785085a18ca9df53507ae1a3c39

라는 Smalltalk의 표기법을 보면 당혹스럽고 황당한 건 어찌보면 당연하다.

그러나 이것은 지금부터 이야기할 이유들 때문에 실은 무척 쉽게 익숙해 질 수 있다. 그리고 프로그래밍의 초심자들이 C 언어의 코드와 Smalltalk의 코드 중 어떤 것을 보다 더 거부감 없이 받아들일까 한번 곰곰히 생각해보자.