2014-01-16 2 views
5

GWT와 javascript에는 여러 게시물이 있지만 GWT와 타이프 스크립트를 찾을 수 없습니다.GWT 대 typescript

Java 코드가 약 20,000 개 있습니다. 브라우저 클라이언트로 이동해야합니다. 그러나 내가 그 길을 가면 GWT에서 다시 컴파일 만하는 것이 아닙니다. 해당 코드에서 참조해야 할 오브젝트가 많이 있습니다 (기존 코드는 더 큰 프로그램의 일부 임).

또한 널리 사용되는 일부 하위 수준 클래스가 변경되고 있습니다. 큰 변화는 아니지만이 수업은 많은 곳에서 사용됩니다. 그래서 그것은 정말로 어느 쪽의 방법이라도 고쳐 쓴다. 그래도 GWT에 도달하면 조금 더 부드럽게 다시 작성하지만 다시 작성해야합니다.

이 코드에는 GUI 또는 I/O 구성 요소도 없습니다. 그것은 클라이언트에서 자바 스크립트에 의해 호출되고 자바 스크립트 코드에 의해 생성되고 사용되는 자바 스크립트 객체를 처리하기 위해서만 사용됩니다.

내 질문에 이르게합니다. GWT와 타이프 스크립트의 장단점은 무엇입니까?

+2

두 가지 옵션이 크게 다르지 않습니까? GWT는 완전한 툴킷이고 TypeScript는 다른 구문 설탕과 함께 JavaScript로 입력됩니다. – WiredPrairie

+1

이것은 gwtproject.com에서 가져온 것입니다. 그 목표는 개발자가 브라우저 단점, XMLHttpRequest 및 JavaScript의 전문가가 아니어도 고성능 웹 응용 프로그램을 생산적으로 개발할 수있게하는 것입니다. Java에서 이미 코드가 GWT와 함께 사용된다고 말하는 것입니다. 그것은 dissapoint하지 않습니다. –

답변

1

개발자와 개발자가 Java에 익숙하면 GWT가 더 나은 옵션 일 수 있습니다. 또한 기존 Java 코드를 변경하지 않고 재사용 할 수 있습니다. 반면 TypeScript로 이식하면 모든 코드를 다시 작성해야합니다.

불행히도, 난 GWT에 대해 잘 모르겠지만, 타이프의 다음 판매 포인트를 제공 할 수 있습니다 :

  • 그것은 자바 스크립트의 상위 집합입니다; 이는 JavaScript에 익숙한 개발자들 (정적 타이핑에 대한 경험이 있다고 가정)을 개발하는 것이 더 쉽다는 것을 의미합니다.
  • 툴링은 비 MS 환경에서도 꽤 좋습니다. WebStorm과 Grunt를 사용하여 개발 및 구축합니다. WebStorm의 자동 완성은 꽤 좋습니다.
  • 코드에서 "this"바인딩 오류의 기회를 줄이는 ES6 제안의 "Arrow functions"이 통합되어 있습니다.
  • 원본 소스 맵이 없어도 JS 소스는 TypeScript 소스 (대개 유형 제외)에서 크게 변경되지 않으므로 코드는 최신 브라우저에서 디버그하기가 쉽습니다. 크롬에서의 소스 맵 디버깅은 꽤 좋지만 JS를 직접 디버깅하는 일은 거의 없다.
  • 정적 유형 지정을 다루지 않으려면 변수를 : any로 표시하거나 유형을 생략하고 효과적으로 평온한 자바 스크립트로 돌아갈 수 있습니다 (일부 사람들은 어느 것이 무시할 수 있는지 쉽게 볼 수 있습니다. 이러한 유형의 시스템은 단점으로). 여기

내가 관찰 한 타이프의 몇 가지 단점이 있습니다

  • (나는 대부분의 비 사소한 프로젝트를 구축, 빠르게는 여전히 몇 초를 받고있다 이해하지만) 컴파일러는 slowish입니다 .
  • 비 -MS IDE는 위에서 언급 한 것처럼 괜찮은 편이지만 더 좋을 수 있습니다. WebStorm은 괜찮지 만 리팩토링과 같은 일부 도구 (예 : 함수 이름 바꾸기)가 항상 제대로 작동하지는 않습니다.
  • 다양한 형태의 모듈 가져 오기는 처리해야 할 고통이 될 수 있지만 대부분이 표준 가져 오기 형식이없는 Javascript의 기존 문제입니다.
3

잘 이해한다면 이전에 GUI없이 브라우저의 서버/Java 애플릿에서 실행 된 Java 코드를 실행하고 싶습니다.Typescript와 (

  • 당신은 필요가 Java 기존 코드를, 그래서 GWT은 자연적으로 적합 : 나는 그래서 GWT의 장점을 (어쩌면 그들 중 일부는 Typescript에 적용) 강조 할 것이다 Typescript을 사용하지 않은

    모든 것을 다시 써야합니다.)

  • super-source을 사용하여 Browser에서 작동하지 않는 클래스 및 패키지를 재정의 할 수 있습니다. 브라우저, 서버, 자바 애플리케이션 등에서 실행할 수있는 코드베이스가 많거나 적을 것이기 때문에 엄청나게 큽니다. 예를 들어 새로운 Google 드라이브 스프레드 시트 (웹 앱, Android 앱 등)는 기술.
  • GWT는 tree-shaking을 지원하며, 따라서 연주하는 비용은 당신이 정말로 인해 정적 유형

가장 큰 장점은 코드의 대부분의 것을 할 수 있습니다에

  • 장점 (리팩토링, 유형 검사)를 사용하여 어떤만을위한 것입니다 "plain Java"에서 테스트하십시오. 에뮬레이션이 필요한 클래스 만 브라우저에서 테스트해야합니다. SuperDevModeSourceMaps을 사용하여 브라우저에서 직접 디버그 할 수 있습니다.

    최근 열린 GWT.create 회의는 GWT에 대한 흥미로운 향후 개선 사항을 강조했습니다. 컴파일러를 최적화하여 javascript 엔진 (객체 레이아웃 등)에 최적화 된 javascript 코드를 생성 할 계획이 있습니다.
    특히 컴퓨터 집중적 인 작업의 경우 성능에 도움이되는 typed arrays을 사용하는 방법도 있습니다.

    가능하게는 GWTasm.js을 타겟팅 할 수 있습니다. 그러면 자연스러운 성능을 얻을 수 있습니다.