go语言学习笔记-初识Go语言
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语言的更多相关文章
- Go语言学习笔记(一) [Go语言的HelloWorld]
日期:2014年7月18日 1.简介 Go 编程语言是一个使得程序员更加有效率的开源项目.Go 是有表达力.简 洁.清晰和有效率的.它的并行机制使其很容易编写多核和网络应用,而新奇的类型系 ...
- C语言学习笔记一---C语言概述
一.编程语言与解释语言 1.程序的执行 a.解释:借助一个能试图理解程序的程序,使计算机按要求执行你自己写的程序 b.编译:将所写程序翻译为机器语言写的程序,使计算机按要求执行你自己写的程序 2.两者 ...
- C语言学习笔记01——C语言概述
作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! 1 C语言的起源 1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritc ...
- 【C语言学习笔记】C语言函数执行成功时,返回1和返回0,究竟哪个好?
基本上,没有人会将大段的C语言代码全部塞入 main() 函数,更好的做法是按照复用率高,耦合性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数.C语言代码的组合千变万化,因此函数的功能可能会 ...
- R语言学习笔记1——R语言中的基本对象
R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发(也因此称为R),现在由“R开发核心 ...
- C语言学习笔记:15_c语言中的进制操作.c
/* * 15_c语言中的进制操作.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include & ...
- C语言学习笔记---2.C语言数据类型
1.C语言基本数据类型 1.1 int类型 int类型是有符号整型,即int类型的值必须是整数,可以是正整数.负整数或零.其取值范围依计算机系统而异.一般而言,储存一个int要占用一个机器字长. 声明 ...
- C语言学习笔记---1.C语言概述
1.典型C程序结构 2.C程序细节 2.1#include指令和头文件 #include这行代码是一条C预处理器指令(preprocessor directive).通常,C编译器在编译前会对源代码做 ...
- C语言学习笔记 (008) - C语言字符串操作总结大全(超详细)(转)
1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度 ...
随机推荐
- 在Java中==的一个坑
观察下面代码,输出结果是什么? public static void main(String[] args) { Integer p = 10000; Integer q = 10000; Syste ...
- 不care工具,在大数据平台中Hive能自动处理SQL
摘要:有没有更简单的办法,可以直接将SQL运行在大数据平台? 本文分享自华为云社区<Hive执行原理>,作者: JavaEdge . MapReduce简化了大数据编程的难度,使得大数据计 ...
- Linux根目录下各文件目录的作用
bin 用户二进制可执行文件 boot 系统启动引导文件 dev[device] 系统中使用的外部设备,但不是放的外部设备的驱动.一个访问这些外部 ...
- Django-ORM-连表正反操作
一.A表男生,B表女生,C表关系 1通过A表查与某个男生有关系的所有女生 思想1:在A表中确认男生后,通过反查到C表,获取相关内容(QuerySet),然后再跨到B表获取所有女生信息. obj=mod ...
- CentOS 8迁移Rocky Linux 8手记
前言 由于CentOS 8的支持已经到期了,.NET 6也不支持了,然后也无法升级,导致使用起来已经非常不便,无奈只有迁移服务器这个选项了. 选择发行版本一直是一个比较头疼的问题,首先我不是专门运维的 ...
- 将VScode添加至右键菜单
首先展示下最终效果: 右击单个文件: 右击文件夹: 操作流程: 1.右击VScode快捷方式查看属性,找到快捷方式对应的目标路径 2.随便找个地方新建个XXX.reg的注册表脚本文件,文件名叫啥都可以 ...
- 使用fastai训练的一个性别识别模型
在学习了python中的一些机器学习的相关模块后,再一次开始了深度学习之旅.不过与上次的TensorFlow框架不同,这一次接触的是fast.ai这样一个东西.这个框架还不稳定,网上也没有相关的中文文 ...
- Oracle 常用运维命令整理
点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 一.oracle建库与删库命令 (1)oracle11g ...
- [Java反序列化]jdk原生链分析
jdk原生链分析 原文链接 作为jdk中目前发现的原生链,还是有必要要分析这个用法的.全文仅限尽可能还原挖掘思路 JDK7u21 在很多链中,TemplatesImpl一直发挥着不可或缺的作用,它是位 ...
- HTML区块
1.HTML 可以通过 <div> 和 <span>将元素组合起来. 2.HTML <div> 元素 HTML <div> 元素是块级元素,它可用于组合 ...