Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将另一种语言编译成Javascript的实用性?_Javascript_Compiler Construction - Fatal编程技术网

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

将另一种语言编译成Javascript的实用性?,javascript,compiler-construction,Javascript,Compiler Construction,最近发布了一些工具,例如和,它们允许人们使用Python或Scheme等语言编写代码并将其编译为Javascript 但这种工具有多实用 我可以看到调试是相当痛苦的,因为您必须调试编译的javascript代码本身,并将该代码中的任何错误与原始python/scheme/etc源代码中的相应行关联起来。即使使用pyjamas-d选项提供的智能堆栈跟踪,这看起来仍然很乏味 此外,jQuery等库使编写Javascript更加有趣和高效。但是对于许多开发人员来说,Javascript仍然是一种需要学

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

但这种工具有多实用

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

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


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

使用较多的Javascript编译器之一是。这会将Java编译为JavaScript,并且肯定会在生产中使用。该系统编写了googlewave的web界面

另外,Skydeck还写道,为了让他们更容易编写FireFox扩展。这也很有效

总之,如果你能编写一个好的编译器,那么就没有任何阻碍你编写一个好的JavaScript编译器的因素。

做到了(Java到JavaScript编译),而GWT被Google(duh)和许多其他人广泛使用,因此它肯定是实用的

由于代码是自动生成的,您——假设问题在您的代码中,而不是在编译器代码中,在99%的情况下都是正确的。

我相信,基于Java的可能是这类产品中最流行的,尽管我不会将其描述为“将Java编译为JS”,而是“生成JS代码”。虽然我个人也有一些疑问,更愿意直接编写JS,但我必须承认,它确实是一个非常实用且流行的工具,完全可以用于生产:我观察到,在内部,许多内容丰富且复杂到足以保证前端/后端分离的web应用程序越来越多地以Python后端和Java前端结束——后者专门允许GWT(当然也有很多Python前端和Python后端,但我认为这是一种趋势)

GoogleWave使用GWT,可能是迄今为止人们谈论最多的使用GWT的web应用程序;再加上列出的大量使用GWT的web应用程序,我认为这无疑证明了该方法是实用的(以及流行的;-)。它是否是最优的(与编写支持良好框架的实际javascript相比)是一个很难回答的问题。

作为另一个例子可以提到。HAXE是一种独立的语言,编译为Flash 6-10、JavaScript、NEKOVM,也可用于C++源代码。为什么这是可行的

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

如果你感兴趣,你可以开始阅读。

不知道为什么你不称之为编译;GWT编译器是一个完整的Java编译器,它在生成(优化的)Javascript之前进行语法和语义分析。编译器不需要以“低级”语言为目标。如果它只是“翻译”,我们就不会期望它进行这样的分析。(这些不是吓人的引语或其他名称,如果是这样的话,很抱歉!)