클라이언트 웹 개발을위한 Scala.js 대 Scala GWT?

user1980875

웹 애플리케이션을 작성할 계획입니다. 그러나 Scala에서 클라이언트 측과 서버 측을 모두 작성하고 싶습니다. Scala.js를 선택해야합니까 ? 아니면 GWT 로 가야합니까 ? 다른 하나를 선택해야하는 경우는 무엇입니까? 또한 두 가지 외에 클라이언트 웹 프로그래밍에 사용할 수있는 다른 Scala 프레임 워크가 있습니까?

오 통렛

이 두 가지 중 어느 것도 사용해서는 안됩니다.

  • ScalaGWT는 1 년 넘게 폐기되었습니다.
  • Scala.js는 실험적이며 사용자가 16Mo 라이브러리를 다운로드해야합니다 (개선되지만 일부 게임 앱을 제외하고는 허용되지 않음).

라이브러리의 크기가 축소되었으며이 진술은 더 이상 사실이 아닙니다.

다른 기술을 사용할 수 있지만 하나를 선택하는 것은 작성하려는 앱의 종류에 따라 다릅니다. 템플릿 기술 (예 : JSP 또는 JSF)을 사용하여 씬 클라이언트를 개발하려는 경우 Play 템플릿, Lift, Scalatra 등의 사용을 고려할 수 있습니다 .

필요 사항을 고려하는 데 도움이되는 몇 가지 생각은 다음과 같습니다.

UI를 디자인하려면 위젯과 물건이 필요하며 이러한 것들은 일반적으로 구성 요소 지향 적이고 이벤트 중심입니다. 이러한 경우 FP는 OOP에 비해 많은 이점을 제공하지 않습니다.

표준 엔터프라이즈 애플리케이션에서 scala.js는 js 코드를위한 깨끗한 기능 라이브러리를 설계하는 데 유용합니다. 이러한 종류의 라이브러리는 확실히 제공 할 것이 많지만 클라이언트 측 코드의 핵심은 아닙니다. 대신 위젯, MVC 인프라 및 백엔드와의 통합을위한 레이어가 작업에 대부분의 시간을 소비하게 될 것입니다.

GWT는 오랫동안 사용되어 왔습니다. 나는 그것이 성숙하고 입증 된 기술이라고 생각합니다. 잠재력을 완전히 활용하려면 몇 가지 조정과 패턴을 배워야하지만 제 생각에는 깨끗하고 유지 관리 가능한 js 코드를 작성하는 데 필요한 것보다 훨씬 적습니다.

GWT는 js를 아는 것을 요구하지 않습니다 (우리 모두가 브라우저에서 일어나는 일에 대해 조금 아는 것이 항상 가장 좋다는 데 동의하지만). 당신이 무엇을 컴파일하는지 모른다면 scala.js로 멀리 가지 않을 것입니다.

이미 자바 스크립트를 잘 알고 있다면 마치 일종의 스칼라 지원 js 인 것처럼 스칼라 코드를 직접 입력하는 것이 더 쉬울 것입니다.

코드를 쉽게 고려하여 코드 테스트와 재사용을 동시에 수행 할 수 있으므로 대규모 팀이 js보다 GWT로 작업하는 것이 훨씬 쉽습니다.

GWT는 확실히 객체 (위젯 / 모델 / 뷰 / 컨트롤러) 지향적이고 이벤트 중심입니다. 완전히 기능적인 방식으로 인터페이스를 디자인 할 계획이 있다면 (게임이나 매우 특정한 앱의 경우) 디자인에 방해가 될 것이라고 생각합니다.


GWT

  • 성숙한
  • 본격적인 툴킷
  • GWT 관련 패턴 및 모범 사례는 잘 문서화되어 있습니다.
  • 자바 / 스칼라 백엔드와의 손쉬운 통합
  • 대규모 팀에 비해 개발 규모가 훨씬 큽니다
  • 아직 js를 모르는 경우 가장 좋습니다.
  • 객체 지향, GWT 장점이 있습니다 (종속성 주입, MVP, Async, i18n, JSR-303 검증 ...)
  • 코드를 최적화하고 작은 js 파일로 컴파일합니다.

Scala.js

  • 상당히 새롭고 진행중인 작업
  • 툴킷이 아니라 컴파일러 .
  • 따라서 스칼라 코드가 js (아주)와 직접 상호 작용하므로 js 모범 사례, 디자인 패턴 및 라이브러리에 대해 알고 있어야합니다.
  • 백엔드와의 통합을 위해 레이어를 작성 / 연결해야합니다.
  • 큰 팀을 처리하기가 훨씬 더 어렵습니다.
  • GWT를 알 필요가 없습니다 :-)
  • 함수형 프로그래밍, Scala의 장점이 있습니다 (특성, 패턴, 케이스 클래스 등).
  • 질문을 받았을 때 16Mo 라이브러리가 필요했습니다.

최종 조언

  • UI 구성 요소간에 위젯과 복잡한 상호 작용이 필요합니까 아니면 템플릿 기술을 사용하기에 충분합니까?
  • 자신의 책임하에 ScalaGWT사용하십시오 .
  • js 라이브러리 디자인, 실험 프로젝트, 게임 등에 scala.js를 사용할 수 있습니다. GWT 앱에서 scala.js에서 컴파일 된 js 코드를 호출 할 수 있습니다 (16 Mo 라이브러리를 통과 한 경우).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Scala 스프레이 클라이언트는 AKKA ActorRefFactory에 대한 암시 적 정의

분류에서Dev

클라이언트에 대한 웹 훅용 Amazon SNS (HTTP)

분류에서Dev

Javascript에 대한 .NET 웹 클라이언트 요청 코드

