나는 도구 들간의 공정한 비교를 시도하지만 실제로 어렵습니다.
Xtext는 코드 생성과 관련이 없습니다. 편집자와 파서를 만드는 데 사용됩니다.
Xtend2는 유사한 구문으로 Xpand의 후속 모델로 설계되었습니다. 그러나 코드 생성에 특별히 맞춰진 것이 아니라 코드 생성에도 잘 사용할 수있는 범용 언어로 만들어졌습니다. 다른 세대 엔진과의 주요 차이점은 소스 코드 레벨에서 작업한다는 것입니다 (기본적으로 Xtend2는 Java로 변환됩니다). 그리고 세대를 주도하는 자체 엔진을 제공해야합니다. 물론 Modeling Workflow Engine을 Xpand의 경우와 마찬가지로 이러한 이유가 있습니다.
간단한 코드 생성을 위해 Acceleo가 더 적합합니다. 구문은 코드 생성을위한 OMG 사양을 기반으로하며 코드 생성을 개발할 수있는 완전한 기능의 IDE를 제공합니다. 그러나 코드 생성 중에 복잡한 제어 구조가 필요한 경우 최상의 솔루션이 아닐 수도 있습니다.
Chris가 제안한대로 M2T-JET에 관해서는 매우 구체적인 요구 사항을 제외하고 투표 할 것입니다. 개발 지원은 훨씬 약합니다 (예 : 편집기). Xpand/Xtend/Acceleo의 규칙 기반 접근 방식과는 대조적으로 출력용 단일 템플릿을 사용한다는 생각에 기반합니다. 따라서 코드 생성 중에 성능이 어느 정도 향상되지만 템플릿을 이해하기가 더 어려워지는 경우가 있습니다.이 단락이 너무 부정적이므로이 단락을 무시하십시오.
EMF 모델 만 사용하는 경우 Acceleo와 Xtend 모두 코드 생성에 적합한 선택 일 수 있으므로 자신 또는 팀의 전문 지식과보다 구체적인 요구 사항에 따라 선택해야합니다. EMF 모델과 다른 데이터 소스를 모두 지원해야하는 경우 Acceleo가 최선의 선택이 아닙니다. 그러나 JET와 Xtend는 입력이 EMF 모델이라는 사실을 토대로하고 있지만 Java 코드를 쉽게 호출 할 수있는 방법을 제공합니다.
네, 맞습니다. 죄송합니다. 나는 JET에 대해 부정적이지 않기를 바랬다. 그 기능은 거기에 있습니다, 그것은 단지 나를 사용하기 더 귀찮은 느낌. 그 단락을 삭제 된 것으로 표시했습니다. –
은 xtend를 시도 할 것입니다. sven efftinge 역시 트위터에 나에게 제안했습니다.내가 모델을 입력으로 얻기 위해 어떤 일을해야한다는 것을 알지만, 사물의 웅장한 계획에서, 이것은 아마도 많은 일이 아니다. XTend가 XP보다 훨씬 빠르게 실행되는 곳을 읽었습니다. –
@ChrisGerken 저는 Swing 편집기 (심지어 CRUDS), ESB 중재 및 Spring/JPA/Flex 응용 프로그램을 생성하기 위해 Acceleo를 사용했습니다. JET가 Acceleo/XTend보다 복잡하다는 사실은 JET가 가능한 한 완벽하다는 사실과 충돌하지 않습니다. – Tcharl