2007년 6월 22일 금요일

Do you enjoy reading a novel?

쉬어가는 의미로 한번 가볍게 읽어주세요.

흔히 영어를 능숙하게 구사하는 분들을 보면 우리말 역시 세련되게 하는 것을 볼수 있습니다. 영어에서 같은 표현이 나오면 동일한 단어를 피하고 유사한 단어를 사용, 다양한 어휘력을 바탕으로 동일한 것을 재미있고 자연스럽게 이해할수 있도록 말을 하는 것을 볼수 있습니다. 그런데 이른바 프로그래머라고 일컬어지는 사람들(me too^^)은 조금은 외부세계와 단절된 듯한 느낌을 보여줍니다. 아니 어찌보면 직업병이라고나 할까. 이진법에 익숙해서 그런지 아날로그적인 애매모호한 일상 생활에 잘 적응하지를 못하는 것 같습니다. 우리들은 이른바 전공 서적이란걸 보기 위해서 영어를 공부하고 기술적인 것을 적용하기 위해서 컴퓨터관련 서적을 뒤져봅니다. 하지만 가만히 노트북을 접고 생각해보면 기술적이라고 하는 것들이 실은 다른 공학이나 인문학에서 영감을 얻어 현재 적용되고 있는 것을 보면 지금처럼 프로그래밍을 공부하는 것이 문법만 죽으라고 공부했던 영어 공부와 무엇이 다를까 의심해 봅니다. 분명히 우리들은 영어 공부 뿐만 아니라 프로그래밍 공부 역시 잘못하고 있다는 느낌을 강하게 느낍니다. 특히 저로서는...

C를 접할때 어렵게 느껴졌던 포인터. 그런데 그 쓰임새가 정말이지 절실하게 느껴졌던 시기는 임베디드 보드에서 실행될 프로그램을 만들때였습니다. 솔직히 그 전까지만 해도 "포인터 = 데이터 포인터" 로만 생각을 했었는데 이젠 "포인터 = 함수 포인터" 이더라구요. kernel 소스나 오픈소스를 뒤져보면 여지없이 나오는 함수 포인터 때문에 참 난감했었는데...

그러고 보면 우리는 버그 투성이의 프로그램을 만들기 위해서 노력하는 동안 해외에서는 소설처럼 읽어볼수 있는 깔끔한 소스를 만들기 위해서 많이 노력한 흔적이 보입니다. 우리는 rapid development 만을 강조했지 rapid에 따른 엄창난 side effect에 대해서는 아무도 대답하지 않습니다. 그때가서 문제가 생기면 회의하자고 하기 바쁜 세상.

다빈치의 모나리자 그림을 접할때면 어떤 생각이 드십니까? 다들 TV에서 접해서 들었던 오묘한 미소가 떠오르십니까? 얼마전 히스토리 채널에 방영한 것을 보고 상당히 놀라움을 금치 못했던 것은 모나리자를 그릴때 그 어떤 덧칠이 가해진 것이 없다는 것입니다. 우리들의 관점으로는 머리속의 생각을 그 어떠한 디버깅없이 바로 소스 코드로 작성했다는 거죠. 다빈치가 현대에 태어났었더라면 정말 멋진 OS가 만들어지지 않았을까 생각해 봅니다.

결론... 좀 거창하지만 만약 문학 비평가, 영화 비평가와 같이 문학이나 예술계에나 있을 법한 학문이 이젠 우리 분야에도 나타날때가되지 않았나 조심스럽게 짐잠해 봅니다. 소스 비평가(code reviwer) 정도로 용어를 만들어 볼수 있을것 같은데 이젠 소스를 어지럽게 써내려 가기 전에 오픈 소스를 소설이나 아니면 수필처럼 읽을 수 있는 여유로운 마음이 필요하지 않나 생각이 됩니다.

ps) 그런면에서 NetBSD 의 소스는 한편의 epic을 읽는 듯한 느낌이 듭니다. 고대 영국 문학의 epic 이 현대에 와서 반지의 제왕과 같은 소설로 다시 부활한 것과 같이 NetBSD는 AT&T UNIX의 서자(?)로 태어나 OS world에서 절대 군주로 자리잡은 진정한 영웅입니다.

Programs should be written to be read, and, whether they are or not, they need to be read.

댓글 없음: