베이직으로 프로그래밍을 배운 이후로 여러 프로그래밍 언어를 익혔다. 그 중에는 자격증이나 학점을 위해 배운 것도 있고, 순수히 개인적인 관심사를 위해서 배운 것도 있다. 요즘은 PHP로 밥벌이를 하고 있지만, PHP를 제일 좋아하는 것은 아니다.
개인적으로 제일 좋아하는 프로그래밍 언어는 C 언어다. 오래 된 언어지만 아직도 많은 분들이 사용하는 언어다.
내가 C 언어를 좋아하는 것은 컴퓨터의 근본을 건드리는 언어이기 때문이다. 다른 언어로 변수에 값을 대입한다거나 연산을 한다고 했을 때 그것이 하드웨어에서 어떻게 처리될지 떠올리기는 쉽지 않다. 물론 해당 언어의 컴파일러나 인터프리터 소스를 철저히 분석한다면 알 수 있겠지만, 언어를 직접 개발하는 프로그래머가 아닌 이상 그 정도로 철저히 분석하는 경우는 흔하지 않을 것이다.
그에 비해 C 언어에서 변수나 연산을 하면 이것이 어떤 식으로 어셈블리어로 대치되면서 CPU의 레지스터와 ALU와 메모리를 통해서 전류가 흐르면서 처리될지가 상상이 가능하다. 물론 최신의 하드웨어는 소프트웨어 엔지니어가 쉽게 이해 할만한 물건이 아니고, 학부 수준의 이해를 뛰어넘는 개념들이 많이 들어가있긴 하지만 대강의 근본 원리에서 벗어나진 않는다.
C의 이런 점이 비효율적이라 생각하는 개발자들도 많겠지만, 프로그래밍은 어셈블리어로 CPU와 메모리를 직접 건드리는 것이 당연하게 받아들여지던 시절의 향수를 지닌 사람이라 그런지, 컴퓨터 시스템을 온전히 직접 제어한다는 것에 대한 로망은 아직도 남아있다.
갈수록 직접 하드웨어에 달라붙어 할 것이 줄어들고 있긴 하지만, 이런 로망쯤은 하나 죽을까지 가져가도 좋지 않을까 싶다.