火狐的野望

MrHaoNan 2019-12-26

生逢乱世

作为IT技术人,谁不掌握几门编程语言。

若论编程语言的兴衰交替,犹如汉末之乱世,你方唱罢我登场,好不热闹。

随着一代一代炮灰的落去,目前逐渐形成了:系统级别、应用级别、前端级别三个大层次的划分,每个层次都有占据优势的存在。

系统级别被 c/c++ 父子占据,偏安一隅,自得其乐。

应用级别争夺最凶 c c++逐渐丧失应用级别的战场,java c# python js 好不热闹

前端级别则目前js独领风骚,web前端自不必谈,app前端electron\cordova 异端凸起,qt,wpf 灰头土脸无意再战。

很多技术人都以为鼎足之势已成,天下再难变化,预言终点的人总是要被打脸的。

犹如福山的历史终结论,美国就是人类历史的终点,现在谁还觉得美国是人类文明的灯塔?

可是谁也没想到,搅局者,居然是他

火狐的野望

火狐的野望

我懂得你的第一反应:这不是哪个浏览器市场份额忽略不计,已然成为可有可无的角色的火狐吗?

俺也一样。


不知不觉间,webassembly已然是w3c标准了。

固然有w3c 巨头互相扯皮,火狐乘乱而上。

谁也没有料到 webassembly居然是一盘大棋。

单独一个标准其实没什么,操作系统三巨头也没把他当回事,浏览器而已,前端的一部分,他影响力非常有限。

是的,单这一点,火狐不足以撬动什么。

项庄舞剑,意不在此。火狐推动webassembly 也不是为了一个浏览器标准而来。

真正的意图,最近才浮出水面

当火狐初搞Rust,很多人不以为然,c c++的帝国岂是那么容易撬动的?

当RustWasm项目出现,很多人以为是火狐无奈之举,因为三巨头对webassembly编译方案都比较消极,火狐不得不自己上马。

以为搞rust->webassembly 的工具链是火狐的迫不得已。

确实,rust初宣布定位是搞底层,做操作系统开发的语言。特别底层。Webassembly是web前端的特定方案,特别前端。这一头一尾的跨度太大,完全无法衔接。

但是,字节码联盟成立了。

Webassembly要离开web了,变成一个和nodejs一样的应用开发环境。

此时,链条都接上了

火狐的野望火狐的野望

Rust才是杀手锏,Rust这个自行车齿轮的图标或许早已预示了一些什么。

Rust的全层级制霸的理想,暴露了。

系统级别,Rust

前端级别 浏览器中有webassembly,火狐有rustwasm 工具

而且经过对比,这个工具的体验优于火狐的c++->wasm工具。

也可以认为 浏览器 rust

大前端中的应用前端,和应用级开发,rust比较缺乏。

而字节码联盟补上了这一环

字节码联盟是Mozilla、Fastly、Intel 与 Red Hat 联合成立的新组织,他的目标就是把webassemblly打造成下一个nodejs

字节码联盟有两个主要产品

wasmtime 提供webassemblly的执行环境。犹如dotnet nodejs

wasi 提供执行环境可用的API,如文件访问,等等,这在dotnet中叫dotnet framework,在nodejs 中就是node默认库

所以他们其实是同一个产品,火狐版的nodejs,火狐版的dotnet

自此,火狐的链条清晰了。

Rust 成为了一个真正的全栈开发语言

全栈开发语言

Rust 可以搞底层、可以搞应用,还可以搞web

作为一个全栈开发者,面对一个Rust这样的语言,不得不说:

火狐,我服。

来写你的第一个rust程序吧

第一步、安装rust工具链

https://www.rust-lang.org/tools/install

按网站提升操作即可

第二步、创建项目

命令行执行

cargo new helloworld

将在当前目录创建一个命令行程序项目,项目名为helloworld

cargo 是rust的集成工具,可以build,可以下载依赖包,可以增加工具命令。嗯,简直和dotnetcore的dotnet 命令功能一模一样

第三步、编译项目

1.命令行cd进入项目目录

2.命令行执行cargo run

还是和dotnet 一样,run 就是编译并执行当前项目。

当然你也可以 cargo build 然后自己去跑exe。

源码如下:

fn main() {
     println!("Hello, world!");
}

fn 表示这是一个函数,println!是个宏,表示往输出位置上输出内容。

看这熟悉的标点符号,还是C系,不必担忧。许久不写blog了,后面就开始愉快的rust学习之旅了,又有东西可以写了。

相关推荐