2011-09-03 2 views
2

은 (http://groovy.codehaus.org에서) 그루비 1.x에서하고 (http://code.google.com/p/groovypptest에서) 그루비 ++ 두 개의 언어 또는 그들이 단지 하나 개의 언어의 두 부분입니까? 그 이유는 무엇?Groovy와 Groovy ++는 두 가지 언어 또는 하나의 언어입니까?

+0

[Groovy와 Groovy ++의 가능한 복제본입니까?] (http://stackoverflow.com/questions/5441482/groovy-and-groovy-are-they-different) –

+0

@Andrew "Groovy"와 " Groovy ++ "는 서로 다르며 언어가 한두 언어이든간에 두 가지 다른 질문입니다. 나는 그들이 두 가지 다른 언어라는 주장을 보았고 사람들이 대답에서 한 방향으로 또는 다른 방향으로 생각하는 모든 이유를 이끌어 내기를 희망합니다. –

+0

내 논리는 동일한 언어의 맛이 아닌 다른 언어인지 아닌지에 대한 질문은 학문적이다 (부정적인 의미에서). 이 질문에 대한 대답은 내가 링크 된 복제본에 이미 제공된 대답보다 더 많은 이해를 제공합니까? 더 근본적으로, 당신은 정말로 무엇을 찾으려고 노력하고 있습니까? –

답변

3

질문에 대한 답변은 Groovy ++ 웹 사이트에서 제공됩니다. 당신이 링크 한 페이지의 두 번째 문장입니다!

Groovy ++는 Groovy 프로그래밍 언어의 정적 유형 확장입니다.

Groovy ++는 Groovy의 확장입니다. Groovy를 기반으로 일부 또는 모든 클래스에서 실제 정적 유형 지정을 추가합니다. 목표는 성능 및 기타 개선 사항입니다. 다시 말하지만, 링크 한 페이지에는 완전한 설명이 있습니다.

최근 Groovy는 성능을 향상 시켰으며 Java 7의 invokeDynamic을 추가하면 곧 성능이 Groovy ++/Java와 거의 비슷해질 수 있습니다. 그 차이는 거의 무시할 수 있습니다.

+0

이 질문과 관련하여 다른 의견 (및 이유)이있을 수 있으므로이 답변을 남겨 두어 다른 답변을 권장합니다. –

+0

당신은 "최근 Groovy가 성능을 향상 시켰고 Java 7의 invokeDynamic을 추가하면 성능이 Groovy ++/Java (거의 차이가 거의 없음)만큼 빠름"이라고 썼습니다. Groovy는 아직 Java 7의 invokeDynamic을 사용하지 않으므로 Java 및 Groovy ++와 비교해 볼 때 성능이 여전히 느립니다. 통계는 다음과 같습니다. http://code.google.com/p/groovypptest/wiki/Performance –

+0

정확합니다. 최근 invokeDynamic의 이점에 대한 논의가 있었지만 아직 구현되지 않았습니다. Groovy 사용자 그룹과 나는 StackOverflow에 invokeDynamic의 이점에 대해 이야기하는 다른 질문을하고 있습니다. 나는 정확해야한다고 생각하는데, 필자는 ... * 퍼포먼스 **가 곧 ** 거의 빠름에 따라 ... * – OverZealous

1

소프트웨어 아키텍처 관점에서 Groovy ++는 Groovy의 확장 일 수 있습니다.

그러나 언어 수준을 살펴보면 : 동적 메서드 호출을 사용하고 해당 클래스에 @Typed으로 주석을 추가하면 어떻게됩니까? 컴파일러는 알려지지 않은 메소드에 대해 불평 할 것입니다.

@Typed 주석이있는 Groovy 클래스는 주석이 달린 Groovy 클래스가 아닌 동적 호출을 허용하지 않기 때문에 Groovy ++가 새로운 언어라고 생각합니다. 코드의 sematic을 변경합니다.

Groovy ++는 Groovy의 서브 세트입니다.

+0

서브셋? @Typed **로 주석 된 클래스는 ** 을 사용하여 대부분의 동적 호출을 허용합니다. Groovy ++는 컴파일 타임에 정적 유형으로 변환하려고합니다. 어쨌든, @Typed (TypePolicy.MIXED)를 사용하여 ** ** 모든 그루비 기능을 사용할 수 있습니다. – uhbif19

0

공식적으로 Groovy ++는 그루비 라이브러리입니다. Groovy ++은 특수 구문을 사용하지 않고 Java 주석을 사용합니다.

사실 Groovy ++는 Groovy 사투리입니다 (물론 새로운 언어는 아닙니다).

@Peter Groovy ++는 (내가 알기에, 좋은 코드 스타일의 이유로) Groovy libretys를 금지합니다.

하지만, 그루비 ++는 등 매우 복잡한 유형의 추론 시스템, 특성, 확장 방법, 함수형 프로그래밍 라이브러리, 많은 의미 확장을 제공

이 때문에

, 나는 그루비 ++는 단지 "일부 아닙니다 어떻게 생각 멋져요 " 당신이 말한대로.

+0

Groovy ++가 Groovy 언어 인 경우, Java가 Groovy로 어떻게 구현되는 것보다 특별한 구문이 없기 때문에? Java는 멋져요? 나는 lanaguage가 구문으로 축소 될 수 없다고 생각합니다. sematics도 고려해야하고 semic은 Groovy와 Groovy ++의 차이점을 만듭니다. – Peter

관련 문제