最近发布了一些工具,例如pyjamas和Scheme2js,它们允许用Python或Scheme等语言编写代码并将其编译为Javascript。
但这样的工具有多实用?
我可以看到调试非常痛苦,因为您必须调试编译的javascript代码本身,并将该代码中的任何错误与原始python / scheme / etc源代码中的相应行相关联。即使使用智能堆栈跟踪(例如睡衣-d选项提供),这仍然显得乏味。
此外,jQuery等库使编写Javascript更加有趣和高效。但对于许多开发人员来说,Javascript仍然是一门新学习的语言。
有没有人在生产环境中使用已编译的Javascript?有关编译到Javascript的实用性的任何建议或评论,而不是直接在Javascript中编写代码吗?
答案 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 ++ - 源代码。为什么这很实用?
如果您有兴趣,可以开始阅读here。
答案 4 :(得分:0)