분류에서Dev

SharePoint 2007 웹에 대한 클라이언트 인증서 인증

분류에서Dev

웹 서비스에 대한 Jersey 클라이언트 요청

분류에서Dev

웹 API-클라이언트에 대한 올바른 응답

분류에서Dev

mailto 링크에 대한 웹 기반 메일 클라이언트 대 로컬 메일 클라이언트 감지

분류에서Dev

Scala.js 웹로드 js 라이브러리가 없습니까?

분류에서Dev

Android 클라이언트 앱 개발자를 참여시키지 않고 일부 웹 사이트에 대한 공개 / 개인 API를 구축하는 방법

분류에서Dev

로컬 개발, 웹을 통해 클라이언트 표시

분류에서Dev

스프링 시큐리티 5.1 - 웹 클라이언트와 클라이언트 자격 증명 흐름에 대한 토큰을 얻으십시오

분류에서Dev

웹 서비스에 대한 클라이언트 스텁을 만들 수 없습니다.

분류에서Dev

SSL / TLS C # 웹 서비스 클라이언트에 대한 보안 채널을 설정할 수 없습니다.

분류에서Dev

데이터 변경시 웹 클라이언트 다시로드 페이지에 대한 Parse.com

분류에서Dev

scala udf가 flink SQL 클라이언트에서 "java.lang.ClassNotFoundException"을 불평합니다.

분류에서Dev

Scala의 하위 클래스에 대한 트레이 트의 기본 유형 클래스 구현

분류에서Dev

GWT 클라이언트 코드의 휘발성 변수

분류에서Dev

SSL 인증서가있는 Scala https 클라이언트

분류에서Dev

Asp.net 웹 API 2 웹 클라이언트와 웹 서버 개발 분리

분류에서Dev

Scala를 사용한 Rest 웹 서비스

분류에서Dev

봄 웹 클라이언트 - HTTP 오류 상태에 대한 사용자 정의 응답 콜백

분류에서Dev

클라이언트 측에서 웹 응용 프로그램에 대한 지문 스캔 구현

분류에서Dev

여러 클라이언트에 서비스를 제공하는 웹 API에 대한 Application Insights 전략

분류에서Dev

Play!를 이용한 웹 개발 뼈대

분류에서Dev

웹 애플리케이션을위한 GWT- 이력 관리

분류에서Dev

웹 서비스 클라이언트-정적 대 동적

분류에서Dev

웹 API 클라이언트 싱글 톤 대 NSUserDefaults의 토큰

분류에서Dev

Sitecore Services 클라이언트 대 Sitecore 웹 서비스 대 Sitecore 항목 웹 API

분류에서Dev

Scala의 케이스 클래스에 대한 세터

Related 관련 기사

  1. 1

    Scala 스프레이 클라이언트는 AKKA ActorRefFactory에 대한 암시 적 정의

  2. 2

    클라이언트에 대한 웹 훅용 Amazon SNS (HTTP)

  3. 3

    Javascript에 대한 .NET 웹 클라이언트 요청 코드

  4. 4

    SharePoint 2007 웹에 대한 클라이언트 인증서 인증

  5. 5

    웹 서비스에 대한 Jersey 클라이언트 요청

  6. 6

    웹 API-클라이언트에 대한 올바른 응답

  7. 7

    mailto 링크에 대한 웹 기반 메일 클라이언트 대 로컬 메일 클라이언트 감지

  8. 8

    Scala.js 웹로드 js 라이브러리가 없습니까?

  9. 9

    Android 클라이언트 앱 개발자를 참여시키지 않고 일부 웹 사이트에 대한 공개 / 개인 API를 구축하는 방법

  10. 10

    로컬 개발, 웹을 통해 클라이언트 표시

  11. 11

    스프링 시큐리티 5.1 - 웹 클라이언트와 클라이언트 자격 증명 흐름에 대한 토큰을 얻으십시오

  12. 12

    웹 서비스에 대한 클라이언트 스텁을 만들 수 없습니다.

  13. 13

    SSL / TLS C # 웹 서비스 클라이언트에 대한 보안 채널을 설정할 수 없습니다.

  14. 14

    데이터 변경시 웹 클라이언트 다시로드 페이지에 대한 Parse.com

  15. 15

    scala udf가 flink SQL 클라이언트에서 "java.lang.ClassNotFoundException"을 불평합니다.

  16. 16

    Scala의 하위 클래스에 대한 트레이 트의 기본 유형 클래스 구현

  17. 17

    GWT 클라이언트 코드의 휘발성 변수

  18. 18

    SSL 인증서가있는 Scala https 클라이언트

  19. 19

    Asp.net 웹 API 2 웹 클라이언트와 웹 서버 개발 분리

  20. 20

    Scala를 사용한 Rest 웹 서비스

  21. 21

    봄 웹 클라이언트 - HTTP 오류 상태에 대한 사용자 정의 응답 콜백

  22. 22

    클라이언트 측에서 웹 응용 프로그램에 대한 지문 스캔 구현

  23. 23

    여러 클라이언트에 서비스를 제공하는 웹 API에 대한 Application Insights 전략

  24. 24

    Play!를 이용한 웹 개발 뼈대

  25. 25

    웹 애플리케이션을위한 GWT- 이력 관리

  26. 26

    웹 서비스 클라이언트-정적 대 동적

  27. 27

    웹 API 클라이언트 싱글 톤 대 NSUserDefaults의 토큰

  28. 28

    Sitecore Services 클라이언트 대 Sitecore 웹 서비스 대 Sitecore 항목 웹 API

  29. 29

    Scala의 케이스 클래스에 대한 세터

뜨겁다태그

보관