写点什么

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

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

关注

评论

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

Wireshark中的ARP协议包分析是什么?

小齐写代码

每日一题:LeetCode-78. 子集

Geek_4z9ami

面试 算法 LeetCode 刷题 回溯

centos使用pip安装ansible教程。

百度搜索:蓝易云

Linux centos 运维 pip ansible

简单解压缩工具Keka 激活最新中文版+使用方法

胖墩儿不胖y

Mac软件 解压缩软件 解压缩工具

用 2 种方法取消 Axios 请求,掌控请求的主动权

Liam

JavaScript 程序员 前端 axios 网络请求

让数据成为生产力,用友时序数据库为智造按下“瞬时加速键”

用友BIP

时序数据库

centOS7的home目录进行扩容教程。

百度搜索:蓝易云

云计算 Linux centos 运维 云服务器

想快速解决数据问题?ETLCloud教你秒上手

RestCloud

ETL 数据集成

群星璀璨!亚信科技、TM Forum联合举办数字领导力中国峰会,助百行千业打造转型升级双引擎

亚信AntDB数据库

AntDB AntDB数据库

什么是微信小程序WXSS ?

Geek_2305a8

LED屏幕在指挥中心的解决方案

Dylan

LED显示屏 led显示屏厂家 户内led显示屏

12 月 10 日,融云在 Google DevFest 上海站等你!

融云 RongCloud

Google 即时通讯 IM 融云 Google DevFest

Ulysses for Mac(Markdown文本编辑器) 33.1永久激活版

mac

文本编辑器 苹果mac Windows软件 Ulysses

云服务器的安全防护:技术与策略全面解析

一只扑棱蛾子

云服务器

7 种查询策略教你用好 Graph RAG 探索知识图谱

NebulaGraph

知识图谱 LLM rag

可视化软件开发工具——JNPF

互联网工科生

低代码开发 可视化开发 JNPF

数据驱动:离散制造行业财务报告应用场景与实践

用友BIP

数据驱动

WebSocket 连接:完全指南及高效实现方法

Apifox

程序员 前端 Web 网络编程 websocket

13 | 线性排序:如何根据年龄给100万用户数据排序?

鲁米

Mac电脑图片处理必备:Photoshop 2021直装激活版

mac大玩家j

Mac软件 图片编辑工具 图片处理软件

淘宝/天猫商品详情 API 的技术架构是怎样的?

技术冰糖葫芦

API 开发

台灣用友×新漢智能出席兩岸企業家峰會,探訪新格局下兩岸資訊產融合發展新機遇

用友BIP

细说SQL与ETL之间的小秘密

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

亚马逊云科技携手埃森哲助力默沙东利用云技术缩短药物发现时间

财见

亚马逊云科技推出五项Amazon SageMaker新功能

财见

即时通讯技术文集(第26期):实时音视频技术合集(Part1) [共16篇]

JackJiang

网络编程 即时通讯 IM

技术博客:Vue中各种混淆用法汇总

雪奈椰子

如何通过营销策略和资源平台提升API竞争力

幂简集成

API 产品运营 营销模式 差异化

Vue 应用程序性能优化:代码压缩、加密和混淆配置详解

图控软件大盘点 国内外顶级SCADA软件整理

2D3D前端可视化开发

组态软件 工业自动化 SCADA HMI 图控软件

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