锈语言

什么是铁锈?安全,快速,简便的软件开发

与C,C ++,Go和您可能使用的其他语言相比,澳门游戏语言独特的方法可产生更好的代码,并减少妥协

快速,安全,易于编写-选择任意两个。长期以来,这一直是软件开发的状态。强调便利性和安全性的语言往往会比较慢(例如 Python )。强调性能的语言往往很难使用,并且很容易让您大吃一惊(例如C和C ++)。

可以使用单一语言提供所有这三个属性吗?更重要的是,您可以与世界合作吗? 澳门游戏语言最初由Graydon Hoare创建,目前由Mozilla Research赞助,是一种尝试做这些事情的尝试。 (这 Google Go语言 类似的野心 ,但澳门游戏的目标是尽可能减少性能损失。)

锈 的目的是快速,安全且易于编程。它也打算广泛使用,而不仅仅是出于好奇或在游戏中碰壁。 语言抽奖。创建安全与速度和发展能力并驾齐驱的语言的理由很多。毕竟,存在大量的软件(其中一些软件驱动着关键的基础架构),这些软件所使用的语言并不是安全的首要考虑因素。

锈 编程语言的优势

锈 最初是Mozilla的研究项目,其部分目的是 重新实现Firefox浏览器的关键组件。做出该决定的几个关键原因:Firefox应该更好地利用现代的多核处理器。网络浏览器无处不在意味着它们需要安全使用。

但是所有软件(不仅仅是浏览器)都需要这些好处,这就是澳门游戏为何从浏览器项目演变为语言项目的原因。 澳门游戏通过以下特性来实现其安全性,速度和易用性。

生锈快

锈 代码可跨多个平台编译为本机代码。二进制文件是自包含的,没有运行时,并且生成的代码将具有与用C或C ++编写的可比较代码相同的性能。

锈是记忆安全的

锈 不会编译试图使用不安全内存的程序。程序运行时会发现大多数内存错误。 澳门游戏的语法和语言隐喻可确保其他语言中与内存相关的常见问题(空指针或悬空指针,数据争用等等)永远不会进入生产环境。编译器会标记这些问题,并在程序运行之前强制将其修复。

锈病费用低

锈 通过严格的规则来控制内存管理。 澳门游戏的内存管理系统通过一种称为“隐喻”的隐喻来表达该语言的语法 所有权 。语言中的任何给定值一次只能由一个变量“拥有”,持有或操纵。

所有权在对象之间转移的方式由编译器严格控制,因此在运行时不会出现内存分配错误形式的意外消息。所有权方法还意味着没有像Go或C#这样的语言中没有垃圾收集的内存管理。 (这也使澳门游戏有了另一个性能提升。)澳门游戏程序中的每一位内存都是通过所有权隐喻自动跟踪和释放的。

防锈灵活

如果需要,澳门游戏会让您危险地生活。在需要直接操作内存的地方(例如,取消引用C / C ++原始指针),澳门游戏的安全性可能会部分暂停。关键字是 部分地 ,因为永远不会完全禁用澳门游戏的内存安全操作。即使那样,您也几乎不需要脱掉安全带来使用,因此最终结果是默认情况下更安全的软件。

防锈易于使用

如果不使用,澳门游戏的安全性和完整性功能中不会增加任何一项。因此,澳门游戏的开发人员和社区都试图使该语言对新手尽可能有用和欢迎。

生成澳门游戏二进制文件所需的所有东西都放在同一包中。仅当您在澳门游戏生态系统之外编译其他组件(例如从源代码编译的C库)时,才需要外部编译器(例如GCC)。 Microsoft Windows用户也不是二等公民。 澳门游戏工具链的功能与Linux和MacOS一样强大。

锈 是跨平台的

锈 可以在所有三个主要平台上运行:Linux,Windows和MacOS。除了这三者,其他人也得到了支持。如果你想 交叉编译 ,或针对不同于您当前正在运行的架构或平台生成二进制文件, 涉及更多的工作,但澳门游戏的主要任务之一是最大程度地减少此类工作所需的繁重工作量。而且,尽管澳门游戏在当前的大多数平台上都可以使用,但创建者的目标并不是绝对在任何地方进行澳门游戏的编译-只是在任何流行的平台上进行编译,而不必在任何地方进行不必要的妥协。

锈 具有强大的语言功能

