本人工作是 Go ,也会 Java 和 C++和前端 TS+React ,最开始做的 Java 后转的 Go ( Java 比 Go 熟),最近接触了 Rust 。 以下只是个人观点: 下面的代码实现相同的功能,只是语法不同,学过编译原理感觉只是语法分析的差异,为什么感觉越新的语言,实际的新功能或改进越来越少,往往是效率和安全性方面。 更多的是噱头和为了标新立异而标新立异( fn func function )以及添加一堆语法糖(虽然语法糖很好,但过多的语法糖本身也是学习成本),增加每个语言之间的壁垒,徒增开发者学习成本。
当然以下这里不包括 ts ,只是拿来举例,在我看来 ts 确实较 js 有大幅优化,减少大量编译错误,虽然需要建立 interface ,但有利有弊吧
// C++
#include <iostream>
#include <string>
std::string getExample() {
std::string a = "example";
return a;
}
// Java
public String getExample() {
String a = "example";
return a;
}
// Go
func getExample() string {
a := "example"
return a
}
// Rust
fn get_example() -> String {
let a = String::from("example");
return a;
}
/**
* ts
*/
function getExample(): string {
const a: string = "example";
return a;
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.