2005년 5월 23일 오후 8:59 (GMT+9)
요즘 '웃찾사'를 보면 '깐따삐아 논평"이라는 걸 한다. 아주 재밌다.
김세아인가 하는 개그우먼이 나와서 "씨리~ 깐따라삐아!"로 시작해서 은근히 험한 소리를 섞어가며 하는 만평이 왜 그리 속이 통쾌하고 재밌는지.. .ㅋㅋㅋ
음, 문득 블로그를 채우기 위해서 여태껏 내가 써 놓은 Smalltalk 관련 글들을 보니, 갑자기 깐따삐아 만평이 떠올라서, 나도 한 번 '씨리~ 깐따라삐야~!" 해볼란다.
**'관'(觀)**이란 중요하다는 말을, 대학 강의 때 무수히 들었다.그걸 우리 교수님은 **'패러다임'(paradigm)**이라 하시더라.... 사물을 보는 관 말이다.
어떤 사람이 '나는 C++로 프로그래밍 한다'고 말한다고 해서 과연 그 사람이 진정으로 객체지향 프로그래밍(OOP)을 한다고 할 수 있을까?
객체지향**은 하나의 '관'**이다. 그게 내 생각이다. 모든 사물과 관념을 '객체'로 바라보고 생각하는 것이 바로 '객체지향'이다.
그런데 내가 처음 Smalltalk를 접했던 1998년 당시만 해도 객체지향이라는 관을 제대로 가지고 있는 프로그래머가 드물었다. 교보문고에서 프로그래밍에 대한 책들, 특히 C++ 기초를 설명한 책들을 보면 씨리~ 깐따라삐아~ 열불이 나서, 깐따라삐야~ 돌아버릴 것 같다~ 깐따라삐야!
책에는 버젓이 **'객체지향'**이라고 써 놓았는데, 도대체 씨리 깐따라삐아~! 객체지향은 무슨 객체지향? 개뿔~! 씨리 깐따라삐야~
태반 이상의 책이 ' C언어와 C++의 차이점'으로부터 설명을 시작하고, C언어에서 쓰던 코드를 C++로 바꾸어 놓고는 자랑스럽게'객체지향'이라고 떠든다.
나도 처음에는 그런 줄 알았다. 하지만 이러한 접근은 '객체지향'이 무엇인지 모르는 사람들에게 상당히 큰 혼란을 주었다. 뭐, 저자나 번역자 자체도 객체지향적인 개념이 없었으니 그 개념 없는 지식들을 그대로 받아 읽는 독자들이야 어련하랴.
대부분 이런 책들은 class, virtual, inline 등을 그저 문법적으로만 다루었다. 그리고 별 도움도 되지 않는 예제들을 실어놓았다. 도대체 그게 왜 필요한건데...
만약 C++에 대해서 설명을 하려고 했다면, 그리고 그 언어를 '제대로된 객체지향의 관'을 가지고 설명을 했더라면 굳이 C언어와 비교할 필요가 있었을까? C++의 문법적인 설명, 그게 중요한 게 아니었다. 물론 기존의 C를 알았던 사람들을 위해서라면, 부록 쯤에 두 언어의 문법적 차이를 따로 설명해 놓으면 그것으로 그만이다.결국 이런 문법적인 설명은, 많은 사람들이 C++를 C처럼 사용하는 해괴한 현상을 만들어 놓았다.
그뿐인가? Delphi로 코딩을 해 놓은 걸 보면, 정말 가관이다. 각각의 이벤트 핸들러에 뒤죽박죽으로 코딩을 해 놓아서, 결국 스파게티를 만들어 버린다.
이게 객체지향인가?
씨리, 깐따라삐야~ 객체지향? 개뿔~~!이다.