您好、欢迎来到现金彩票网!
当前位置:红黑大战作弊器助手 > 后端开发 >

想找一份好的文档非常困难(感谢rust-beginners的人提供的帮助)

发布时间:2019-07-22 17:40 来源:未知 编辑:admin

  “嘿,那Scala怎么样?”Scala是什么?更好的Java?还是Scalaz的函数式编程语言?还是那个需要4GB JVM才能运行,而且不确定是否会在g.NullPointerException上出现运行时错误的那个面向对象的函数式编程语言?我在几年前尝试过,显然,它并不适合我。

  我决定重写之前用Python和Go写过的那个项目。Rust入门比Go语言难多了。像Go一样,我试着上手写代码,但发现非常困难:我需要理解许多Rust特有的概念,比如ownership、lifetimes,才能理解我在StackOverflow上看到的代码。所以我只好去阅读《Rust Book》,花了两个星期才能写出一点代码(别忘了Go语言我只花了一个晚上就能写代码了)。

  说起后端语言,我很自然地从Python切换到了程序员们的新宠:Go,但仅一个星期之后,我意识到换成Go只是此次旅行的一半路程。尽管Go比Python更能满足我的需要,但远远比不上我期待中的开发体验,就像我在前端使用Elm时的体验。所以我尝试了一下Rust。

  结果痛苦开始了。我需要在某个结构体中添加一些字段,于是我修改了结构体,正要打算根据编译器错误找出这个结构体在哪儿用过的时候……

  我决定用Go语言重写一个用Python写的内部项目,目的只是为了感受两者之间的差异。

  Rust非常适合并发和安全,尽管futures-rs的“箱子”(Rust里函数库叫做“箱子”)依然非常新。我认为,以后Rust会成为许多后台的默认语言。

  不要误会,我依然认为Go能与Python并驾齐驱,如果有人要从两者中选择一个,我依然会推荐学习Go而不是Python。但就我个人而言,我已经学会了Python,只是想要一些更安全的东西,Go并没有给我足够的理由去学习。

  【CSDN 编者按】作为一种简单易上手的面向对象的动态类型语言,Python 在近两年的技术圈中,可谓是炙手可热;而另一种素有 Google “亲儿子”之称的 Go 语言,被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言,其自从诞生起,就备受业界关注;最后来自 Mozilla 开发的系统编程语言 Rust,在安全性上表现尤为突出,且在过去三年间连续获得了 StackOverflow 开发者调查中“最受喜爱编程语言”的 Top 1。

  它会强迫你思考在使用高阶语言时从未思考过的问题:内存管理(包括lifetimes和ownership的概念)。

  我很喜欢一句名言:“能通过编译就能用”,一旦你体会到了这一点,就再也回不到过去了。你可以尽情尝试,只要按照编译器给出的友好错误信息改代码,然后就能神奇地使用了!

  但度过了初期陡峭的学习曲线之后,编写Rust代码变成了一种享受,我现在依然很喜欢编写Rust代码。有了Rust,我不再需要相信自己,只要跟着编译器的指示即可,只要代码能通过编译,那基本上就能用。这正是我一直在寻找的编程感觉。

  Go语言非常酷,但并没有为我提供足够的类型安全。如果不需要并发,那么我宁可继续使用Python及其生态环境,而不会去冒险采用Go重写一切。如果需要并发,那我也不会使用Go,因为它缺乏类型安全,这个炸弹肯定会爆炸。

  我编译了代码,结果……没有错误信息。一切正常。嗯?但我在结构体中添加了字段啊,编译器应该指出我的代码有错误,因为这些字段并没有初始化!

  所以,我不会再考虑Go语言,因为我发现我真正想要的是更有帮助的编译器,这个编译器不应该默认我懂得如何编程(大量事实证明我的确不懂)。正因为如此,我开始尝试Rust。

  问题在于,Go

关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有