Go语言是怎样诞生的?

Go语言的创始人有三位,分别是图灵奖获得者、C语法联合发明人、Unix之父肯·汤普森
(Ken Thompson)、Plan 9操作系统领导者、UTF-8编码的最初设计者罗伯·派克(Rob Pike)、
以及Java的HotSpot虚拟机和Chrome浏览器的JavaScript V8引擎的设计者之一
罗伯特·格瑞史莫(Robert Griesemer)。

他们可能都没有想到,他们三个人在2007年9月20日下午的一次普通讨论,
就这么成为了计算机编程语言领域的一次著名历史事件,
开启了一个新编程语言的历史。

Go是否值得我们学习?

1、基于21世纪互联网的C语言。

2、如今的Go语言已经逐渐成为了云计算时代基础设施的编程语言。

3、云计算基础设施软件的大部分流行和可靠的作品,比如:Docker、
Kubernetes、Prometheus、Ethereum(以太坊)、Istio、CockroachDB、
InfluxDB、Terraform、Etcd、Consul等等。

4、Go除了在云计算基础设施领域,拥有上面这些杀手级应用之外,
Go语言的用户数量也在近几年快速增加。

5、Go语言项目技术负责人罗斯·考克斯甚至还专门写过一篇文章,
全世界范围的Gopher数量从2017年中旬的最多100万,增长到2019年11月的最多196万,
大概每18个月翻一番。庞大的Gopher基数为Go未来的发展提供持续的增长潜力和更大的想象空间。

Go 语言的核心优势

1、 高速的效率
Go 语言在保证了快速编译的同时,也保证了高效的开发效率和程序运行性能。
开发过程中相较于 Java 和 C++ 呆滞的编译速度,Go 的快速编译时间是一个主要的效率优势。

2、 易学习,成本低
Go 语言语法简单,包含了 类C 语法。因为 Go 语言容易学习,所以一个普通的大学生,
只要有基础的 C 语言基础,花几个星期就能写出来可以上手的、高性能的应用。

3、 强大的标准库
Go 里面的标准库基本上已经是非常稳定了,特别是网络层、系统层的库非常实用。
Go 语言的 lib 库麻雀虽小五脏俱全。
Go 语言诞生在互联网时代,因此它天生具备了去中心化、分布式等特性,
具体表现之一就是提供了丰富便捷的网络编程接口。

4、 简单的高并发
Go 语言的 Goroutine 和 Channel 这两个神器简直就是并发和异步编程的巨大福音。
像 C、C++、Java、Python 和 JavaScript 这些语言的并发和异步方式太控制就比较复杂了,
而且容易出错,而 Go 解决这个问题非常地优雅和流畅。

5、 出身名门、血统纯正
从 Go 语言的创造者,到 Go 语言的富爸爸 Google 公司,那可以说是占尽了先机。
Google 在业界的知名度和实力自然不用多说,Google 公司聚集了一批牛人,
在各种编程语言称雄争霸的局面下推出新的编程语言,自然有它的战略考虑。

6、 规范性
Go 语言带来的代码规范之外,还有强大的编译检查、完整的软件生命周期工具,
具有很强的稳定性。Go提供了软件生命周期(开发、测试、部署、维护等等)
的各个环节的,如 go tool、gofmt、go test。

Go语言的使用者们
Google
这个不用多做介绍,作为 Go 语言的富爸爸,当仁不让。

Facebook-Facebook 也在用,为此他们还专门在 Github 上建立了一个开源组织 facebookgo,大家可以通过访问查看 facebook 开源的项目。

腾讯
腾讯作为国内的大公司,还是敢于尝试的,尤其是 Docker 容器化这一块,他们在 2015年 已经做了 docker 万台规模的实践。

阿里-阿里巴巴具体的项目不太清楚,不过听说其系统部门、CDN 等正在招 Go 方面的人。
京东-京东云消息推送系统、云存储,以及京东商城等都有使用 Go 做开发。

小米-小米对 Golang 的支持,莫过于运维监控系统的开源。
此外,小米互娱、小米商城、小米视频、小米生态链等团队都在使用 Golang。
360-360对 Golang 的使用也不少,一个是开源的日志搜索系统 Poseidon,托管在 Github 上。

更多技术内容关注 ---> 

