写点什么

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

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

关注

评论

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

ElasticSearch _bulk 使用与实战:批量操作、查询、冲突(模拟电商下单/查询)

alexgaoyh

批量操作 Elastic Search 关联查询 _bulk retry_on_conflict

架构训练营第10期模块7作业

Geek_4db2d5

【立哥】【每日一个小知识】企业家和管理者有什么区别?

Lee Chen

社招前端必会手写面试题集锦

helloworld1024fd

JavaScript

Teradata 落幕中国的三个变化:“国产平替”变褒义、重型方法论不如最佳实践、前后端数据服务贴合

B Impact

美团前端一面高频vue面试题整理

bb_xiaxia1998

Vue

2023-02-18:ffmpeg是c编写的音视频编解码库,请问用go语言如何调用?例子是03输出版本号。

福大大架构师每日一题

golang 音视频 ffmpeg 流媒体 福大大

手撕常见JS面试题

helloworld1024fd

JavaScript

模块七作业

Ryan

架构

高级前端一面面试题集锦

loveX001

JavaScript

【Java基础】Java对象创建的几种方式

No8g攻城狮

Java 后端 Java 分布式 Java 开发

架构实战营-模块二作业

🐢先生

架构实战营

[go]交叉编译

追赶者

Go go build 交叉编译

从这两道题重新理解,JS的this、作用域、闭包、对象

loveX001

JavaScript

那些高级前端是如何回答面试题的

loveX001

JavaScript

从输入URL到渲染的过程中到底发生了什么?

loveX001

JavaScript

面试官:浅谈一下Redis分布式锁存在的问题

做梦都在改BUG

Java

LeetCode题解:1237. 找出给定方程的正整数解,双指针,详细注释

Lee Chen

LeetCode 算法、

面试官让你说说react状态管理?

beifeng1996

React

vue组件通信方式有哪些?

bb_xiaxia1998

Vue

能否手写vue3响应式原理-面试进阶

helloworld1024fd

JavaScript

美团前端一面手写面试题

helloworld1024fd

JavaScript

腾讯前端经典react面试题(附答案)

beifeng1996

React

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

阿里前端经典react面试题集锦

beifeng1996

React

【Ask100-3】 用ARR衡量SaaS企业发展,需要怎样的前提?

B Impact

如何使用 ArrayPool

newbe36524

C# Docker Kubernetes

社招前端经典vue面试题(附答案)

bb_xiaxia1998

Vue

React源码分析1-jsx转换及React.createElement

goClient1992

React

开源SPL助力JAVA处理公共数据文件(txt/csv/json/xml/xsl)

石臻臻的杂货铺

Java 开源

Ubuntu18.04编译ZLMediakit支持webrtc

Geek_pwdeic

WebRTC

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