2012년 4월 4일 수요일

book] Edsger W.Dijkstra - The Humble Programmer를 읽고...


Edsger W.Dijkstra - The Humble Programmer를 읽고...

200012356 하준호

 컴퓨터의 역사는 그리 길지 않기 때문에 이 글의 전체적인 내용만 보면 컴퓨터의 역사를 표현했다고 말할 수 있다. 프로그래밍은 소프트웨어 개발이기 때문에 하드웨어 발달과 같이 할 수 밖에 없다. 그리고 컴퓨터의 범용성이 점점 커짐에 따라서 사회적 요구에 발맞춰 컴퓨터가 발전하게 되었다.
 초창기에 하드웨어의 사양이 미약했지만 점점 강대해 짐에 따라서 소프트웨어 개발의 위기는 지속적으로 찾아오고, 그것을 해결해 주는 새로운 프로그래밍 언어의 등장과 개발 방법이 발전해감에 따라서 위기를 극복하고 있다는 내용이다.
 우선, 이렇게 요약한 전체적인 내용에 대한 느낌은. 당연한 이야기들을 하고 있는 것 같았다. 하루의 4시간 이상은 컴퓨터와 함께하는 현대인들은 여러가지 흘려들은 이야기들만 구성해도 컴퓨터 역사에 대한 개괄적은 지식은 다 있다. 그리고 무엇인가가 발전하려면 수많은 고민과 내부의 문제들을 해결하려는 노력이 있었음은 짐작할 만한 문제이고, 컴퓨터는 엄청나게 많은 사람들이 발전 시켰다. 하지만 글쓴이가 이야기하는 논점과 자잘한 애피소드들의 의미를 이해하려면 어디에 초점을 맞춰서 읽어야 하는가가 문제였다.
 나는 저자가 말하려고 하는 소프트웨어 패러다임(객체지향)의 정당한 이유들을 짚어보는데 집중하기로 했다. 우선, 객체지향이 오늘날 인정받고 있음은 자명한 일이다. 그런데 포트란, LSIP는 우선 추상화가 없어서 좋지 않다는 이야기를 하고 있다. 나는 포트란은 시대가 흘러서 사라져야할게 아닌 아직 좋은 언어라고 생각한다. 오늘날 OOP의 명성을 뒤로 하고 글 내부에서는 추상화가 왜 좋은 것인지 설명도 없으면서(뒤에 나오긴 하지만) 포트란이란 언어를 비꼬고 있음에 공감하지 못했다. 아무튼, 이야기는 흘러 ALGOL60부터 추상화의 노력을 했다고 한다.
 뒷부분 내용은 고개를 끄덕일만한 문구가 많았다. 세계가 변화에 대한 욕구를 인식하고, 경제적 욕구가 충분하고, 변화가 기술적으로 가능할 때 혁명이 일어난다는 말. 그리고 이러한 주장들에 대해서 상당한 이유들로 뒷받침하고 있다. 그리고 소프트웨어가 하드웨어를 따라가지 못한다는 이야기를 많이 들었는데, 이 글에서도 나타나고 있었다. 그러면 어떻게 해야 하는가? 그래서 뒷부분의 내용을 보면 생각의 한계를 극복하기 위한 새로운 패러다임을 뒷받침하는 이야기들을 하고 있다.

 공감할 수 밖에 없는 내용들이었다. 하드웨어의 발전이 너무도 빠르고, 소프트웨어가 그 속도를 따라가려면 여러가지 조건이 따른다. 사회적 요구, 경제적 뒷받침은 모두 충족되어 있으니 기술이 따라가려면 제대로된 길을 걸어야 한다. 잘 닦여진 길은 곧 OO를 의미하는 것일 것이다. 소프트웨어 개발은 생각이 현실로 구체화되는 것이며, 이러한 생각의 방식과 가장 어울리는 것이 OO이다.
 하지만 OOP 역시 기술적인 구현이다. Smalltalk이 OO를 지향하고 있어도 속도 문제는 여전히 남아있고, java 역시 기계어로 짜여진 OO 개념이 첨가된 프로그래밍 언어이다. 임베디드 분야같이 하드웨어와 밀접한 프로그래밍을 해야할 때에 OO는 거추장스럽다. 물론, 크기가 방대해지면 OO 개념이 들어와야 하겠지만. 꼭, 다른 언어들을 배척하기 보다는 OO개념을 따와서 C나 어셈블리의 서브루틴들을 OO 개념으로 만들고 관리하였으면 좋겠다. 아직 저자의 욕구를 완벽히 충족시켜줄만한 언어가 없는 이상은 새로운 패러다임을 최대한 받아들이도록 하면서 기존 언어 역시 함께 발전시키는 것이 소프트웨어 발전에 더욱 도움이 될 것이다.
 사족을 하나 쓰자면 현실 사회에서도 이해할 수 없는 일이 많이 일어난다. 한가지 목적을 단순한 프로그램에서야 추상화는 어렵지 않다. 하지만 영화에서 보는 미래사회와 같이 컴퓨터가 점점 모든 것을 대체하고 있는 이 흐름을 보면 상당히 복잡한 현실문제도 컴퓨터가 해결해 줄 것 같다. 문제는 어려운 현실문제를 추상화 시킴에 있어서 사람의 생각이 얼마나 신뢰성이 있는지가 버그의 한 요인으로 작용할 수도 있을 것 같다.

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...