2006년 1월 11일에 네이버 블로그에 적은 글입니다.
C++의 설계와 진화 라는 책을 보고 있습니다.
( 책 사진은 http://blog.naver.com/jacking75/140009579158 )
이 중 첫 부분의 'C++의 이전의 역사' 챕터를 보았습니다.
1.1 Simula와 분산 시스템
1.2 C와 시스템 프로그래밍
1.3 개인적인 배경
이중에서 1.3에서 나오는 내용을 간추려 보았습니다. 이것을 보면 C++의
특징에 대해서 좀 이해와 C++을 만든 비얀스트롭(맞나 -_-;;)의 사상을
알수 있으리라 생각합니다. 그리고 이전에 자바와 C++의 비교하는 것을
의미 없는 것이라고 이분이 이야기 했는데 그 이유도 알것 같습니다.
자바와 C++의 사상 자체가 틀린것 같더군요.
자바는 OOP가 최선이라고 생각하여 이것을 프로그래머들에게 강제한다면
C++은 개개인의 프로그래머의 생각을 존중하여 개인의 생각을 최대한
존중하여 다양한 방법으로 프로그래밍을 할 수 있게 만들었다고 생각합니다.
아래가 제가 대충 정리한 내용입니다.
------------------------------------------------------
C++의 전체구조는 나의 일반적인 세계관이 반영 되고 있을 것이다.
물론 C++의 개개의 부분은 컴퓨터 과학의 정밀한 개념에 의해 만들어 졌지만
나의 전공은 수학(순수수학과 응용수학)으로 나의 덴마크 박사 칭호의 타이틀은
'수학 및 컴퓨터 과학'으로 되어 있다. 나는 수학의 아름다음도 좋지만 목적 없는
추상적인 진리나 미(美) 보다도 문제 해결을 위한 실용 툴로써의 수학에 마음이 기울어진다.
컴퓨터나 프로그래밍 언어에 대한 나의 관심도 역시 실용적인 관심이다.
나의 장년(25년 이상)의 취미는 역사이다. 또 학생시대 이후부터 철학 공부에 많은 시간을
소비 하였다...세계에는 다양한 사상이 있는 중에서 나에게는 관념론 보다 경험주의가 가장
잘 맞다.
집단의 존중에 그 집단에 속하는 것에 대한 존중이 포함 되지 않는다면 그것은 전혀 존중
할 수 없다. C++ 설계의 많은 부분이 강제에 대한 나의 혐오가 근간이 되고 있다.
인류 역사의 최악의 참사는 '이것이 옳은 것이므로 이것을 해!' 라고 말하는 이상주의자의
강제에서 생겨난다.
나는 프로그래머들에게 선택을 자유를 주고 싶다.
나는 이론이랑 논리만으로 기초를 두는 결정이 싫으므로 그 것은 나의 문학 취미에도 나타나고
있다. 이렇게 말하는 의미는 C++는 마틴 A 한셈, 알베르 카뮤, 죠지오웰 등 컴퓨터를 한번도
본적이 없는 소설가랑 엣세이스트들의 영향을 크게 받고 있다. 또 컴퓨터 과학자 중에서는
David Gries, Don Knuth, Roger Needham 같은 수학자로 있기 이전에 인간으로서 상식인으로 있는 사람들에게 많은 영향을 받고 있다.
나는 나의 기호에 맞지 않는 기능을 C++에서 뺄려고 하는 것에 대해 언제나 그것을 생각하지 않을려고 한다. 왜냐하면 나의 생각을 타인에게 강제 하는 자격이나 권리는 누구에게도 없기 때문이다.
이론만을 순수하게 추구하여 다양한 생각을 '오랜되었다', '안된다', '확실하지 않다'고 말하면서
깔아 뭉게었다면 C++은 훨씬 일찍 완성되었을 것이다. 그러나 시간의 가치 보다도 사람의 가치가
훨씬 높은 경우가 많다. 사람의 다양한 생각을 허용하고 받아들여 하나의 것을 여러가지 방법으로
완성하는 것이 나에게 있었어는 훨씬 가치가 크다.
나는 새로운 기술을 사람들에게 추천해 그 가치를 설득할 때, 무리하지 않고 천천히 하는 것을
좋아한다. 사람들을 세뇌하는 테크닉이 있다는 것을 알고 있지만 그런한 테크닉은 기본적으로
위화감을 느낀다.
나는 문제 해결을 위해서 C++을 설계 하였지 무언가를 실증하기 위해 만든 것이 아니다. C++은
유저에게 봉사 하는 것에 의해서 성장했다. 변화를 조금씩 축적하는 것에 의해 세상을 좋게
하는 것은 가능하다.
나는 사람들에 도움이 된다고 믿는 기술이나 아이디어의 보급에 이제부터라도 힘을 쏟고 싶다.
우리들의 기술이랑 생각에 접근성을 높이고 그것들의 전문가의 도구가 아닌 사회의 도구로
하는 것은 과학자랑 지식인의 의무이다. 물론 사람이 이상의 회생자로 되어서는 안된다. 나는
협소한 프로그래밍 언어에 의한 단 하나의 설계 스타일을 사람들에게 강제하고 있는 것이 아니다.
사람마다 사물의 생각과 일을 하는 방법이 굉장히 다양하므로 '이것이 보통적인 최선'이다고
칭하는 특종의 스타일을 밀어 붙인다면 발생하는 것은 피해이다. C++은 의도적으로 다양한
스타일을 실현 할 수 있는 스타일로 되어 있다. 그것은 '단 하나의 옳은 방법'를 강제하는
언어가 아닌다.
프로그래머에게 있었어 프로그래밍 언어가 가장 중요한 도구이다. 그러나 프로그래밍 언어는
세계의 극히 작은 일부분에 지나지 않으므로 그렇게 요란을 떨 것은 아니다. 이를테면 세계의
전체를 의식하고, 균형 있는 시각을 유지하는 것이다. 그리고 가장 중요한 것은 유머와 센스를
잊지 않는 것이다. 메이져 언어 중에서 가장 많은 호사가들이랑 죠크의 근본이 되고 있는
것이 C++ 이다. 그것은 결코 우연이 아니다.
-------------------------------------------------
이전에 사 놓고 요즘 'Art of UNIX Programmin'를 다 보고 이른바 잠자기 용 책으로
보고 있는데 저의 주력 언어인 C++에 대해 제가 모르고 있던 부분이 나와서
흥미롭네요....그래도 책에 글자만 있었어 잠은 잘 옵니다..^^;;
RECENT COMMENT