锈永不磨灭,让末日来得更酷!

本文翻译自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.

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上面的

compare1=golang&compare2=Scala&compare3=Rust&compare4=c%2B%2B">招聘趋势印证了这一点。依据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

时间: 2024-07-28 19:19:48

锈永不磨灭,让末日来得更酷!的相关文章

玩转AppBarLayout,更酷炫的顶部栏

我的简书同步发布:玩转AppBarLayout,更酷炫的顶部栏 上一篇文章<CoordinateLayout的使用如此简单 >对CoordinateLayout的使用做了讲解,今天我们再讲解常常与其一起使用的几个View:AppBarLayout.CollapsingToolbarLayout以及Toolbar.一下子出现3个陌生的View,是不是觉得很慌张~,很多人都写了这几个布局的使用,但是他们却没有有针对性的单独讲解每个View的作用以及如何使用,我看的很多文章都是一上来就把AppBar

【iOS与EV3混合机器人编程系列之一】iOS要干嘛?EV3可以更酷!

乐高Mindstorm EV3智能机器人(以下简称EV3)自从在2013年的CES(Consumer Electronics Show美国消费电子展)上展出之后,就吸引了全球广大机器人爱好者的眼球!EV3相比其上一代机器人NXT最大的提升就在于其硬件上.除了更强大的ARM处理器,并加载了Linux操作系统之外,EV3还配备了蓝牙,支持外接USB,外接WiFi.因为有了这么多的硬件提升,EV3最酷的特性在于EV3支持iOS设备!!!这使得我们可以使用iOS设备比如iPhone来控制EV3!乐高官方

Dart 比 JavaScript 更酷的10个理由

Dart 是 Google发明的一种新的编程语言.在使用JavaScript一年多以后,我对Dart可谓是一见钟情.我以前是做Java的,我在用JS的时候要学习很多新东西. 有人说你必须深入研究JavaScript,否则你没有资格评论它.我不是JS高手,但是我坚信一门编程语言应该易于学习,易于理解,并且语言结构要合理.虽然我也长时间和JS打交道,虽然我也知道JS有很多酷的功能,但是我还是每天得小心翼翼的处理JS的问题.这就很不好,编程语言应该对程序员友好,而不是程序员去伺候一门语言. 下面我将列

Without SSH/JSP/Servlet,不走寻常路,Java可以更酷

不过此文并不是用来批判SSH(Struts.Spring.Hibernate)/JSP/Servlet的, 也不是为某品牌做广告,而是用来分享这将近一年来的研究心得. 去年圣诞节时曾在JavaEye发过一两篇文章,不过现在找不到了, 文章内容提到要在3个月左右的时间内设计出一个有别于SSH的新型MVC框架, 设计的起点最初是以JSP/Servlet为基础的,虽然在两个多月后有了个雏形, 但是跟Rails这样的框架相比还是没有明显的优势, 比如在不使用反射的情况下, 很难将不同的uri对应到Ser

“回国潮”来得更猛p0

对此,开发商表示,只能退还收取的80元/平方米办证费,免去半年物业费,安装太阳能作为补偿.而退房要求则只能走法律途径.此外,开发商同意将土地证与房产证交由第三方,经公证后由双方共同保管.如未来该地块拆迁获得赔偿款,开发商需将款项分给业主,同时将继续跟进办证事宜. <双峰县残疾人精准康复服务行动实施细则>是全县2017年至2020年开展残疾人精准康复服务的指导性文件,明确了"到2020年,全县接受基本康复服务的残疾儿童和持证残疾人达到80%以上"的目标任务,各年度任务进度为2

“回国潮”来得更猛x

"桃花夫妇"两情相悦 墨渊.擎苍仍是悬念 科学家"回归"能否带动更多海外人才回国? 阳雄绪听取了该村负责人关于该村基本情况.前段扶贫工作情况以及存在问题的汇报,询问了该村党建.交通.水利.产业.五保户集中居住点建设以及村级集体经济情况,他指出,解决村上集体经济收入和贫困户脱贫,完成好今年扶贫工作目标任务,关键就是要搞好产业扶贫,要使贫困户有稳定的收入来源.他要求该村把青壳蛋鸡项目做好,利用废弃场地等地养牛养羊,争取搞好光伏发电.阳雄绪表示,将积极组织协调各方力量,做

让0元包邮免费送来得更猛烈些吧!!!

这段时间,老衲的朋友圈,时常被各种0元包邮免费送的信息刷爆了屏. “森天地灵芝孢子粉100克 天猫店0元包邮免费送!” “绿箭侠洗车水枪套装,天猫店0元免费送” “夏季男士短袖纯棉衬衣 前10名免单!速抢!!!” 0元包邮免费送!这是什么时候开始的全民盛宴?竟然让这么多人为之疯狂! 这到底是为什么呢?老衲要去一探究竟才行! 点击这些0元包邮免费送的链接,都是进入到这个地方,看来0元包邮送的东西还真不少! 然后老衲我再随便点击,进入一个0元包邮免费送的东西里面. 按照上面的活动说明,在淘宝找到了传

【安卓】让子元素超出容器限制、!如何实现更灵活的容器布局、!

安卓中LinearLayout是用得最得心应手的容器,但有时候貌似不尽人意,其实安卓中的容器真的很灵活.! 1.让子元素超出容器限制.初步想象一下,貌似子元素给定margin为负数即可超出,但事实却是超出容器部分没有绘制出来. 其实是可以绘制出来的,红色容器的容器(注意是红色控件的容器,不是红色容器自己)给定android:clipChildren="false"即可,该参数默认为true,即其内元素会被其容器裁剪,注意之所以是红色容器的容器,是因为绿色按钮突出部分已不在红色容器绘制范

九个Console命令,让js调试更简单

一.显示信息的命令 <!DOCTYPE html> <html> <head> <title>常用console命令</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <script type="text/javascri