• 火狐的野望


    生逢乱世

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

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

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

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

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

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

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

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

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

    火狐的野望

    clip_image002

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

    俺也一样。

     

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

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

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

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

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

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

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

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

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

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

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

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

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

    此时,链条都接上了

    clip_image003clip_image004

    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学习之旅了,又有东西可以写了。

  • 相关阅读:
    【EFCORE笔记】客户端与服务端求值&跟踪与非跟踪查询
    【EFCORE笔记】预先加载&显式加载&延迟加载
    【EFCORE笔记】在远程查询数据
    【EFCORE笔记】远程数据查询支持
    【EFCORE笔记】元素操作&集合运算&转换类型
    【EFCORE笔记】生成操作&相等比较&串联运算
    【EFCORE笔记】联接运算与数据分组
    【EFCORE笔记】投影运算与数据分区
    【EFCORE笔记】排序&集运算&筛选&限定
    【EFCORE笔记】团队环境中的迁移
  • 原文地址:https://www.cnblogs.com/crazylights/p/12101401.html
Copyright © 2020-2023  润新知