阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

  • 2014-10-27
  • 本文字数:757 字

    阅读完需:约 2 分钟

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:174092
用户头像

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

关注

评论

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

第十一周 安全稳定作业

蓝黑

极客大学架构师训练营

第十一周 安全稳定总结

蓝黑

极客大学架构师训练营

线程上下文切换,这些是你需要掌握的

田维常

系统上下文

什么是工作流?工作流有什么作用?怎样配置工作流程?

Marilyn

敏捷开发 工作流

我是程序员,我用这种方式铭记历史

kokohuang

Hexo GitHub Pages python 爬虫 中国历史 铭记历史

Seata是什么?一文了解其实现原理

vivo互联网技术

分布式 分布式事务 分布式架构

话题讨论 | 深入浅出Linux内存管理,图解物理内存和虚拟内存

程序员柠檬

话题讨论

公安情报研判管控分析平台建设解决方案

t13823115967

智慧公安情报研判系统开发 智慧公安 情报研判管控分析平台

阿里云Lindorm与Intel、OSIsoft共建IT & OT超融合工业数据云

许力

数据库 大数据 IoT 工业互联网 工业物联网

云计算领域-杨明越加入InfoQ协作平台

杨明越

阿里巴巴内部秘密培养的“Java架构师养成计划”图谱曝光,全是干货!

Java架构追梦

Java 学习 架构 面试 阿里巴巴人才培养计划

教你用Python自制拼图小游戏,轻松搞定熊孩子

华为云开发者联盟

Python 游戏 拼图

基于区块链技术落地应用开发-食品溯源

13828808769

数据资产管理平台规划概要

马踏飞机747

大数据 数据治理 数据资产

探秘密码学:深入了解对称加密与密钥协商技术

京东科技开发者

网络安全 密码学

话题讨论 | 作为开发你是如何阅读源码的?

程序员小航

话题讨论

低成本快速上链 智臻链开放联盟网络正式对外开放

京东科技开发者

区块链 京东

架构师训练营第 1 期第 11 周总结

owl

极客大学架构师训练营

智慧公安情报指挥合成作战管控平台开发

t13823115967

智慧公安情报研判系统开发 智慧公安 合成作战管控平台

手撸一个在线css三角形生成器

徐小夕

CSS css3 大前端 CSS小技巧

话题讨论 | 程序员摸鱼的时候都喜欢干些什么

soolaugust

话题讨论

突破容量极限:TiDB 的海量数据“无感扩容”秘籍

京东科技开发者

分布式数据库 #TiDB

话题讨论 | 2020年你有什么推荐的书

soolaugust

话题讨论

花火交易所APP软件系统开发(现成)

系统开发

话题讨论 | go、php 、java、python、cpp谁才能成为后端的主流

sinsy

Java c++ php 话题讨论 Go 语言

App自动化《元素定位方式、元素操作、混合应用、分层设计、代码方式执行Pytest 命令》

清菡软件测试

App

架构师训练营第 1 期第 11 周作业

owl

极客大学架构师训练营

第七周总结

小兵

《写给大忙人看的JAVA核心技术》.pdf

田维常

电子书

年薪百万offer从何入手?这份“通关面试手册”带你轻松碾压字节面试官

比伯

Java 编程 架构 面试 计算机

源码深度解析 Handler 机制及应用

vivo互联网技术

android 客户端开发

GopherJS:一个将Go编译成JavaScript的编译器_JavaScript_谢丽_InfoQ精选文章