洪民憙 (홍민희) 블로그

libsass

RailsConf 2012에서 Hampton Catlin라는 개발자(나는 처음 듣는데, Ruby 쪽에서는 유명할지도?)가 Sass의 C++ 구현을 발표했다: The Future of Sass. 이름은 libsass. C++로 구현되었으나 C 인터페이스를 함께 제공한다.

LESS가 Ruby에서 JavaScript 구현으로 넘어갔는데, 꽤 좋은 선택이었다고 생각한다. LESS는 웹 개발에 쓰이는 도구이고, 웹 세상에서는 JavaScript가 이식 가능한 어셈블리(portable assembly) 역할을 하고 있기 때문이다.

하지만 여전히 C는 모든 언어에 대해 중립적인 인터페이스 역할을 한다. JavaScript로 작성된 함수를 호출 가능한 언어는 손에 꼽히지만 C로 작성된 함수는 거의 모든 언어에서 직접적으로 호출 가능하다.

그리고 누가 금새 ctypes를 써서 Python 바인딩을 만들었다: SassPython. 잘 작동 안하길래 내가 다시 만들었다: libsass-python. PyPy에서도 잘 돌아간다.

하여간 잘된 것이, 지금까지 웹 개발을 할 때 LESS나 Sass/SCSS 따위를 쓰는데 Ruby나 node.js와 같은 Python 웹 개발 스택에 이질적인 별도 VM을 끌고와야 한다는 점이 항상 부담이었는데, 이제 배포를 간소하게 두면서도 Sass를 쓸 수 있게 되었다.

LESS나 다른 CSS 수퍼셋 언어들이 C 구현체를 만들지 않는 이상 나는 앞으로 Sass를 쓰게 될 것 같다.