코드는 행복해야 한다. 그 클래스나 모듈 내에서 코드가 행복해 하면 좋다고 생각한다. 물론 어떤 것이 행복하냐? 물으면 그건 프로그래머 각자의 생각에 따라 다루겠지. 서로의 시각이 다르니, 같은 코드라도 다른프로그래머의 각각 다른 시선으로 “필터링” 되면 쓰레기가 될수도, 진주같이 빛나는 코드가 될 수 있다. 애매모호하다. 코드는 논리적이다. 그래서 대부분의 경우 확실하게 잘잘못을 나눌 수 있는 명제의 문제가 많다. 그러니 코드의 “행복론”이라니 이건 너무 추상적이지 않은가? 헛소리이지 않은가? 맞다. 헛소리 같다.
그렇지만 그래도 이런 행복론은 왠지 멋져 보인다. 허황되지만 은근 믿어 보고 싶다. 아, 그리고 아주 완곡하게 이야기해 보자. 코드는 프로그래머의 산물이다. 내가 프로그래머라면, 내가 짠 코드는 내 자식과 같은 것이다. 내 새끼들은 그래도 잘나고 멋있기를 바라는 것이 부모의 심리다. 나도 가능하면 내 코드가 잘나고 멋있었으면 좋겠다.
또 코드에 정답과 오답이 언제나 칼로 자르는 것처럼 나누어지냐고 한다면 또 그건 아니다. 아까와는 정반대의 이야기를 하니 모순 같지만 약간 차원이 다른 이야기다. 그러니까 이거다. 코드가 풀려고 하는 문제의 풀이 과정(알고리즘)은 정답이냐 오답이냐를 딱 잘라 이야기할 수는 있지만, 그 정답의 도출 과정은 제각각이다. 답이 여럿일 수 있다. 알고리즘이 아닌 방법론 차원으로 올라가면 프로그램은 세상만사처럼 딱 잘라서 선악 참거짓 우열을 가리기 어려워질 수도 있다. 예를 들어 프로그래밍 패턴 같은 것이다. 어떤 문제에 대한 어떤 패턴은 영 아니지만 어떤 패턴은 잘 맞는다. 한편 어떤 문제에 대해서는 다양한 해결 패턴이 존재할 수도 있다. 애매모호해지는 것이다. 괜히 프로그래밍이 우스갯소리로 “도 닦는 직업”이라고 하는 게 아니다.
그런 와중에 문득 행복론이란 생각이 들었다. 그래서 이 메모를 장황히 적고 있다. 사람은 어떻게 살아야 할까 고민을 한다. 많은 현명한 이들이 “행복”을 중요한 가치라고 조언해 주었다. 그래 행복하면 좋지.
엉뚱한 생각이 떠올랐다. 코드가 만약 사람이라면? 내가 짠 내 새끼들이 살아 숨쉬는 생물이라면? (머신 속에서 개념적으로 살아 숨쉬기는 하지. 우리는 이걸 개채화-instantiation라고 부른다.) 그러면 그 애들은 과연 행복할까? 살고 죽는 (생명 주기) 짧디짧은 순간을 행복하게 보내고 있을까?
내 멋대로 그런 가치를 사람의 행복론에서 따 와서 상상해 보았다. 뭐 잡동사니같은 생각인데, 괜히 멋지구리해 보였다. 코드가 행복해 한다? 어떻게 행복해할지는 지금은 잘 모르겠지만 직감적으로는 뭔가 작은 실마리 같은 게 잡힌다고 느낀다. 착각일 수도 있지만서도.