go语言学习笔记-初识Go语言的更多相关文章

  1. Go语言学习笔记(一) [Go语言的HelloWorld]

    日期:2014年7月18日   1.简介     Go 编程语言是一个使得程序员更加有效率的开源项目.Go 是有表达力.简 洁.清晰和有效率的.它的并行机制使其很容易编写多核和网络应用,而新奇的类型系 ...

  2. C语言学习笔记一---C语言概述

    一.编程语言与解释语言 1.程序的执行 a.解释:借助一个能试图理解程序的程序,使计算机按要求执行你自己写的程序 b.编译:将所写程序翻译为机器语言写的程序,使计算机按要求执行你自己写的程序 2.两者 ...

  3. C语言学习笔记01——C语言概述

    作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! 1 C语言的起源 1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritc ...

  4. 【C语言学习笔记】C语言函数执行成功时,返回1和返回0,究竟哪个好?

    基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...

  5. R语言学习笔记1——R语言中的基本对象

    R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...

  6. C语言学习笔记:15_c语言中的进制操作.c

    /* * 15_c语言中的进制操作.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...

  7. C语言学习笔记---2.C语言数据类型

    1.C语言基本数据类型 1.1 int类型 int类型是有符号整型,即int类型的值必须是整数,可以是正整数.负整数或零.其取值范围依计算机系统而异.一般而言,储存一个int要占用一个机器字长. 声明 ...

  8. C语言学习笔记---1.C语言概述

    1.典型C程序结构 2.C程序细节 2.1#include指令和头文件 #include这行代码是一条C预处理器指令(preprocessor directive).通常,C编译器在编译前会对源代码做 ...

  9. C语言学习笔记 (008) - C语言字符串操作总结大全(超详细)(转)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...

随机推荐

  1. MKL与VS2019配置方法

    VS2019配置oneAPI并调用MKL库 oneAPI oneAPI是一个跨架构的编程工具,旨在简化跨GPU.CPU.FPGA和AI加速器之间的编程,可以与英特尔自身设备,或其他厂商的芯片配合使用, ...

  2. go学习第一课--语法基础

    一.hello world 新建文件helloworld.go package main import "fmt" func main() { fmt.Println(      ...

  3. python学习-Day39-HTML-form表单

    目录 HTML-form表单 form表单 属性action input标签(输入元素) 文本域(Text Fields) 密码字段 单选按钮(Radio Buttons) 复选框(Checkboxe ...

  4. 详谈:pNFS增强文件系统架构

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 通过 NFS(由服务器.客户机软件和两者之间的协议组成) ...

  5. .NET混合开发解决方案8 WinForm程序中通过设置固定版本运行时的BrowserExecutableFolder属性集成WebView2控件

    系列目录     [已更新最新开发文章,点击查看详细] 在我的博客<.NET混合开发解决方案7 WinForm程序中通过NuGet管理器引用集成WebView2控件>中介绍了WinForm ...

  6. 看 AWS 如何通过 Nitro System 构建竞争优势

    目录 目录 目录 前言 Amazon Nitro System Overview AWS EC2 的虚拟化技术演进之路 Nitro Hypervisor Nitro Cards Nitro Contr ...

  7. MinGW 和 TDM 的问题

    目前遇到的一个小问题就是批量声明时的初始化. mingw gcc 9.2:不支持int a,b,c=5; 所得数为a=0 b=0 c=5. 而在TDM gcc 5.1中,可以同时赋值. 第二个问题,T ...

  8. 机构:DARPA

    DARPA,美国国防部高级研究计划局. 2021年3月19日,英特尔(Intel)宣布与美国国防部高级研究计划局(DARPA)达成的一项新合作,旨在推动在美制造的专用集成电路(ASIC)芯片的开发. ...

  9. Git分离头指针

    Git头指针 Git中有HEAD头指针的概念.HEAD头指针通常指向某个分支的最近一次提交,但我们也可以改变它的指向,使其指向某个commit,此时处于分离头指针的状态. 如下,改变HEAD的指向,g ...

  10. Fail2ban 使用Fail2ban监禁SSH服务的恶意IP

    Fail2ban自带了很多服务的过滤器(filter)和动作(action),它已经帮你做好了,所以一般情况下我们无需定义,直接引用即可. 这边只是一个示例. 系统版本:Ubuntu 16.04.5 ...