强大的服务器端语言有很多选择,但我想不出任何强类型,真正强大的客户端语言。 Javascript在表单,基本数学以及与AJAX等服务器交互方面做了很多工作,但与其他语言相比,它有其局限性。
我正在寻找能够进行图像处理或数据处理的强类型客户端语言,这样的原始内容。或者,如果有javascript库可以帮助实施变量的数据类型,那么这也可能有用。
答案 0 :(得分:5)
在浏览器中,就强类型而言,您拥有带GWT(静态)的Java,带有Pyjamas的Python(动态),Dart,{ {3}}(静态)和一堆语言,可以通过Opa从LLVM(C,C ++,Objective C,Java,Ada和许多其他人)交叉编译成javascript。< / p>
在效果方面,您可以查看emscripten和Google Native Client。
我个人认为Opa是当今最有趣的网络语言之一。
答案 1 :(得分:2)
Haxe是一种静态类型语言,可编译到各种客户端环境,例如: JavaScript或Flash。
答案 2 :(得分:1)
TypeScript,Flow和Dart具有可选的静态类型。 TypeScript是JavaScript的超集(您可以使用类型信息注释现有库); Dart是一种单独的语言,随着standard library的增长而增加。
答案 3 :(得分:1)
您可能需要查看ST-JS。这个工具允许你编写javascript,但借用java的语法和静态类型。这些工具提供了一堆Java接口和类,它们可以反映标准的javascript库,以及一些其他常见的有用库(DOM,jquery等等)。然后,您可以在java中编写源代码,并且ST-JS翻译器会将该静态类型代码转换为普通的(最重要的是可读的)javascript代码。只要你编写相应的java接口,ST-JS也可以与你想要使用的任何其他javascript库兼容。
ST-JS的另一个优点是,既然你正在编写java代码,你可以使用java生态系统中所有非常强大的工具。所有IDE中的重构工具都可以直接使用。静态分析工具(如Findbugs,PWD,checkstyle)也非常有效,并且在启用ST-JS的代码上非常准确。
您可以将ST-JS视为GWT之间的中间位置(完全隐藏了您的javascript标准库,并阻止您使用外部库)和一些javascript静态分析工具(如JSLint)。
答案 4 :(得分:0)
Scala.js是另一种选择。它的JavaScript interoperability非常重要。