zoukankan      html  css  js  c++  java
  • 锈永不磨灭,让末日来得更酷!

    本文翻译自ReadWrite.com上刊登的Matt Asay的一篇文章,Rust Never Sleeps: How Mozilla Could Become Cool Again,副标题是“Mozilla has almost faded from memory, but Rust could make it hip again”。本译文标题採用意译和音译相结合的手法,也许值得商榷。欢迎读者见仁见智提出更正意见。翻译此文不代表译者全然赞同作者原文中的全部观点。—— Liigo, 2015-7-14.

    Rust

    Mozilla公司以前也有过好日子。

    它推出的Firefox浏览器以前是微软IE的头号对手。现在,Firefox落魄到仅剩12%的市场份额——数据源于NetMarketShare对桌面系统浏览器的统计——移动端的情况更糟。Mozilla的其它产品如Thunderbird,不提也罢。

    Mozilla英雄落寞的时候,竟然推出一门可能促进行业变革的Rust编程语言,让人感到意外。最初版本号的Rust由Mozilla公司员工Graydon Hoare在2009年开发完毕,基于现代编程语言设计理念从头打造(译者Liigo注:Graydon似乎更倾向于复古的编程理念)。它融合了高层语言(high-level languages)的灵活性和底层语言(low-level languages)的强控制性(firm control)。

    本质上,Mozilla这门语言既强调性能,又覆盖广泛的应用领域,从操作系统到数据库全部软件都能开发,还避免了其它语言背负的向后兼容的历史包袱。

    总之。Rust具有全然颠覆IT行业的潜能,这对Mozilla公司而言意义重大。

    锈永不磨灭

    Mozilla公司可能以前迷失过方向。可是它近期正尽最大努力纠正航向。Electrolysis项目可给予Firefox多进程能力,新的WebAssembly标准和WebVR虚拟现实流,将为迷人的新兴技术提供支持。

    可是在这些积极举措之前,Mozilla就已经有了复兴自己的根本途径:Rust。Rust已在它口袋里装了好几年了。

    Rust是Graydon六年前(译者Liigo注,应为九年前。2006年)開始开发的业余项目,2010年才成为Mozilla公司官方支持的项目。尽管有公司參与,Rust仍被视为社区主导的项目。得到了Mozilla公司以外很多贡献者的支持。

    Mozilla是这样描写叙述Rust的:

    Rust是一个新的编程语言,注重性能、并行、内存安全。设计者们从头開始创建一门语言,融合现代编程语言的优秀设计,避免传统编程语言的历史包袱。
    Rust融合了高层语言富有表达力的语法和灵活性,以及底层语言超强的控制性和性能。

    上面最后一句话太诱人了。Rust有能力让开发人员编写内核(kernels)、操作系统(OS)、浏览器、数据库。等等,而这些软件要想用高层语言比方Google公司的Go语言开发,往往是不太现实的(you simply can’t realistically write)。

    Christoph Burgdorf 觉得

    从一面说,Rust是非常现代的语言,它有泛型(Generics)、接口(Traits)、面向表达式(expression orientated)、模式匹配(pattern matching)、闭包(closures)等等很多令人兴奋的特性。
    从另一方面说,Rust也是非常底层的语言。它默认不使用垃圾收集器(GC)。它只通过定义一系列规则,让编译器在编译时做强制检查,就消除了对垃圾收集器的依赖。

    更让Burgdorf感到振奋的是,Rust提供深层控制(deep control)内存申请等能力。他写道:“Rust还同意你深层控制堆和栈空间的内存申请。这对Go来说是不可能的,由于Go的编译器採用逃逸分析(escape analysis)(自己主动)确定是否在堆上申请内存。

    尽管非常多新的编程语言不断地更快地涌现,Rust有一点让它与众不同:它在不强制要求开发人员成为底层编程专家的前提下,提供了底层语言的控制力和性能。

    让开发人员的工作变得简单是新语言的价值,假设同一时候还能提升开发人员的控制力(boosting their control),就更吸引人了。

    锈得低调淡定

    Redmonk公司的Stephen O’Grady指出:近期不断出现的信息显示,Rust正逐步激发越来越多的开发人员的兴趣。

    Rust可被应用于新项目和旧项目。就像开发人员Jeff Waugh对我说的:“我估计会有非常多新项目拥抱Rust。包含全新的项目,和旧项目中的新模块。”

    尽管可能会有採用Rust全新开发的操作系统、数据库等其它项目,扩展已有项目也是Rust的价值所在。Mozilla公司的Servo浏览器引擎是一个好的样例。“值得注意的是,Servo重用了非常多(C++)代码,而核心的/新增的功能是用Rust语言开发的”,Waugh说。“Servo使用Rust完毕了全部的并行布局(parallel layout)功能,而SpiderMonkey(JavaScript引擎)和libpng(解析PNG图片)相关功能则是重用旧的代码。”

    也就是说,Servo里面的一部分代码是Rust,还有非常多不是。

    可是通过Rust开发部分代码去改进Servo(或其它随意项目)是非常有效的。尤其是对基于C语言的项目而言。

    澳大利亚作者程序猿Dave Cheney写道:“某些遵循C语言调用约定的大型项目,非常希望将Rust代码嵌入进去。

    未来是锈的天下吗?

    说到Rust,另一个非常纠结的问题:假设它非常棒,为什么不是全部人都用它呢?

    眼下,还非常难找到有关Rust的工作岗位,Hacker News上面的招聘趋势印证了这一点。依据Google搜索数据得到的信息显示。程序猿对Rust感兴趣比例还比較低。

    可是请不要混淆当前状况和长期行业影响。比如。不能简单的由于Go现在比Rust流行,就判定(将来)Go会赢而Rust会输。

    这是错误的比較方法。

    Cheney解释说:“Rust的竞争者是C++和D语言。使用C++和D的程序猿为了追求最高性能。已经准备好接受复杂的语法和语义(以及因此导致的较低可读性的代码)。

    ”然后。他又补充说。“Go的竞争者是Ruby、Python、Node.js (v8),这些语言多是在2006年之后互联网2.0时代发展壮大的,他们的使用者对基于JVM的语言非常高的部署成本失去了耐心。

    ”他们之间的应用场景和用户群,都有非常大的不同。

    我希望Go继续成长。可是我猜想,Rust将会对我们整个行业中最重要的程序,产生深远的影响。

    就像Peter Bright说的那样,“Rust尝试提供像C或C++那样的性能和控制,同一时候让C和C++常常出现的安全方面的BUG(security-compromising bugs)。在Rust中更难出现。

    Mozilla公司通过大量应用Rust(Servo/Firefox),可以向C语言开发人员展示Rust语言的能力,当中某些C开发人员一直在寻找更好的语言。通过应用Rust。Mozilla公司也在逐步让自己又一次成为现代应用开发领域的主导力量(central force)。

    题图来自Shutterstock

  • 相关阅读:
    如果经常访问国外站
    CouchDB降临Android
    ubuntu server操作流程百岁版
    开源HTML解析工具包jsoup 1.3.1发布
    LEMP aka LNMP
    VC编译选项
    gae地址
    feedparser 同步博客园rss到 qq zone
    跨系统共享键盘鼠标利器分享:synergy
    支持ff,ie的回车提交
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7081868.html
Copyright © 2011-2022 走看看