2005년 6월 16일 오전 2:40 (GMT+9)
앞에서 우리는 어떤 것이 '어렵게 느껴지는' 7가지의 이유를 살펴보고 이를 토대로 C/C++ 언어에 적용시켜 생각해 보았다. ※ 참고 진실 2: Smalltalk는 어렵다 -1- (C언어, 왜 어려운가?)
이번에는 본격적으로 사람들이 흔히 말하는 것처럼 "Smalltlak가 어려운가"에 대해서 생각해 보기로 하자. 지금까지 살펴본 일곱 가지의 기준으로 설명해 나가겠다.
프로그래밍 언어의 초심자들에게는 물론 Smalltlak가 어려울 것이다. 아니, 그들에게는 어쩌면 '프로그래밍의 개념' 자체가 어려운 것일지 모른다. 그러므로 엄밀히 말하면 프로그래밍 초심자들은 Smalltalk가 어렵다기 보다는 '프로그래밍 그 자체'가 어렵다고 봐야 한다.
그럼 기존 언어에 익숙한 사람들은 어떨까? 대부분의 사람들이 Smalltalk가 어렵다고 하는 이유는 대략 다음과 같이 생각해 볼 수 있다.
[1] 소스 코드의 모양이 다른 (대중적인) 언어들과 사뭇 다르다.
[2] 객체지향 패러다임을 무조건 강요한다.
우선 **[1]**의 경우가 아마 Smalltlak가 어렵다고 느끼는 가장 타당한 경우일 것이다. 사실 오랫동안
while (not( fileStream.eof() )) {
someObject.doSomething( data[i] );
}
라는 구문에 익숙한 프로그래머들이
https://gist.github.com/andrea9292/8e149785085a18ca9df53507ae1a3c39
라는 Smalltalk의 표기법을 보면 당혹스럽고 황당한 건 어찌보면 당연하다.
그러나 이것은 지금부터 이야기할 이유들 때문에 실은 무척 쉽게 익숙해 질 수 있다. 그리고 프로그래밍의 초심자들이 C 언어의 코드와 Smalltalk의 코드 중 어떤 것을 보다 더 거부감 없이 받아들일까 한번 곰곰히 생각해보자.