【编程语言发展史】Go语言的发展历史
目录
Go的起源
Go语言发展时间轴
logo

Go的起源
Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 IT 工程师:Robert Griesemer,参与开发 Java HotSpot 虚拟机;Rob Pike,Go 语言项目总负责人,贝尔实验室 Unix 团队成员,参与的项目包括 Plan 9,Inferno 操作系统和 Limbo 编程语言;Ken Thompson,贝尔实验室 Unix 团队成员,C 语言、Unix 和 Plan 9 的创始人之一,与 Rob Pike 共同开发了 UTF-8 字符集规范。自 2008 年 1 月起,Ken Thompson 就开始研发一款以 C 语言为目标结果的编译器来拓展 Go 语言的设计思想。
这是一个由计算机领域 “发明之父” 所组成的黄金团队,他们对系统编程语言,操作系统和并行都有着非常深刻的见解

图 1.1 Go 语言设计者:Griesemer、Thompson 和 Pike
在 2008 年年中,Go 语言的设计工作接近尾声,一些员工开始以全职工作状态投入到这个项目的编译器和运行实现上。Ian Lance Taylor 也加入到了开发团队中,并于 2008 年 5 月创建了一个 gcc 前端。
Russ Cox 加入开发团队后着手语言和类库方面的开发,也就是 Go 语言的标准包。在 2009 年 10 月 30 日,Rob Pike 以 Google Techtalk 的形式第一次向人们宣告了 Go 语言的存在。
直到 2009 年 11 月 10 日,开发团队将 Go 语言项目以 BSD-style 授权(完全开源)正式公布了 Linux 和 Mac OS X 平台上的版本。Hector Chu 于同年 11 月 22 日公布了 Windows 版本。
作为一个开源项目,Go 语言借助开源社区的有生力量达到快速地发展,并吸引更多的开发者来使用并改善它。自该开源项目发布以来,超过 200 名非谷歌员工的贡献者对 Go 语言核心部分提交了超过 1000 个修改建议。在过去的 18 个月里,又有 150 开发者贡献了新的核心代码。这俨然形成了世界上最大的开源团队,并使该项目跻身 Ohloh 前 2% 的行列。大约在 2011 年 4 月 10 日,谷歌开始抽调员工进入全职开发 Go 语言项目。开源化的语言显然能够让更多的开发者参与其中并加速它的发展速度。Andrew Gerrand 在 2010 年加入到开发团队中成为共同开发者与支持者。
在 Go 语言在 2010 年 1 月 8 日被 Tiobe(闻名于它的编程语言流行程度排名)宣布为 “2009 年年度语言” 后,引起各界很大的反响。目前 Go 语言在这项排名中的最高记录是在 2017 年 1 月创下的第13名,流行程度 2.325%。
Go语言发展时间轴
- 2007 年 9 月 21 日:雏形设计
- 2009 年 11 月 10日:首次公开发布
- 2010 年 1 月 8 日:当选 2009 年年度语言
- 2010 年 5 月:谷歌投入使用
- 2011 年 5 月 5 日:Google App Engine 支持 Go 语言
从 2010 年 5 月起,谷歌开始将 Go 语言投入到后端基础设施的实际开发中,例如开发用于管理后端复杂环境的项目。有句话叫 “吃你自己的狗食”,这也体现了谷歌确实想要投资这门语言,并认为它是有生产价值的。
Go 语言的官方网站是 golang.org,这个站点采用 Python 作为前端,并且使用 Go 语言自带的工具 godoc 运行在 Google App Engine 上来作为 Web 服务器提供文本内容。在官网的首页有一个功能叫做 Go Playground,是一个 Go 代码的简单编辑器的沙盒,它可以在没有安装 Go 语言的情况下在你的浏览器中编译并运行 Go,它提供了一些示例,其中包括国际惯例 “Hello, World!”。
更多的信息详见 github.com/golang/go,Go 项目 Bug 追踪和功能预期详见 github.com/golang/go/issues。
logo
Go 通过以下的 Logo 来展示它的速度,并以囊地鼠(Gopher)作为它的吉祥物。

