java和go都是GC的典范,但他们的GC还不那么优秀,会导致Stop-The-World (STW),对于很多对性能要求极高的应用这是不能忍受的
@poison 除了性能,还有别的什么原因?
@adela 性能应该是主要原因,Rust的学习曲线比java、go还要高一些
@sophia 其实Rust并不难,我们对比 HelloWorld 代码来看一下
Java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Golang:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Rust:
fn main() {
println!("Hello World!");
}
Rust和Go还是很像的,他们两个都比Java要简单一些,但是生态没有Java丰富
Rust 没有垃圾回收机制,也不需手动管理,这一工作在编译阶段,由编译器来负责。 编译成功后,变量内存何时回收已经被确定,硬编码到二进制程序中了,程序自己运行到该回收的时候就自动回收了。
既然Rust的GC比Java和Go更优秀,为什么Rust在编程语言排名上比Java和Go低很多?
https://www.tiobe.com/tiobe-index/
@golang123 Rust学习曲线陡峭,生态不如Java,也不像Golang背后有谷歌背书