01.Hello Go
本次分享来自 @IT吴钧泽
附件 01-Hello-Go
Golang的前世今生
- What is go
- Go(又称Golang)是谷歌开发的一种静态强类型、编译型、并发型并自带gc(垃圾回收内存管理)的编程语言
- Golang father
- 罗勃·派克
维基百科,自由的百科全书
跳到导航跳到搜索
Rob Pike
Rob-pike.jpg
出生 1956年(62-63岁)
国籍 加拿大
职业 软件工程师
雇主 谷歌
网站 herpolhode.com/rob/
罗勃特·派克(Robert C. Pike,1956年-),昵称为罗勃·派克(Rob Pike),来自加拿大的程序员,曾经加入贝尔实验室,为 UNIX小组的成员。曾经参与过贝尔实验室九号计划、Inferno,与编程语言 Limbo的开发。他与肯·汤普逊共同开发了UTF-8。目前为 google的工程师,参与编程语言 Go与Sawzall的研发工作。 - 肯·汤普逊
维基百科,自由的百科全书
跳到导航跳到搜索
肯尼斯·蓝·汤普逊
Ken Thompson and Dennis Ritchie–1973.jpg
肯·汤普逊(左)和丹尼斯·里奇
原文名 Kenneth Lane Thompson
出生 1943年2月4日(76岁)
美国路易斯安那州新奥尔良
国籍 美国
母校 加州大学柏克莱分校(1965年获取理学学士,1966年获取理学硕士)
知名于 Unix
B语言
Belle
UTF-8
国际象棋的残局数据库
Go语言
奖项
IEEE皮奥尔奖(1982)
图灵奖(1983)
IEEE理察·卫斯里·汉明奖章(1990)
计算机先驱奖(1994)
计算机历史博物馆研究员奖(1997)
美国国家技术奖章(1998)
金井务奖(Tsutomu Kanai Award)(1999)
日本国际奖(2011)
科学生涯
研究领域 计算机科学
机构 贝尔实验室
Entrisphere公司
Google公司
肯尼斯·蓝·汤普逊(英语:Kenneth Lane Thompson,1943年2月4日-)小名肯·汤普逊(英语:Ken Thompson),美国计算机科学学者和工程师。黑客文化圈子通常称他为“ken”[1]。在贝尔实验室工作期间,汤普逊设计和实现了Unix操作系统。他创造了B语言——C语言的前身,而且他是Plan 9操作系统的创造者和开发者之一。2006年,汤普逊进入Google公司工作,与他人共同设计了Go语言。他与丹尼斯·里奇同为1983年图灵奖得主。此外,肯·汤普逊还参与过正则表达式和UTF-8编码的设计,改进了文本编辑器QED,创造了ed编辑器。他曾制造过专门用于下国际象棋的计算机“Belle”,并创建了残局数据库。
- 罗勃·派克
- Golang是一个出身名门(有2个好爸爸)的语言,出生时间不长所以更贴近于近代系统编程。(高并发、协程调度、降低研发成本、统一编码格式等)
- Why go
- 静态编译型语言
- 代码编写完成后需要go build 生成各个平台的二进制可执行文件
- 跨平台、跨指令集、可交叉编译
- 支持Windows、Linux、Mac OS
- 支持64位intel 386(AMD64)、32位intel 386、ARM64、ARM、mips64、ppc64、s390x Dropping down Go functions in assembly language
- 静态编译型语言

- 因为Go自带gc所以go生成的二进制文件相比于Rust(由工程师自我控制GC)文件要大的多(Runtime)
- 语言层面支持并发
- 并发与并行的区别
- 并发(concurrency)和并行(parallellism)是:解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。
解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。
解释三:并行是在一台处理器上“同时”处理多个任务,并发是在多台处理器上同时处理多个任务。如 hadoop 分布式集群。所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。
- 并发(concurrency)和并行(parallellism)是:解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。
- 协程调度器、channel 、go(协程)
- 并发与并行的区别
- 内置GC
- 简单容易上手
- 语法简单
- 基础库丰富
- 生态丰富活跃
- https://github.com/topics/go
- k8s
- docker
- etcd
- gin
- gogs
- nsq
- 语言层面支持并发
- How to learn to go
- Go Proverbs
- 简单、优雅、简练
- Go Proverbs
- Learning Resource
- Learning Project
- https://github.com/topics/go
- Docker
- K8s
- Go-kit/Go-mirco
- NSQ
- awesome-go
- Just Do It
- Create a project
- Run
- Debug and Study
- Run
- 学习就是一个不断遇到困难解决困难的过程
- Read Write And Think
- Read high quality code
- Write a lot of code
- Think independently and dare to deny
- 中华人民有一句老话叫做,好记性不如烂笔头,动手、动脑。
- Go Proverbs