LLVM and clang...

LLVM과 clang을 처음으로 접한 것은 Xcode 때문인데, 그 역사를 살펴보니 재미있다. 여전히 LLVM과 gcc는 상존하고 있고 LLVM은 clang이라는 것으로 C/C++ 세계에서 영향을 끼치고 있다. Clang을 특별히 사용하는 이유는 valgrind를 쓰지 않더라도 나름의 메모리 에러 체크가 가능하다는 점 때문인데, 역시나 맥이나 리눅스월드에서나 쉽게 사용이 가능하고 윈도우즈 세계에서는 이게 좀 까다로운 듯 하다. mingw에서 clang을 지원하는데 이 기능 (fsa: address sanitizer)은 지원이 되는 듯한 것도 있고 안된다고 하는 것도 있다. 물론 비주얼씨의 세계에서는 그런 게 없다.

본론으로 돌아와서 LLVM을 개척한 Chris Lattner라는 사람은 이것 하나로 쭉 경력을 쌓으면서 애플에서 swift를 만들다가 나와서 지금은 ML관련 회사를 차려서 일하고 있다는데, 대충 검색해보면 강렬한 AI의 붐과 함께 뭔가 엄청난 일을 하고 있구나 한눈에 알 수 있다.

LLVM은 사실상 어떤 언어의 제약이 없이 그 언어를 가지고 컴퓨터를 동작시키는 어떤 근본적인 원리를 가지고 접근하고 있음이 느껴진다. 그것이 수많은 언어를 지원할 수 있게끔 되어있다는 분위기를 풍기고 있기 때문이다. 그러나 상용 제품 중에서 LLVM이 제대로 들어가 있는 것은 MacOS로 보여지고 물론 이 플랫폼에서 개발되는 iOS등등도 포함해서. 뭐랄까 여전히 너무너무 고전적인데 전혀 발전하는 것 같지도 않는데 대부분의 사용자가 머물러 있는 윈도우즈 월드도 있다. 정말 볼 때마다 신기하다.

내가 2008년 경에 윈도우즈에서 완전히 벗어난 (가끔, 아니 일주일에 서너번 이상은 회사일 때문에 써야 되긴 하지만) 생활을 하게 되게끔 MacOS를 만나게 된 것은 행운이 아닐 수 없다. 사실 Linux가 좋다는 것은 그 전에도 알고 있었지만, 불편해서 일상 생활에서 사용하기엔 어려움이 많았다.

한참이 지난 지금도 빡시고 빠르게 해야 하는 일은 linux, 일상생활은 MacOS, 피치 못하게 office로 문서 편집을 요구 당할 때만 윈도우즈로 간다. 그것도 office webapp이 잘 안돌 때만.