Scala.js vs Scala GWT用于客户端Web开发?

我正计划编写一个Web应用程序。 不过,我想在Scala中编写客户端和服务器端。 我应该选择Scala.js吗? 或者我应该去GWT。 有什么情况下我必须选择一个呢? 另外,除了二者之外,还有其他Scala框架可以用于客户端Web编程吗?


这两个都不应该使用。

  • ScalaGWT已经被放弃了一年多。
  • Scala.js是实验性的,需要你的用户下载一个16Mo库(它会有所改进,但除了某些游戏应用程序外,它是不可接受的)。
  • 图书馆已经缩小规模,目前这种说法不再是真实的。

    其他技术是可用的,但选择一个取决于您想要编写的应用程序的类型。 如果您打算使用模板技术 (如JSP或JSF)开发瘦客户端,则可以考虑使用Play模板,Lift,Scalatra ......

    为了帮助您考虑您的需求,以下是一些想法:

    你需要小部件和东西来设计你的UI,这些东西通常是面向组件和事件驱动的。 在这种情况下,FP不提供比OOP更多的优势。

    在一个标准的企业应用程序中,scala.js对于为js代码设计一个干净的函数库非常有用。 这种库肯定有很多东西可以提供,但它不会成为客户端代码的核心。 相反,小部件,MVC基础架构以及与后端集成的层将成为您将大部分时间用于处理的内容。

    GWT已经存在很长时间了。 我认为它是一种成熟和成熟的技术。 你必须学习一些调整和模式才能充分利用它的潜力,但在我看来,远远低于编写干净和可维护的js代码所需的。

    GWT并不需要你知道js(尽管我们都同意最好知道一些关于浏览器中发生的事情)。 如果你不知道你在编译什么,那么你不会用scala.js。

    如果你已经很熟悉JavaScript,那么直接输入你的Scala代码就好像它是某种支持scala的js一样。

    对于大型团队来说,使用GWT比使用js容易得多,因为您可以轻松地将代码分解为代码,同时有利于代码测试和重用。

    GWT绝对是面向对象(小部件/模型/视图/控制器)和事件驱动的。 如果您有计划以全功能的方式设计界面(针对游戏或特定应用),我认为这会妨碍您的设计。


    GWT

  • 成熟
  • 这是一个完整的工具包
  • 特定于GWT的模式和良好做法已有详细记录
  • 易于与java / scala后端集成
  • 发展规模优于大型团队
  • 最好如果你还不知道js
  • 面向对象,GWT的善良在那里(依赖注入,MVP,Async,i18n,JSR-303验证......)
  • 将优化和编译你的代码到一个小的js文件

  • Scala.js

  • 非常新的工作进行中
  • 不是一个工具包,而是一个编译器
  • 因此,您需要了解js的良好实践,设计模式和库,因为您的scala代码将直接与js(完全)交互
  • 需要自己编写/连接一个图层以与后端集成
  • 很难处理一个大团队
  • 不需要知道GWT :-)
  • 函数式编程,斯卡拉善良在那里(特质,模式,案例类,...)
  • 在提问时,需要一个16 Mo库

  • 最后的建议

  • 您是否需要小部件和UI组件之间的复杂交互,还是足以让您使用模板技术?
  • 使用ScalaGWT需要您自担风险。
  • 您可以使用scala.js进行js库设计,实验项目,游戏......您可以从GWT应用程序调用scala.js编译的js代码(如果您通过了16 Mo库)
  • 链接地址: http://www.djcxy.com/p/73969.html

    上一篇: Scala.js vs Scala GWT for client web development?

    下一篇: Bash prompt line wrapping issue