【问题标题】:Strongly typed client side languages?强类型的客户端语言?
【发布时间】:2012-06-30 01:29:24
【问题描述】:

强大的服务器端语言有很多选择,但我想不出任何强类型、真正强大的客户端语言。 Javascript 在表单、基本数学以及使用 AJAX 与服务器交互等方面做了很多工作,但与其他语言相比,它有其局限性。

我正在寻找一种能够进行图像处理或数据处理等原始内容的强类型客户端语言。或者,如果有 javascript 库可以帮助强制执行变量的数据类型,那也可能会起作用。

【问题讨论】:

  • 你的意思是静态类型的吗?
  • 我想你是在谈论 Flash,虽然 HTML5 正在快速入侵......
  • 静态输入是朝着正确方向迈出的一步。 Flash 已编译并需要插件,似乎即将淘汰。
  • @CoreyOgburn:你使用了“强大”这个词,却没有解释为什么 Javascript 不强大。没有人会知道您在寻找什么。
  • 什么是客户端语言?

标签: client-side strong-typing


【解决方案1】:

在浏览器中,就强类型而言,您可以使用带有GWT(静态)的Java、带有PyjamasDartOpa(静态)的Python(动态)和感谢emscripten,一堆可以从LLVM(C、C++、Objective C、Java、Ada 和许多其他语言)交叉编译为 javascript 的语言。

在性能方面你可以看看Google Native ClientJavascript typed arrays

我个人认为 Opa 是当今最有趣的网络语言之一。

【讨论】:

    【解决方案2】:

    Haxe 是一种静态类型语言,可以编译到各种客户端环境,例如JavaScript 或 Flash。

    【讨论】:

    • 呃,快闪……但是如果我选择了 javascript,我会检查一下。
    【解决方案3】:

    您可能想看看ST-JS。该工具允许您编写 javascript,但借用了 java 的语法和静态类型。这些工具提供了一系列准确反映标准 javascript 库的 Java 接口和类,以及一些其他常见的有用库(DOM、jquery 等)。然后,您可以用 java 编写源代码,ST-JS 翻译器会将静态类型的代码转换为普通的(最重要的是可读的)javascript 代码。 ST-JS 还与您想使用的任何其他 javascript 库兼容,只要您编写相应的 java 接口即可。

    ST-JS 的另一个优点是,由于您正在编写 java 代码,因此您可以使用 java 生态系统中所有真正强大的工具。所有 IDE 中的重构工具都可以开箱即用。 Findbugs、PWD、checkstyle 等静态分析工具也能很好地工作,并且在启用 ST-JS 的代码上非常准确。

    您可以将 ST-JS 视为介于 GWT(对您完全隐藏 javascript 标准库,并阻止您使用外部库)和一些 javascript 静态分析工具(例如 JSLint)之间的某个位置。

    【讨论】:

    • 它只是一个转译器。
    【解决方案4】:

    TypeScriptFlowDart 具有可选的静态类型。 TypeScript 是 JavaScript 的超集(您可以使用类型信息注释现有库); Dart 是一种独立的语言,伴随着不断增长的standard library

    【讨论】:

    • Dart 没有静态类型作为选项。您可以编写类型,但它们仅对您和 IDE 有意义,因为 VM 会将它们剥离为 cmets。
    【解决方案5】:

    Scala.js 是另一种选择。它的JavaScript interoperability 很重要。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-02
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2020-05-17
      • 2013-02-03
      • 2016-05-10
      • 1970-01-01
      相关资源
      最近更新 更多