阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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

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

关注

评论

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

设计模式之禅01单一职责原则

okokabcd

设计模式

面试官:说说你平时都用过哪些分布式ID生成方案?

程序员小毕

Java 程序员 分布式 后端 分布式ID

dockerfile分层构建业务镜像

忙着长大#

Docker 镜像

在熬夜中成长

暮春零贰

熬夜 10月月更

数据湖(十五):Spark与Iceberg整合写操作

Lansonli

数据湖 10月月更

记一次网络安全应急响应流程

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

2022-10-29:go语言中的defer能非常方便地处理资源释放问题,rust语言里如何实现defer功能呢?

福大大架构师每日一题

rust defer 福大大 RAII

极客时间运维进阶训练营第二周作业

老曹

分享一份2022最新Java面试八股文:从基础到高级整整涵盖了Java14 个核心技术

程序员小毕

Java 程序员 面试 程序人生 后端

VM虚拟机下Ubuntu系统扩展磁盘大小方法

DS小龙哥

10月月更

数据处理

智趣匠

Python 数据处理 10月月更

Numpy 基础教程之Numpy的介绍

智趣匠

Python Numpy 10月月更

ndarray 的创建及属性

智趣匠

Python 10月月更 ndarray

Java | StringBuilder类/StringBuffer类

陌上

Java 编程 10月月更

JVM是什么?Java程序为啥需要运行在JVM中?

wljslmz

Java JVM 虚拟机 10月月更

SQL注入

w010w

网络安全 WEB安全 SQL注入 10月月更

Vagrant定制个性化CentOS7模板

程序员欣宸

vagrant 虚拟机 10月月更

SAP | Processing Blocks的三种类型

暮春零贰

SAP abap 10月月更

Java | Date类

陌上

Java 编程 10月月更

ubuntu16.04安装deb软件包教程

DS小龙哥

10月月更

图解 | 聊聊「秒杀」

小小怪下士

Java 程序员 高并发 秒杀

ndarray的赋值、视图、拷贝和广播

智趣匠

Python 赋值结构 10月月更

Java | DateFormat和SimpleDateFormat类

陌上

Java 编程 10月月更

电脑安装Ubuntu桌面系统(部署开发环境、直接U盘安装,针对I386工控板)

DS小龙哥

10月月更

字母大小写全排列

掘金安东尼

算法 10月月更

【一Go到底】第三十天---排序

指剑

Go golang 10月月更

Web3学习日记

无人之路

日志 web3

SQL注入的题目

w010w

网络安全 SQL注入 SQL语句 10月月更

【web 开发基础】PHP 自定义函数之函数的调用 -PHP 快速入门 (25)

迷彩

函数调用 函数 10月月更 web开发基础 PHP基础

【运维】Centos 7 一键 搭建 Java开发者环境

石臻臻的杂货铺

Java 运维 10月月更

如何向表中插入数据以及如何更新、删除表中的数据

智趣匠

Python 10月月更 插入数据

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