철수네 소프트웨어 세상 [본점]

소프트웨어와 관련이 있다면 뭐든지 – I no longer work for Microsoft.

플래시의 액션스크립트 버추얼머신 오픈소스화 소식

leave a comment »

Adobe – Adobe Press Room: For immediate release

어도비에서 버추얼머신의 소스코드를 모질라 재단에 기부하여 모질라재단에서는 Tamarin이라는 오픈소스 프로젝트를 시작한다고 합니다. 사이트의 로드맵에 의하면 다음의 목표를 가지고 개발된다고 합니다:

  • SpiderMonkey의 가비지 컬렉터와 Tamarin VM의 통합
  • SpiderMonkey의 컴파일러로 Tamarin용 코드를 생성
  • JIT(just-in-time) 컴파일러를 새 하드웨어에 포팅
  • ECMAScript 4 컴파일러의 자체 호스팅을 마무리

한때 플래시의 소스코드가 일반인에게 오픈된 적이 있었고, 그 이후로도 자격은 강화됐지만 라이센싱이 계속 가능한 것으로 알고 있습니다. 하지만, 그때의 코드는 지금과는 아마도 180도 다를 것이고, 그것을 떠나서 코드를 기부하여 MPL로 만든데에는, 예를 들어 ActionScript의 사용 영역을 넓히려는 그들의 전략을 떠나서, 그리 놀랍지 않다는 사실이 참 재미 있습니다. (PDF도 공공재인 것과 같이 하면서도 포맷을 쥐고 놓지 않는 상황을 보면 더욱 말이죠.)

어도비는 애초부터 기술(수많은 IP)로 승부를 하던 회사이기도 하지만 보수적인 이미지의 회사였고 그런 이미지의 회사의 모습 그대로 이런 코드 기부를 했다면 놀라웠겠죠. 수년전 CEO가 바뀌고, 판매하던 툴들의 진입장벽이 낮아지는 것을 잘 파악하고서는 매크로미디어를 인수하고 클라이언트 전략이 수립되고 헐떡일 때인데, 근래 Adobe Labs를 열고 Apollo나 Spry, Soundbooth등을 보여주는 결실을 맺기 위해 분주하면서도 이전의 이미지 중에서도 바꿀 것은 바꾸고 좋은 모습을 유지하는 모습이 멋지기도 하기에 소식은 오히려 놀랍지가 않습니다. 게다가 옛날부터 잘하던 것을 버리지 않고 계속 잘하고 있기에 재미가 있습니다. 그런 식으로 자신들의 로드맵을 사용자의 머릿속에 천천히 그려질 수 있도록 배려해주는 시류에 맞는 모양도 보입니다.

확고할 것만 같은 플래시의 점유율에도 불구하고 이런 공격적인 방식을 쓰는 것은 아마도 포토샵이 절대적이었던 시절의 경험일 것입니다. 지금도 포토샵의 점유율이 낮은 것은 아니지만, 아직은 플래시를 통해서 이루어야할 그리고 이룰 수 있는 것들이 너무나 많은데 지금의 상태 그대로라면 이전의 실수를 다시 되풀이하는 것이 되겠죠. CEO인 Bruce Chizen도 주주의 승인으로 목표달성 보너스 이외에 매년 연봉이 올라 처음 수십만불이 이제는 수백만불이 되었다고 하니 어도비는 아직 건재한 듯 합니다. 이정도 규모의 회사임에도 조용한 듯 하면서도 실속은 잘 차리고 있네요. 이야기가 샜네요.

런타임이 동적 언어를 수용하기 위해서 뿐만 아니라 Sandbox 형태이기 위해서 혹은 자체적인 메모리 모델을 가지고 있기 위해서 최근에는 VM이 필수적인 형태입니다. Perl(Parrot)도 VB(VBRuntime)도 Java(JVM)도 Python(PVM)도 Mono도 모두 VM을 기반으로 구현된 아키텍쳐를 가집니다. VM마다 특징도 다르고 구현방식도 다르기 때문에 Detail도 다르고 결국 그 차이는 이를 어렵게 하는 요소가 되지만, 언어들은 VM에 종속적인 것은 아니기 때문에 한 언어가 여러 VM에서 돌아가는 것은 문제가 아닙니다. 단지 적합성 여부는 따져봐야 할 일이기는 하지만요. 예를 들어, Ruby의 런타임으로 JVM을 사용하는 것도 있고, CLI를 사용한 것도 있고, 언어 자체를 위해 구현한 VM을 사용하는 경우도 있습니다. 사이트에는 큰 목표가 JS2의 지원으로 써있고 이 Tamarin 위에 JS2를 얹는 것이 그 목표가 되겠습니다.

로드맵에 의하면 Mozilla 기존의 JS 엔진은 GC기반 범용 JIT VM이 아니라 XPCOM으로 커스텀 Sandbox를 구현한 것 같습니다. 한마디로 필요한 부분들을 컴포넌트(XPCOM 객체)로 일일이 만들어서 JS로 생성되는 모든것을 RefCount하면서 XPConnect로 엮인 모습인 것 같습니다. 사이트에 의하면 Adobe에서는 Tamarin의 결과를 그대로 Flash에서 다시 사용하겠다고 한 것으로 미루어 보건데 JS2의 런타임으로 이런 XPConnect 방식을 버리고(?) Tamarin으로 가고자 하는 이야기(조건?)도 오간 것 같습니다. 단순한 실험 퀄리티가 아니라 그것보다 심각한 구현이라는 사실에서 단순하게 추측한 것이지만요. 어차피 Flash의 업그레이드는 자주 있을 필요가없기에 Mozilla의 스케줄에 민감할 필요도 없을테고, 퀄리티 컨트롤만 잘해주면 어도비는 꿩먹고 알먹는 것이 될 수 있겠습니다. Nice move인 것 같습니다.

Written by charlz

2006년 11월 8일 , 시간: 오전 3:14

Uncategorized에 게시됨

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: