2012. 1. 28. 16:56 IT
Cédric Champeau 가 만든 groovy 2.0에서 선보일 static type checking 에 대한 슬라이드 bit.ly/Ays6Dl 를 요약
 
아직 2.0은 진행중이지만 슬라이드를 통해 현재상태를 보여준다

STC의 목적은 빠른 오류 검출이다. : 동적 언어의 약점으로 지적되는  실행시점 오류를 컴파일 시점에 미리 체크하여 오류를 최소화하고자함. 그외 타이핑 오류, 할당오류등을 사전 검출

현재 제안중인 방식은
Class나 method에 TypeChecked annotation으로 지정하고 하는 것이다
(사실 완전히 정적타입체킹을 기본으로 정한다면 동적언어의 장점 전부를 포기하게 된다.)

물론 TypeChecking은 정적 컴파일을 의미하진 않는다. 또한 모든 groovy언어의 기능에 대해 검사해주지는 않는다
Metaclass변경이나 use, binding 사용성의 검사는 지원하지 못한다. 

Static compile의 목적은 성능, 타입안전성이다 
STC의 장점에 byte code size를 줄일수 있고 성능도 개선할수 있다 또한 메타클래스 변경으로 인한 사이드이펙트도 없다. 대신 groovy가 지닌  dynamic한 장점을 잃게된다 (dynamic method dispatch,meta class etc)

그래서 여전히 선택사항으로 남을것으로 보인다
CompileStatic annotation을 사용할 예정이다

앞으로 좀더 효과적으로 처리하기 위한 방법이나 개발중인 코드의 버그수정,개선이 진행되겠지만 groovy라는 매력적인 도구를 좀더 선택적으로 사용할수 있도록 하는 노력이 활발히 진행되고 있어 내심 반갑다.

이왕이면 어노테이션 수준외에도 보다 상위의 컴파일 옵션 상에서 정적타입체킹이나 정적컴파일을 선택할 수 있도록 해주는건 어떨까 싶다.










 
posted by smplnote