相关文章:
【编程语言发展史】Go语言的发展历史
目录 Go的起源 Go语言发展时间轴 logo Go的起源 Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 …...
深入理解JVM虚拟机第二十三篇:详解JVM当中的栈顶缓存技术
大神链接:作者有幸结识技术大神孙哥为好友,获益匪浅。现在把孙哥视频分享给大家。 孙哥链接:孙哥个人主页 作者简介:一个颜值99分,只比孙哥差一点的程序员 本专栏简介:话不多说,让我们一起干翻JVM 本文章简介:话不多说,让我们讲清楚JVM当中与操作数栈相关的字节码指令…...
通过easyexcel导出数据到表格
这篇文章简单介绍一下怎么通过easyexcel做数据的导出,使用之前easyui构建的歌曲列表crud应用,添加一个导出按钮,点击的时候直接连接后端接口地址,在后端的接口完成数据的导出功能。 前端页面完整代码 let editingId; let request…...
C++入门学习(4)引用 (讲解拿指针比较)
上期回顾 在学习完函数重载之后,我们可以使用多个重名函数进行操作,会发现C真的是弥补了好多C语言的不足之处,真的不禁感概一下,时代的进步是需要人去做出改变的,而不是一味的使用啊!所以我们今天继续学一下…...
温度采集DS18B20
/******************************************************************** * 描述 : 该文件实现了用温度传感器件DS18B20对温度的采集,并在数码管上显示出来。 ***********************************************************************/ #include<reg52.h&…...
同城跑腿服务预约小程序的作用如何
无论是互联网服务化加快还是前几年疫情冲击,在同城生活服务场景中出现了很多商机,如外卖跑腿、校园跑腿、代买代送等,无论公司还是个人都借势不断提升自己品牌的影响力,并且依赖朋友圈不断提升生意营收。 同城跑腿品牌不少&#…...
前后端开发迭代
要创建一个具有登录和注册功能的前端网页,并使用Go语言编写后端来支持它,你需要分两部分来进行:前端开发和后端开发。下面我将提供一个基本的指导方案。 前端开发 前端部分主要涉及HTML、CSS和JavaScript。你可以使用框架如React或Vue来简化…...
Git可视化界面的操作,SSH协议的以及IDEA集成Git
目录 一. Git可视化界面的操作 二. gitee的ssh key 2.1 SSH协议 2.2 ssh key 三. IDEA集成Git 3.1 分享项目 3.2 下载项目 一. Git可视化界面的操作 上一篇博客只用到了git的命令窗口,现在就来看看可视化窗口要怎么操作。 点击Git GUI Here GUI界面 在g…...
CSS的初步学习
CSS 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结 构分离. CSS 就是 “东方四大邪术” 之化妆术 CSS 基本语法规范: 选择器 若干属性声明 选择器决定针对谁修改 (找谁) 声明决定修…...
小程序样式问题
小程序切换下一个文章或者页面,淡入淡出效果 // detail.js getArticleData: function(articleId) {// 开始淡出效果this.animate(.detail-page, [{ opacity: 1.0, ease: ease-out },{ opacity: 0.0, ease: ease-out }], 500, () > {// 在淡出动画完成后请求文章…...
大数据毕业设计选题推荐-生产大数据平台-Hadoop-Spark-Hive
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
什么是Ribbon的饥饿加载?有什么优势?
目录 一、什么是Ribbon 二、什么是饥饿加载 三、Ribbon饥饿加载的优势 四、Ribbon饥饿加载的劣势 一、什么是Ribbon Ribbon是一个开源的、基于HTTP和TCP的客户端负载均衡工具,它提供了一个简单的、基于配置的负载均衡策略,可以帮助开发人员更轻松地…...
苹果手机安装未上架APP应用测试教程
STEP 2:找到下载的描述文件(如果没有找到,请到 设置 - 通用 - 描述文件 中查看) STEP 3:安装描述文件 STEP 4:输入解锁密码安装描述文件 STEP 5:同意免责声明,安装描述文件 STEP 6…...
asp.net core自定义授权过滤器
1.记录点击页面的地址,如果点击页面时未登录,直接跳转到登录页面,登录后直接跳转到自己点击的页面 2.创建授权过滤器 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using System.Web;namespace Log4NetTest {/…...
SW如何显示样条曲线的控标
刚刚学习隔壁老王的sw画图时,怎么点都点不出样条曲线的控标,于是果断查询了一下解决方法,其实很简单,只不过是培训机构故意不说,叫你还解决不了,难受了就会花钱买他们的课了。毕竟如果学会了怎么解决问题了…...
CSS 的 link 标签放在 head 标签之间的作用
当我们在开发网页时,经常会遇到关于CSS文件引入位置的讨论。有些人喜欢将CSS文件的链接放在HTML文件的底部,而另一些人则认为最好将CSS链接放在<head>标签之间。那么,究竟应该将CSS的link标签放在head标签之间的原因是什么呢࿱…...
【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法
配置报错 编译报错提示(LNK2019或LNK2001) 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 “__declspec(dllimport) public: __cdecl QVTKOpenGLNativeWidget::QVTKOpenGLNativeWidget(class QWidget *,class QFlags)(_i…...
国际版腾讯云/阿里云:云解析DNS是什么
云解析DNS是什么 问答 云解析DNS是一种安全、快速、安稳、牢靠的威望DNS解析处理服务。 云解析DNS为企业和开发者将易于处理辨认的域名转换为计算机用于互连通讯的数字IP地址,然后将用户的拜访路由到相应的网站或应用服务器。 云解析 DNS(Domain Nam…...
深度学习之基于Django+Tensorflow商品识别管理系统
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 项目简介 本系统是一个基于DjangoTensorflow的商品识别管理系统。通过深度学习技术,实现商品的自动识别…...
postman 参数化使用csv导入外部数据
一、参数化脚本入参 postman中变量用{{变量名}}表示变量 二、创建外部数据文件 csv文件逗号分割多个变量和对应值注意编码格式必须为utf-8 三、run collection导入数据文件 四、设置运行参数run 浏览数据 可调试设置迭代次数:防止批量出错,可先设定…...
AFPN渐进式特征金字塔网络:解决非相邻层级特征融合的突破性方案
1. 为什么我们需要AFPN? 在计算机视觉领域,目标检测一直是个热门话题。想象一下,你要在一张照片里找出所有的猫——这听起来简单,但要让计算机做到这一点可不容易。传统的方法就像让一个近视的人在不同距离观察物体:离…...
AEUX终极指南:如何快速将Sketch/Figma设计稿转换为After Effects动画
AEUX终极指南:如何快速将Sketch/Figma设计稿转换为After Effects动画 【免费下载链接】AEUX Editable After Effects layers from Sketch artboards 项目地址: https://gitcode.com/gh_mirrors/ae/AEUX AEUX是一款革命性的设计到动效转换工具,能够…...
学术PPT别再照搬论文了!哈佛教授建议的幻灯片制作心法(附时间分配表)
学术PPT别再照搬论文了!哈佛教授建议的幻灯片制作心法(附时间分配表) 站在学术会议的演讲台上,面对满场期待的目光,你是否经历过这样的尴尬时刻——台下观众低头刷手机,偶尔抬头瞥一眼你的幻灯片࿰…...
基于vue的消息推送平台[vue]-计算机毕业设计源码+LW文档
摘要:本文详细阐述了一个基于Vue框架的消息推送平台的设计与实现过程。该平台旨在为企业和开发者提供高效、精准的消息推送服务,以满足不同场景下的信息传播需求。通过使用Vue及相关技术栈,实现了用户管理、消息模板管理、消息推送管理等核心…...
Volo gRPC-Web支持:让浏览器直接调用gRPC服务
Volo gRPC-Web支持:让浏览器直接调用gRPC服务 【免费下载链接】volo Rust RPC framework with high-performance and strong-extensibility for building micro-services. 项目地址: https://gitcode.com/gh_mirrors/vo/volo Volo是一个基于Rust的高性能、强…...
山东大学软件学院项目实训记录(三)——基于MetaHuman等插件实现数字人的发型及服饰制作
前言本项目 研发面向医学教育的医患沟通模拟与评价系统,基于大模型实现智能交互、个性化病例模拟和评分,为医学生提供沉浸式医患沟通实训场景,解决线下标准化病人资源稀缺的问题,提升医学生医患沟通实操能力。本人负责美术工作&am…...
UltraEdit正则表达式实战:高效文本处理技巧
1. UltraEdit正则表达式入门指南 第一次接触UltraEdit的正则表达式功能时,我被它的强大震撼到了。记得当时需要处理一个5万行的日志文件,手动操作简直要命,直到发现了这个神器。UltraEdit的正则语法虽然有些特殊,但一旦掌握就能大…...
穷举法实战:如何高效解决复杂问题
1. 穷举法:暴力美学的智慧结晶 第一次接触穷举法时,我盯着屏幕上的三重循环发呆了十分钟——这种把所有可能性都试一遍的"笨办法",居然也能算算法?直到后来在真实项目中用它解决了密码锁破解问题,才明白这种…...
Gotestsum自定义命令实战:从基础配置到高级用法
Gotestsum自定义命令实战:从基础配置到高级用法 【免费下载链接】gotestsum go test runner with output optimized for humans, JUnit XML for CI integration, and a summary of the test results. 项目地址: https://gitcode.com/gh_mirrors/go/gotestsum …...
CentOS7下NTP时间同步服务配置与常见依赖问题排查
1. CentOS7时间同步服务的重要性 想象一下这样的场景:公司内部有十几台服务器,有的跑数据库,有的跑Web应用,还有的负责定时任务。突然有一天,你发现数据库里的订单创建时间比实际晚了3分钟,定时任务提前执行…...
