北京看白癜风哪里看的好 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/xcxbdf/作者
柴树杉
责编
郭芮
在21世纪的第一个十年,计算机在中国大陆才逐渐开始普及,高校的计算机相关专业也逐渐变得热门。当时学校主要以C/C++和Java语言学习为主,而这些语言大多是上个世纪90年代或更早诞生的,因此这些计算机领域的理论知识或编程语言仿佛是上帝创世纪时的产物,作为计算机相关专业的学生只能仰望这些成果。
Go语言诞生在21世纪新一波工业编程语言即将爆发的时期。在年前后诞生了编译型语言Rust、Kotlin和Switft语言,前端诞生了Dart、TypeScript等工业型语言,最新出现的V语言更甚至尝试站在Go和Rust语言肩膀之上创新。而这些变化都发生在我们身边,让中国的计算机爱好者在学习的过程中见证历史的发展,甚至有机会参与其中。
年是CSDN的二十周年,也是Go语言面世十周年。感谢CSDN平台提供的机会,让笔者可以跟大家分享十年来中国Go语言社区的一些故事。
Go语言诞生
Go语言最初由Google公司的RobertGriesemer、KenThompson和RobPike三位大牛于年开始设计发明的。其设计最初的洪荒之力来自于对超级复杂的C++11特性的吹捧报告的鄙视,最终目标是设计网络和多核时代的C语言。到年中期,语言的大部分特性设计已经完成,并开始着手实现编译器和运行,大约在这一年RussCox作为主力开发者加入。到了年,Go语言已经逐步趋于稳定。同年9月,Go语言正式发布并开源了代码。
以上是《Go语言高级编程》一书中第一章第一节的内容。Go语言刚刚开源的时候,大家对它的编译速度印象异常深刻:秒级编译完成,几乎像脚本一样可以马上编译并执行。同时Go语言的隐式接口让一个编译型语言有了鸭子类型的能力,笔者也第一次认识到原来C++的虚表vtab也可以动态生成!至于大家最愿意讨论的并非特性,其实并不是Go语言新发明的基石,早在上个世纪的八九十年代就有诸多语言开始陆续尝试将CSP理论引入编程语言(RobPike是其中坚定的实践者)。只不过早期的CSP实践的语言没有进入主流开发领域,导致大家对这种并发模式比较陌生。
除了语言特性的创新之外,Go语言还自带了一套编译和构建工具,同时小巧的标准库携带了完备的Web编程基础构建,我们可以用Go语言轻松编写一个支持高并发访问的Web服务。
作为互联网时代的C语言,Go语言终于强势进入主流的编程领域。
Go语言十年奋进
Go从年开始设计,在年正式对外公布,至今刚好十年。十年来Go语言以稳定著称,Go1.0的代码在年依然可以不用修改直接被编译运行。但是在保持语言稳定的同时,Go语言也在逐步夯实基础,十年来一直向着完美的极限逼近。让我们看看这十年来Go语言有哪些变化。
界面变化
首先是看看界面的变化。第一次是在刚开源的时候,这时候可以说是Go语言的上古时代。Go语言的主页如下:
那个年代的Gopher们,使用的是hg工具下载代码(而不是Git),Go代码是在GoogleCode托管(而不是GitHub)。随着代码的发展,hg已经慢慢淡出Gopher视野,GoogleCode网站也早已经关闭,而Go1之前的上古时代的Go老代码已经开始慢慢腐化了。
首页中心是Go语言最开始的口号:Go语言是富有表现力的、并发的编程语言,并且是简洁的。同时给了一个“Hello,世界”的例子(注意,这里的“世界”是日文)。
然后右上角是初学者的乐园:首先是安装环境,然后可能是早期的三日教程,第三个是标准库的使用。右上角的图片是RussCox的一个视频,在Youtube应该还能找到。
左上角是Go实战的那个经典文档。此外FAQ、语言规范、内存模型是非常重要的核心温度。左下角还有cmd等文档链接,子页面的内容应该没有什么变化。
然后在年准备发布第一个正式版本Go1,在Go1之前语言、标准库和godoc都进行了大量的改进。Go1风格的页面效果如下:
新页面刚出来的时候有眼睛一亮的感觉,这个是目前存在时间最长久的页面布局。但是不仅仅是笔者我,甚至Go语言官方也慢慢对中国页面有点审美疲劳了。因此,从年开始Go语言开始新的Logo和网站的重新设计工作。
下面的是Go语言新的Logo:
年是对Go语言发展极其重要的一年,今年8月将发布Go1.13,而这个版本将正式重启Go语言语法的进化,向着Go2前进。而新的网站已经在Go1.13正式发布之前的7月份就已经上线:
头部的按钮风格的菜单变成了平铺的风格,显得更加高大上。同时页面的颜色做了调整,保持和新Logo颜色一致。页面的布局也做了调整,将下载左右两列做了调换。同时地鼠的脑袋歪到一边,估计是颈椎病复发了。
总的来说,Go语言