官术网_书友最值得收藏!

  • Security with Go
  • John Daniel Leon
  • 317字
  • 2021-06-30 19:06:38

The History of Go

Go is a relatively young language, with its inception in 2007 and open sourcing in 2009. It started at Google as a 20% project with Robert Griesemer, Rob Pike, and Ken Thompson. A 20% project means that the project's developers spent 20% of their time working on it as an experimental side project. Go 1.0 was officially released in March 2012. It was planned from the beginning to be an open source language. Until Go 1.5, the compiler, linker, and assembler were written in C. After version 1.5, everything was written in Go.

Google initially launched Go for Linux and macOS, and the community drove the effort for other platforms, namely Windows, FreeBSD, OpenBSD, NetBSD, and Solaris. It has even been ported to IBM z Systems mainframes. Bill O'Farrell of IBM gave a talk at GopherCon 2016 in Denver titled Porting Go to the IBM z Architecture (https://www.youtube.com/watch?v=z0f4Wgi94eo).

Google is known to use Python, Java, and C++. It is understandable why they chose those languages too. They each fill certain roles and have their own strengths and weaknesses. Go was an attempt to create a new language that fits the needs of Google. They needed software that could perform extremely well under heavy loads, support concurrency, and that was easy to read and write, and compile quickly.

The triggering event for starting the Go project was dealing with a massive C++ code base that took hours to build because of the way C++ handles dependencies and re-includes headers (https://www.youtube.com/watch?v=bj9T2c2Xk_s (37:15)). This is why one of Go's main goals was to compile quickly. Go helped turn hours of compile time to seconds because it handles dependencies much more efficiently than C++.

Discussions for Go 2.0 have begun, but they are still in the conceptual stages. There is no timeline for a release, and there is no rush to release a new major version.

主站蜘蛛池模板: 定安县| 江达县| 新泰市| 虞城县| 自贡市| 清涧县| 灵山县| 冷水江市| 亳州市| 专栏| 庆城县| 巴中市| 昌宁县| 凤台县| 临猗县| 从江县| 加查县| 锡林浩特市| 望奎县| 天峨县| 山东| 乳山市| 小金县| 阿荣旗| 双峰县| 南木林县| 辽宁省| 信阳市| 息烽县| 镇沅| 铜山县| 河间市| 闸北区| 洪洞县| 玉田县| 虹口区| 五原县| 怀仁县| 东明县| 溧水县| 乐都县|