언어를 대하는 개발자의 자세...

@codemaru · March 09, 2007 · 7 min read

마이크로소프트웨어 3월호에 양병규님 인터뷰가 실렸습니다. 전 개인적으로 그 분을 굉장히 존경합니다. 왜냐하면 걸출한 아웃풋인 빵집이 있기 때문이죠. 전 개발자란 결과물로 이야기를 해야한다고 생각합니다. 또한 그런 중에도 킬러 애플리케이션을 만든 분들을 가장 높게 인정합니다. 물론 그 안에 별다른 기술력이 없다고 할지라고 그것이 가진 유용성이 더 중요하다고 생각하기 때문입니다. 사설이 길었습니다. 인터뷰 기사중에 아래와 같은 내용이 나옵니다.

"개발언어를 선택함에 있어 유행은 별 의미가 없다고 봅니다. 자신이 원하는 걸 만들기 가장 편한 언어가 가장 좋은 언어죠." 오로지 델파이로 원하는 걸 다 만든다니 그의 말이 설득력이 있다.

어떻게 생각하시나요? 공감하시나요?

사용자 삽입 이미지
이와 유사한 내용이 MBC의 인기 드라마 하얀 거탑에도 나온적이 있습니다. 두 뛰어난 외과의사인 장준혁과 노민국이 우연찮게 갈이 수술을 하게된 날이죠. 수술을 시작하기 전에 노민국이 어떤 술식(언어)를 사용할거냐고 물어봅니다. 장준혁은 던킨(??) 술식으로 하겠다고 하죠. 그러자 노민국이 반발합니다. 던킨 술식보다는 덕투더묵(?) 술식이 더 좋다는 반론이었죠. 5회에 나옵니다. 궁금하신 분들은 보세요.

정리하면 요지는 이겁니다. 노민국은 검증된 최선의 선택을 하자이고, 장준혁은 의사에게 익숙한 술식이 더 좋다는 의견이었습니다. 이후 수술은 결국 노민국의 의견대로 진행되지만 잘못되고 장준혁이 새로 수술하는 그런 식으로 진행됩니다.

프로그래밍 언어도 전 이와 유사하다고 봅시다. 개발자에게 편리한 언어가 있습니다. 단지 익숙해서 그런 것이죠.전 어셈블리면 못만드는게 없다고 생각합니다. 단지 불편할 뿐이다. 하지만 C정도 되면 편리하게 모든걸 만들 수 있습니다. 하지만 과연이게 최선일까요?

거기에는 큰 함정이 있죠. 익숙함이란 함정입니다. A가 프로그래밍 언어를 하나도 모를 때 베이직을 배웠다고 가정해 봅시다. 그러면 그는 군소리 없이 베이직을 배웁니다. 다음에 그가 C언어를 배워야 했을 때 그는 말이 많아 집니다. 왜 C는 동적이지도 않고, 메모리도 다 개발자가 관리 해야 하느냐. 이런 편리한 표현식을 왜 제공하지 않느냐? 이런 식이죠. 툴툴 대면서 베이직만 두둔할 겁니다.

다시 생각해 봅시다. 제가 웹에서 동작하는 게시판을 C언어로 만들기로 계획했습니다. 당연히 만들수 있습니다. 아주 편리하게 말이죠. 하지만 그건 어디까지나 거기에 적합한 언어인 php를 몰랐을 때의 이야기 입니다. 당연히 php를 배울 때는 군말이 많을 수 밖에 없습니다. 익숙하지 않기 때문이죠. 하지만 명심해야 할 것은 그 익숙하지 않은 단계를 지나야 모든게 익숙해 진다는 겁니다.

편한게 최고는 아닙니다. 그것은 우물안에 자신을 가두는 것과 동일한 것이죠. 세상엔 정말 다양한 언어가 있고 그것들은 모두 나름대로의 철학을 가지고 있습니다. 그것들을 경험해보지 않고 단지 편안함이란 매력 때문에 한 가지 언어를 고집하는 것은 매우 아주 안좋은 발상이라고 생각됩니다.

실용주의 프로그래머를 보면 주기적으로 새로운 언어를 익히라고 말합니다. 저도 그 의견에 전적으로 동의합니다. 새로운 언어를 익히는 것은 유용하기도 하고, 설령 그 언어를 집중적으로 쓰지 않더라고 자신이 주력으로 쓰는 언어에 영감을 불어 넣어주는 경우가 많습니다. 발전은 그렇게 이루어지는 것이죠. 충돌이 일어나고 전율이 오고 눈물이 나는 상황이 되어야 변화가 생깁니다. 늘 상 편안한 안정한 상태를 유지해서는 발전도 변화도 없습니다.

물론 그렇다고 제가 얼리어댑터를 주장하는 것은 아닙니다. 늘 그렇듯이 가장 중요한 것은 그 사이의 균형입니다. 옛것과 새것 사이의 균형이죠. 그런 균형 감각이 뛰어난 사람이 스마트한 사람 아닐까요?

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중