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

时间:2009-10-22 15:16:27

标签: javascript compiler-construction

最近发布了一些工具,例如pyjamasScheme2js,它们允许用Python或Scheme等语言编写代码并将其编译为Javascript。

但这样的工具有多实用?

我可以看到调试非常痛苦,因为您必须调试编译的javascript代码本身,并将该代码中的任何错误与原始python / scheme / etc源代码中的相应行相关联。即使使用智能堆栈跟踪(例如睡衣-d选项提供),这仍然显得乏味。

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

有没有人在生产环境中使用已编译的Javascript?有关编译到Javascript的实用性的任何建议或评论,而不是直接在Javascript中编写代码吗?

5 个答案:

答案 0 :(得分:2)

使用频率较高的JavaScript编译器之一是GWT。这将Java编译为JavaScript,并且绝对用于生产。 Google Wave的网络界面是在这个系统中编写的。

此外,Skydeck写了Ocamljs,以便他们轻松编写FireFox扩展。这也很有效。

总之,如果你能编写一个好的编译器,就没有showstoppers阻止你编写一个好的JavaScript编译器。

答案 1 :(得分:2)

我相信基于Java的GWT可能是这种类型中最受欢迎的产品,不过我不会将其描述为“将Java编译为JS”而是“生成JS代码”。虽然我个人分享了一些疑虑,并且宁愿直接编写JS,但我不得不承认它确实是一个非常实用且流行的工具,完全可以投入生产:我在内部观察到许多富有的Web应用程序并且足够复杂以保证前端/后端拆分越来越多地作为Python后端和Java前端结束 - 后者专门用于允许GWT(当然也有大量的Python)前端,以及大量的Python后端,但我认为这是一种趋势。)

Google Wave使用GWT,可能是到目前为止使用它最受关注的网络应用程序;与here列出的大量使用GWT的网络应用程序一起,我认为它毫无疑问地确定了该方法实用(以及流行的;-)。是否最佳(与支持良好框架的实际javascript编写相比)是一个难以回答的问题。

答案 2 :(得分:0)

Google Web Toolkit做到了(Java到Javascript编译),而且GWT被谷歌(duh)和其他许多人广泛使用,所以它绝对是实用的。

由于代码是自动生成的,因此debug problems in Java - 假设问题出现在代码中而不是编译器代码中,99%的情况都是如此。

答案 3 :(得分:0)

另一个例子可以提到Haxe。 Haxe是一种独立的语言,可编译为Flash 6-10,JavaScript,NekoVM以及c ++ - 源代码。为什么这很实用?

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

如果您有兴趣,可以开始阅读here

答案 4 :(得分:0)