갑->을이라고 할 때: '갑'는 '을'보다 자신이 더 잘났다고 생각한다. 갑 을 이라고 할 때: '갑'과 '을'은 둘 다 자신이 더 잘났다고 생각한다. 출처: 프로그래머 서열 . Beating the Average 라는 글에 보면 Blub Paradox라는 말이 있습니다. Blub Paradox를 이해하기 위해서는 먼저 프로그래밍 언어는 모두 가지고 있는 힘이 다르다는 사실을 인정해야 합니다. C언어가 기계어보다 더 강력하듯이 python이나 C++, ruby, java, lisp 등의 고급 언어들 사이에도 이런 서열이 존재한다는 것이죠. 그럼 이제 Blub이라는 가상의 언어를 생각하고 이 언어를 현재 우리가 사용하고 있는 언어라고 합시다. 이 언어가 COBOL보다는 강력한 언어라고 가정하면 서열은 다음과 같습니다. 기계어 이제 Blub 프로그래머가 아래, 즉 COBOL과 같은 언어를 보면 COBOL이 왜 Blub보다 약한 언어인지를 알 수 있습니다. 자신이 사용하고 있는 Y라는 기능이 COBOL에는 없기 때문이죠. 심지어 어떻게 Y라는 기능도 없는 언어로 프로그래밍을 할 수 있는지 궁금해 합니다. 하지만 반대로 위를 올려다보면 우리는 우리가 보고 있는 것이 무엇인지를 깨닫지 못합니다. 단지 Blub으로도 할 수 있는 일을 이상한 문법이나 방법으로 하고 있다고 생각하기 쉽죠. 결국 그 언어가 왜 Blub보다 강한지 알지 못하는데 이를 Blub Paradox라고 합니다. 이렇게 더 강한 언어의 강력함을 이해하지 못하는 이유는 바로 우리가 현재 Blub의 높이에서만 생각할 수 있기 때문입니다. 위의 내용에서 유추해보면 결국 모든 언어의 장/단점과 차이를 이해하기 위해서는 가장 강력한 언어를 알아야 한다는 결론이 나옵니다. 물론 위에서 언급한 Paul Graham의 글에서는 이 언어가 Lisp이라고 이야기하고 있죠. 얼마전까지 제 Blub은 C++였습니다. 이전엔 python을 그저 C++의 인터프...