让我们一起来学习别人学不动的deno

18

几天前,有人在github的一个开源项目denoissue区里用中文发了一篇贴子:

图片描述

引来各种争论,从而使得这个项目在短短几天时间里就达到了8000多星的热度,到现在还在持续增长,也许这是团队的一种反向营销策略?

不管怎么说,前端就是一个(至少在目前为止)需要不断学习的领域,说实在的,对于我们这些学习狂来说,如果前端不是有这么多好玩的可以学的东西,我们也不会参与到这个领域里头来。别人抱怨学不动的时候,恰恰是我们开始努力进步的时候,有句话怎么说来着:弯道超车。所以抓住这个机会,让我们来一窥deno的真面目吧!

关于deno

deno这个项目的发起者是ry,全名是Ryan Dahl,这位大神也是每位前端必定要关注的神级人物之一,因为是他于2009年写出了Node.js,才使javascript语言脱离了前端语言这个狭义范畴,开始堂而皇之侵入后端。但是3年后的2012年,ry离开了node团队,把团队的管理权交给了另一位大神isaacs,这位大神的代表作是——npm。现在ry重新出山,推出了deno。关于deno的评价,你可以先简单看一看这篇文章

安装

安装go

其实deno的安装很简单,你需要先安装好一个go语言的环境:

brew install go

通常情况下,它会在你的/Users/username下建立一个名字叫go的文件夹,以后所有跟go语言相关的依赖包都会被安装在这个文件夹里,所以你需要设置2个环境变量,一个是GOPATH,指向这个文件夹,另一个是PATH,把/Users/username/go/bin包含进来,然后go语言的环境就建立好了。

安装protobuf

接下来,我们开始用brew安装protobuf

brew install protobuf

因为我们前面已经安装好了go语言的环境,所以我们接下来安装编译deno所需要的2go语言依赖包:

go get -u github.com/golang/protobuf/protoc-gen-go
go get -u github.com/jteeuwen/go-bindata/...

安装v8worker2

v8worker2deno所依赖的最重要的一个包,这个包的体积也很大,超过了200m,所以我们先来安装它:

go get -u github.com/ry/v8worker2
cd $GOPATH/src/github.com/ry/v8worker2
./build.py --use_ccache

安装deno

安装好了v8worker2之后,我们就可以开始安装deno了:

go get -u github.com/ry/deno/...

编译

安装好deno之后,我们需要编译一下deno才能运行:

cd $GOPATH/src/github.com/ry/deno
make

运行

好了,我们来运行一下刚刚编译好的deno看看效果吧:

./deno testdata/001_hello.js

它的输出很简单,就是一行Hello World,因为它的源代码也很简单:

console.log("Hello World");

这不就是你熟悉的javascript吗?

好了,到此为止,那个别人抱怨学不动的deno已经可以成功地运行在你的电脑上了,你可以进入到testdata这个文件夹里去看一看更多的基于javascript和基于typescript的例子,进一步了解deno。目前deno还处于很早期很早期的开发阶段,每天都有无数的问题正在被修复,希望deno能够早日普及,使我们后端基于javascripttypescript语言的开发环境变得更为高效。


如果觉得我的文章对你有用,请随意赞赏
已赞赏

你可能感兴趣的

13 条评论
六楼的雨 · 2018-06-03

真的学不动了,我已经基本放弃前端了

+2 回复

hjz20170706 · 2018-07-14

为啥不是node->edon

+1 回复

yangtoude · 2018-06-03

这是另一个node吗,张老师?

回复

kumfo · 2018-06-04

不知道为啥变成go了

回复

0

从执行效率来讲,我不认为go比c++更有优势。但是从开发效率来讲,go确实比c++更容易理解,开发速度会快得多。

张京 作者 · 2018-06-04
0

@张京 从这里我倒是感觉在未来的情况下可能并不存在某一种纯粹的开发语言,为了解决问题,各个开发语言可能会有相互融合的趋势,不过我感觉这种趋势倒是一个好趋势啊,也就不存在“PHP是世界上最好的语言”这种情况了。
clipboard.png

kumfo · 2018-06-04
0

@张京 为什么go的执行效率没有c++快呢?go不是被编译成二进制了吗,二进制是最接近计算机底层的东西吧!

roylau · 2018-06-08
mizao · 2018-06-05

这个教程好评

回复

黄小辉 · 2018-06-06

node -> deno ....

回复

Harley_K · 2018-10-20

除了安装步骤还有啥............

回复

0

没了。。水

朋也 · 7月4日
载入中...