当前位置: 首页 > 科技观察

为什么需要像Go这样的新编程语言?

时间:2023-03-12 07:01:25 科技观察

Go语言一开始并不是谷歌的官方项目,而是作为一个“20%”的项目出现的。直到2009年才对外开源。目前GoTeam有一个稳定的发布周期,大约半年。版本,当前版本为1.9。Go语言的出身可以说是非常奢侈。最早关于Go语言的讨论是由RobertGrismore、RobParker和KenThompson发起的,主要是为了解决C++中的问题。项目。KenThompson是C语言和Unix的大师,RobertGrismore参与了Java的HotSpot虚拟机和Chrome浏览器的JavaScriptV8引擎的设计,RobParker曾在著名的贝尔实验室工作多年,参与设计和实现了Plan9操作系统、C编译器和多语言编译器。Go语言自2009年开源以来就受到了众多开发者的关注,分别在2009年和2016年获得了TIOBE之星。如果说2009年是谷歌的影响,那么2016年绝对是谷歌自身的实力。现在是2017年下半年,读者看到这本书是2018年初。在互联网蓬勃发展的今天,越来越多的编程语言涌入企业开发。Go语言作为新一代的编程语言,同样受到开发者的追捧,但是由于Go语言的编程资料很少,很多人不知道如何入门。即使找到了一些资料,也不够系统。正所谓知行合一,本书遵循由浅入深的系统讲解的本质特点,带领读者真正掌握并运用Go语言的编程特性,达到精通的目的。对于C++这样的传统语言,大家花太多时间学习如何使用这门语言,而不是如何更好地表达作者的思想。同时,编译时间过长。对于编写-编译-运行这个链条周期太长。Python等动态语言,因为没有强类型约束,很多问题需要在运行时发现,这种低级错误应该是编译器发现的。同时,还有以下趋势:劳动力成本越来越高;机器越来越便宜;机器性能越来越好;在开发效率和运行速度之间取得平衡;这就是Go语言的诞生背景。Go的哲学简化这门语言一定是更大的成就——RobPikeGo的思维方式Minimalmentalburdenprinciple;最小的特征;设计可以说是考虑周到,没有依赖地狱,甚至glibc;一次编译,随处复制,部署极其方便;交叉编译只是环境变量的问题;Go语言中的parallel和concurrent不是parallel(并行)例子:node.js有并发的能力,但是不能充分利用多核。编写一个可以充分利用多核的程序需要系统编程的深厚积累。得益于出色的设计,Go可以轻松编写出在所有CPU上运行的程序。Go语言开发Docker,流行的容器化技术;Kubernetes,GooleBorg的开源实现;etcd,类似zookeeper的高可用key-value存储;TIDB,国人开发的Googlespanner的开源实现;