编译另一种语言为Javascript的实用性?

4

最近推出了一些工具,比如pyjamasScheme2js,可以将Python或Scheme等语言的代码编译成Javascript。

但是,这样的工具有多实用呢?

我认为调试可能会很痛苦,因为你需要调试已编译的Javascript代码,并将其中的任何错误与原始的Python/Scheme等源代码中的相应行相关联。即使使用像pyjamas -d选项提供的智能堆栈跟踪,这仍然很麻烦。

此外,jQuery等库使编写Javascript更加有趣和高效。但对于许多开发人员来说,Javascript仍然是一门新的语言。

有没有人在生产环境中使用过编译后的Javascript?对于编译成Javascript而不是直接编写Javascript代码的实用性有什么建议或评论吗?

5个回答

2

一个使用较多的JavaScript编译器是GWT。它将Java编译成JavaScript,并且一定在生产环境中使用。Google Wave的Web界面就是用这个系统编写的。

此外,Skydeck编写了Ocamljs,以便于他们编写FireFox扩展。这也表现得非常不错。

总之,如果你能够编写出好的编译器,就没有什么阻碍你编写出好的JavaScript编译器。


2
我相信基于Java的GWT可能是这类产品中最受欢迎的,尽管我不会将其描述为“将Java编译为JS”,而是“生成JS代码”。虽然我个人也有一些疑虑,更愿意直接编写JS,但我必须承认它确实是一个极其实用和流行的工具,完全准备好了:我观察到,许多足够复杂以需要前后端分离的Web应用程序在内部越来越多地以Python后端和Java前端的形式出现——后者特别是为了允许使用GWT(当然也有大量的Python前端和Python后端,但我认为这是一个趋势)。
Google Wave使用GWT,可能是迄今为止使用它最广泛谈论的Web应用程序;加上列在这里的大量使用GWT的Web应用程序,我认为这已经毫无疑问地证明了这种方法是实用的(以及流行的;-)。是否比使用良好框架支持的实际JavaScript编写更优化,则是一个更难回答的问题。

2
不确定为什么你不称其为编译;GWT编译器是一个完整的Java编译器,因为它在生成(优化的)Javascript之前进行语法和语义分析。编译器不一定要针对“低级”语言。如果只是“翻译”,我们就不会期望它执行这样的分析。 - Zach Snow
(这些不是引号或其他称呼,如果有误解请见谅!) - Zach Snow


0

Google Web Toolkit可以将Java编译成Javascript,GWT被谷歌(当然)和许多其他公司广泛使用,因此它绝对是实用的。

由于代码是自动生成的,所以您在Java中调试问题 - 假设问题出现在您的代码中而不是编译器代码中,在99%的情况下是正确的。


0

另一个例子是Haxe。Haxe是一种独立的语言,可以编译成Flash 6-10、JavaScript、NekoVM以及C++源代码。这有什么实际用途呢?

  • 您可以使用语言本身无法提供的功能
  • 在多个平台上重新编译代码(例如:在JavaScript和服务器端进行表单检查)
  • 有一个用于平台间通信的远程包,它非常聪明。
  • 通过编译器自动完成
  • 编译时类型检查

如果您感兴趣,可以从这里开始阅读。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接