Rust 与信息学三定律( 二 )


JVM生态系统Java是一种相当简单的常规语言 。Java的重用历史悠久,在整合第三方工件方面可能是冠军,有时使大型项目看起来像科学怪人的怪兽 。Java具有语言和虚拟机支持的出色工具 。现代JVM"及时"编译代码,并将其转变为高效的本机代码 。有不同的垃圾收集器提供不同的权衡 。哦,我提到过Java社区很大吗?
Kotlin试图通过减少冗长程度并提供一个更强大的,可空值安全的类型系统来提供Java"语言"的替代方案 。它主要针对JVM,并具有与Java相同的优势(也有Kotlin / Native) 。由JetBrains创建的工具显然非常出色 。现在已正式为Android开发提供支持,并且可以保留 。
函数式编程语言或FP语言Haskell和OCaml最初是作为研究项目开始的,但近年来在该行业中越来越受欢迎 。它们很安全,提供了出色的设计原语(尤其是类型类和模块)和编程模型,以我的经验,这些模型会减少错误 。它们都是垃圾-GC是为第一种FP语言LISP发明的 。特别是Haskell,它是完全纯净的,具有很大的好处:所有效果(例如IO)都明确表示为类型,这使开发人员不必担心意外发生的副作用,但会变得麻烦 。他们的社区都包括许多研究人员,可帮助建立坚实的正式基础 。
还有更多语言我不会再讨论其他所有语言 。有些人在其生态系统和社区方面具有非常明显的优势 。Python拥有出色的数据分析生态系统,Erlang帮助使用actor构建容错分布式系统,Scala是Kotlin的更老,更狂的兄弟姐妹,Clojure和Racket是现代的Lisps,而TypeScript则试图使JavaScript有意义!
第三定律的觉醒确实有许多有趣的语言 。他们中的大多数人都有自己的长处和好主意 。他们有多少帮助愿意的开发人员遵循信息学三定律?
可维护性主要由良好的设计原语(也称为语言构造),良好的工具和社区来解决 。不同的学校对什么构成好的原语有不同的看法:我个人更喜欢现代的强类型FP语言选择的那些 。
除了可维护性之外,有两种主流语言:具有手动内存管理的语言和具有垃圾回收的语言 。由于我们的开发人员并不完善,因此手动内存管理也意味着不安全,因此缺乏正确性 。在过去的25年中,垃圾收集虽然产生了开销,但在新的主流语言中已成为事实上的标准,因为安全比绝对性能更重要 。
Rust是第一种提出替代方案的流行语言-自动内存管理和无垃圾收集的安全性-它带有功能强大的FP启发性设计原语,可构建高级抽象等等 。
如果我们现在可以安全地构建更高效的软件,不是吗? 还是应该针对开发生产力进行优化? 我们能同时拥有吗?
一个新的挑战者来了

Rust是一种系统编程语言,运行速度极快,可防止出现段错误并保证线程安全 。(rust-lang.org)
Rust已经存在了一段时间,但是直到2015年Rust 1.0发行时才进行试验 。从那时起,该语言及其生态系统得到了发展并得到了极大的改善 。它将持续改善数年,但是核心团队致力于不破坏用户代码 。
与Go一样,Rust旨在为对系统编程感兴趣的开发人员提供一种严肃的选择 。但是,它从语言研究和现有编程语言的成功经验中更多地借鉴(双关语意) 。
Rust具有现代类型的系统,该系统可以自动管理内存并与边界检查一起确保安全地对其进行访问 。它具有泛型和接近Haskell类型类的特征系统 。这实现了Rust所谓的零成本抽象:拥有出色的设计不应损害性能 。James Munns在嵌入式编程方面的精彩演讲描述了Rust嵌入式工作组如何构建一组可重用的组件,以便在不牺牲执行成本的情况下在微型芯片上对各种类型的硬件操作进行抽象 。
当我深入研究Rust资源时,从出色的Rust Book开始,然后在GitHub上寻找我可能感兴趣的项目,我注意到这种毫不妥协的方法对社区和生态系统产生了多大影响 。Rust开发人员旨在获得最佳的运行时效率,最准确的抽象和最强的执行安全性 。显然,它使Rust适用于低级编程,但对于许多更高层次的应用程序也非常有趣:尽管人们可以在Rust中编写linux内核模块,但它也用于构建REST Web应用程序,区块链节点甚至单页Web WebAssembly中的应用程序! 让我们再深入一点,看看它如何帮助编写守法程序 。
正确性编写正确的程序很困难 。我们要完成的任务通常含糊不清 。尽管如此,语言仍可以通过表现力十足而提供帮助,而无需程序员跳过障碍来提出问题 。Rust具有现代的语言结构:代数数据类型(在这里称为枚举),泛型,特征,类型别名,元组等 。它还具有功能强大的元编程系统,该系统使用宏可以完成繁重的工作,例如生成序列化程序,特征实现或定义嵌入式DSL 。同样,Rust借鉴了Scheme和其后代Racket(它特别擅长构建DSL)的灵感,通过支持卫生宏来借鉴了出色的想法 。


推荐阅读