提前锁票 InfoQ 最具价值感的视频栏目 | InfoQ 大咖说 了解详情
写点什么

GopherJS:一个将 Go 编译成 JavaScript 的编译器

2014 年 10 月 27 日

GopherJS 将 Go 代码编译成纯 JavaScript 代码,旨在使开发人员可以使用 Go 语言编写前端代码,并且可以在所有浏览器中运行。借助 GopherJS,开发人员可以充分利用 Go 语言的类型系统、编译时检查和重构能力,这对于大型项目而言尤其有用。

GopherJS 由 Richard Musiol 在 2013 年 8 月创建,它有以下四个设计目标:

  • 生成的代码要有良好的性能
  • 为了便于调试,Go 代码与生成的 JavaScript 代码要类似;
  • 要与现有库兼容
  • 生成的代码量要小。

Joseph Hager 是 GopherJS 项目的一名开发人员。他告诉InfoWorld ,GopherJS 与Dart 试图完成类似的工作。但按照设计,Go 是一门系统编程语言,而Dart 构建之初就是以满足Web 需求为出发点,并考虑了Web 的限制。此外,GopherJS 还支持Go 语言的 Goroutines 概念,以一种变通的方式消除了 JavaScript 的并发限制。

今年早些时候,曾有报道指出从JavaScript 迁移到Dart 的好处。虽然有人对此表示怀疑,但Google 在Dart 语言本身及Dart VM 上还在不断地做出努力。而在看到InfoWorld 的报道后,则有人认为 GopherJS 让 Go 比 Dart 更有优势

此外,在 Hacker News 上,有用户对GopherJS 所能实现的功能表示赞叹,他提到了 GopherJS Playground DOM 绑定 XHR 绑定,并给出了几个应用案例,其中包括:

另外,Hager 还说,GopherJS 没有正式的开发版本,他希望这能使更多的开发人员参与进来,为 GopherJS 创建强大的库和框架。


感谢崔康对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 10 月 27 日 08:172723
用户头像

发布了 1008 篇内容, 共 310.5 次阅读, 收获喜欢 278 次。

关注

评论

发布
暂无评论
发现更多内容

强势入局,区块链专利将成为银行下一个战场?

CECBC区块链专委会

区块链 金融 银行

区块链之物流产业上链解决痛点

CECBC区块链专委会

区块链 供应链

魅力非凡的半导体电路行业

老壳有点爽

芯片 集成电路 IC 芯片营销

半导体行业个人理解

老壳有点爽

芯片 半导体 集成电路 IC

sed语言学习技巧(1)

老壳有点爽

vim 编程语言 sed 脚本语言

git回退版本,再返回最新分支git pull失败的解决经验

良知犹存

git

集成电路设计概括

老壳有点爽

芯片 集成电路 IC

数字电路后端设计流程

老壳有点爽

设计 flow 集成电路 IC

成都信息工程大学的区块链工程成全国首个区块链工程本科专业

CECBC区块链专委会

区块链技术 区块链工程

最初芯片国产化是怎么来的?

老壳有点爽

芯片 集成电路 国产化 替代

芯片行业的主要生意模式

老壳有点爽

芯片 集成电路 IC

中国大陆芯片行业发展概况

老壳有点爽

芯片 集成电路 IC

芯片行业基本生态:设计生产封装的行业分工

老壳有点爽

芯片 集成电路 IC

Verilog 的debug技巧(1)

老壳有点爽

芯片 集成电路 IC Verilog 电路

商业计划书制作(3):写作过程中要思考的问题

老壳有点爽

创业 财富自由 商业计划书

商业计划书制作(4):自我评估&投资商关注重点

老壳有点爽

创业 财富自由 商业计划书

商业计划书制作(6):商业模式

老壳有点爽

创业 商业模式 财富自由 商业计划书

商业计划书制作(7):编写规范及常见内容

老壳有点爽

创业 财富自由 商业计划书

商业计划书制作(8):财务分析部分

老壳有点爽

创业 财富自由 商业计划书 财务分析

模拟电路设计工程师发展九段

老壳有点爽

集成电路 IC 芯片设计 模拟电路

sed 语言学习技巧(2)

老壳有点爽

vim sed 脚本语言

集成电路工艺基础介绍

老壳有点爽

芯片 集成电路 IC 工艺 制程

物理实现(Physical Implementation)

老壳有点爽

芯片 集成电路 IC 物理设计 PI

IC设计流程及工具

老壳有点爽

芯片 集成电路 IC IC设计流程及工具

Linux指令简述&vim引入(1)

老壳有点爽

vim Linux 脚本

商业计划书制作(1):商业计划书的信息需求

老壳有点爽

创业 商业计划书 信息需求

商业计划书制作(2):商业计划书的完成阶段

老壳有点爽

创业 财富自由 商业计划书

世界集成电路发展概况

老壳有点爽

芯片 集成电路 IC 芯片营销

数字后端工程师发展六阶段

老壳有点爽

芯片 集成电路 IC 数字电路工程师

Vim小技巧(2)

老壳有点爽

vim Linux 脚本语言

商业计划书制作(5):业务发展的历史与未来

老壳有点爽

创业 财富自由 商业计划书 业务发展的历史与未来

打造 VUCA 时代的 10 倍速 IT 团队

打造 VUCA 时代的 10 倍速 IT 团队

GopherJS:一个将Go编译成JavaScript的编译器-InfoQ