在编写本文的程序时,我同时学习了Go和Rust 。就我而言,Go的学习曲线很短,因为它是一种相对容易掌握的语言,并且与其他语言相比语法很小 。我只用了几天就用Go编写了程序 。关于Go需要注意的一件事是编译速度,我不得不承认,与Java / C / C ++ / Rust等其他语言相比,它的速度非常快 。该程序的Rust版本花了我大约一个星期的时间来完成,我不得不说,大部分时间都花在弄清借阅检查器向我要什么上 。Rust具有严格的所有权规则,但是一旦掌握了Rust的所有权和借用概念,编译器错误消息就会突然变得更加有意义 。当违反借阅检查规则时,Rust编译器对您大吼大叫的原因是,因为编译器要在编译时证明已分配内存的寿命和所有权 。这样,它保证了程序的安全性(例如:除非使用了不安全的代码转义,否则就没有悬挂指针),并且在编译时确定了释放位置,从而消除了垃圾收集器的需求和运行时成本 。当然,这是以学习Rust的所有权系统为代价的 。
在竞争方面,我认为Go是Java(通常是JVM语言)的直接竞争对手,但不是Rust的竞争对手 。另一方面,Rust是Java,Go,C和C ++的重要竞争对手 。
由于他们的效率,我看到了自己 。并且将会在Go和Rust中编写更多的程序,但是很可能在Rust中编写更多的程序 。两者都非常适合网络服务,CLI,系统程序(..etc)开发 。但是,Rust比Go具有根本优势 。它不是垃圾收集的语言,与C和C ++相比,它可以安全地编写代码 。例如,Go并不是特别适合用于编写OS内核,而这里又是Rust的亮点,并与C / C ++竞争,因为它们是编写OS的悠久且事实上的语言 。Rust与C竞争的另一种方式 / C ++在嵌入式世界中,但我将继续进行讨论 。
感谢您的阅读!
(本文翻译自Dexter Darwich的文章《Comparison between Java, Go, and Rust》,参考:https://medium.com/@dexterdarwich/comparison-between-java-go-and-rust-fdb21bd5fb7c)
推荐阅读
- 店铺活动和促销工具有哪些 促销的工具有哪些
- 菊花茶和玫瑰花茶区别,冲泡玫瑰花茶四大注意事项
- JavaScript中常见排序算法详解
- Java 内存泄露的理解与解决过程
- 直通车点击量和点击率的区别 直通车点击率是什么意思
- 花甲不能和什么一起吃
- 乌鸡不能和什么一起吃
- 小苏打和白醋_白醋和小苏打 小苏打和白醋的作用是什么?
- 五味子和硒麦芽能不能起包水喝,喝菊花茶的好处和坏处
- 玫瑰花茶可以和什么搭配,玫瑰花茶怎么泡