지금까지 프로그래밍 언어(programming language)에 관심을 가졌으면서도 범용적인 언어만 공부하다 보니 특수 목적(special-purpose) 언어에 대한 관심을 깊이 못 가져본 것 같다. 이번에 한 회사 면접 준비를 하면서 GLSL(OpenGL Shader Language)를 조금 살펴봤는데, 범용 언어가 아니더라도 언어/컴파일러 기술이 활용될 수 있는 곳은 여전히 많이 있는 게 아닐까 하는 생각이 들었다.
흔히들 국내에서 프로그래밍 언어/컴파일러 쪽 전공하면 밥 먹고 살기 힘들다는 이야기를 많이 하는데, 이게 참 웃기다. 마이크로소프트나 썬 마이크로시스템즈의 예만 봐도 알 수 있듯이 소프트웨어에서 정말 기반이 되는 기술은 사실 언어와 런타임을 포함한 소프트웨어 플랫폼이기 때문이다. 즉 이걸 안 하면서 IT 강국을 키우겠다는 건, 모든 제품을 사다가 조립만 하는 조립 공장이 되겠다는 이야기와 크게 다르지 않다.
소프트웨어는 결국 하드웨어에 여러 겹 추상화 계층을 씌우는 작업이다 보니, translation은 거의 모든 소프트웨어의 필수적인 요소다. 3D 그래픽스 프로그래밍에 사용되는 Shading 언어도 결국은 그래픽스 칩 벤더가 제공하는 어셈블리 언어의 불편함을 줄이고, 범용적인 인터페이스를 제공하는 데 있다.
국내에 관련 업체가 별로 없다고는 하지만, 그렇게 밥 못 먹고 살만한 분야는 아닌 것 같은데…