提及编程语言,年,除了老牌的C++和新晋之秀Rust热度最高之外,就要数Go了。从年由C语言获取灵感而发布,到如今风靡已久的高性能语言,Go已经走过了14个年头。
“Go是一个项目,不只是一门语言。我们最初的目标不是创建一种新的编程语言,而是创建一种更好的软件编写方式。”
年11月10日是Go作为开源项目推出14周年。Go语言之父RobPike在在悉尼GopherConAU会议上进行了一场耐人寻味的演讲。Go走到今天,做对了什么?做错了什么?这里总结在此,以飨诸君。
一、我们做对了什么,做错了什么今天是年11月10日,Go作为开源项目推出14周年。年的这天,加州时间下午点(如果没记错的话),KenThompson、RobertGriesemer、RussCox、IanTaylor、AdamLangley、JiniKim和我满怀期待地看着网站上线,全世界都知道了我们在做什么。
Go是一个项目,不只是一门语言。
即使是最成功的项目,经过反思,也有一些可以做得更好的地方。当然,事后看来,这些事情似乎是他们成功的关键。
这些因素正是我们想要解决的:构建现代服务器软件的复杂性:控制依赖性、与人员不断变化的大型团队一起编程、易于维护、高效测试、多核CPU和网络的有效使用等等。
根据大家的反馈看,认为Go做错的事情都在语言层面,而其实Go做对的事情,都在更大的故事中,即围绕语言的周边工具和生态,比如gofmt以及部署和测试。这说明Go成员们做对了。
二、Go哪里做对了?Go为什么会取得现在的成功?总结了有以下几点。每一个都至关重要。
1.规范说明
我们从正式的规范开始。这不仅可以在编写编译器时锁定行为,还可以使多个实现共存并就该行为达成一致。编译器本身并不是一个规范。您测试编译器的依据是什么?
2.多种实现方式
有多个编译器,它们都实现相同的规范。有了规范就可以更容易地实现这一点。
有一天,伊恩·泰勒(IanTaylor)发邮件通知我们,在阅读了我们的规范草案后,他自己编写了一个编译器,这让我们感到惊讶。
我的一位同事向我指出了