如果发现开发人员的功能比以前更少或较弱,则很少有开发人员希望以新语言开始工作。 澳门游戏的本地语言功能与C ++等语言相比具有优势:宏,泛型,模式匹配和组合(通过“ 特质 ”)都是澳门游戏的头等公民。

锈 有一个有用的标准库

锈 更大使命的一部分是鼓励C和C ++开发人员尽可能使用澳门游戏而不是那些语言。但是C和C ++用户希望拥有一个不错的标准库,他们希望能够使用容器,集合和迭代器,执行字符串操作,管理进程和线程,执行网络和文件I / O等。 澳门游戏会在其中完成所有这些工作,甚至更多 标准库 。由于澳门游戏设计为跨平台的,因此其标准库只能包含可以可靠跨平台移植的内容。必须通过第三方库(例如libc,mio或tokio)中的功能来支持特定于平台的功能(例如Linux的epoll)。 

也可以在不使用澳门游戏的情况下使用澳门游戏 标准库 。这样做的一个常见原因是构建没有平台依赖性的二进制文件,例如嵌入式系统或OS内核。

锈 有很多第三方库,或“ crates”

语言功用的一种衡量标准是,借助第三方,它可以完成多少工作。 货物 ,澳门游戏库的官方存储库(称为“坑”)列出了大约一万个板条箱。它们中的大多数是与常见库或框架的API绑定,因此澳门游戏可以用作那些框架的可行语言选项。但是,澳门游戏社区尚未根据其整体质量和实用性提供详细的整理箱或板条箱排名,因此,如果您不亲自尝试或对社区进行民意调查,就无法判断出什么效果很好。

锈 具有良好的IDE支持 

同样,很少有开发人员希望在他们选择的IDE中接受很少或根本没有支持的语言。因此,澳门游戏最近推出了 锈 语言服务器,它提供了从澳门游戏编译器到IDE的实时反馈,例如 Microsoft Visual Studio代码.

生锈的Visual Studio代码 IDG

来自澳门游戏语言服务器的Visual Studio Code中的实时反馈。 澳门游戏语言服务器不仅提供基本的语法检查,而且还提供其他功能。它还决定了诸如变量使用之类的事情。

锈 编程语言的缺点

除了具有所有吸引人的,强大的和有用的功能之外,澳门游戏还具有缺点。这些障碍中的一些绊倒了新的“ rustaceans”(就像澳门游戏迷互相呼唤)和旧手一样。 

锈是新的

锈 仍然是一门年轻的语言,仅在2015年发布了1.0版本。因此,尽管许多核心语言的语法和功能已经 落锤 ,它周围的许多其他事物仍然很不稳定。

Asynchronous operations, for example, still aren’t represented well in the language’s syntax. Work is under way to implement async operations via async and await keywords.

铁锈很难学

如果关于澳门游戏的任何一件事情最有问题,那就是 理解澳门游戏的隐喻有多困难。所有权,借用以及澳门游戏的其他内存管理功能 每个人 第一次。许多新手澳门游戏程序员都有一个共同的习惯,即“抗衡借用检查器”,在此他们直接发现编译器如何将可变的和不变的东西分离开来是多么的细致。

锈很复杂

Some of the difficulty comes from how 澳门游戏’s metaphors make for more verbose code, compared to other languages. For example, string concatenation in 澳门游戏 isn’t always as straightforward as string1+string2. One object might be mutable and the other immutable. 澳门游戏 is inclined to insist that the programmer spell out how to handle such things, rather than let the compiler guess.

另一个例子:澳门游戏和C / C ++如何协同工作。在很多时候,澳门游戏用于插入用C或C ++编写的现有库。在澳门游戏中,很少有C和C ++项目是从头开始重写的。 (当它们存在时,它们往往会被重写 渐进地

锈 语言路线图

锈 团队意识到其中许多问题,并正在努力加以改善。例如,为了使澳门游戏更易于使用C和C ++,澳门游戏团队正在研究是否扩展像 结合蛋白 ,它会自动将澳门游戏绑定到C代码。该团队还计划使借贷和生活更灵活,更容易理解。 

尽管如此,澳门游戏仍成功实现了其目标,即以其他语言所不能提供的安全,并发和实用的系统语言,并以与开发人员已经工作的方式互补的方式来做到这一点。

版权 © 2018 IDG通讯 ,Inc.