01.Hello Go

作者: dino.ma 分类: Golang 发布时间: 2019-05-30 11:25

本次分享来自 @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 生成各个平台的二进制可执行文件
    • 跨平台、跨指令集、可交叉编译
  • 因为Go自带gc所以go生成的二进制文件相比于Rust(由工程师自我控制GC)文件要大的多(Runtime)
      • 语言层面支持并发
        • 并发与并行的区别
          • 并发(concurrency)和并行(parallellism)是:解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。
            解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。
            解释三:并行是在一台处理器上“同时”处理多个任务,并发是在多台处理器上同时处理多个任务。如 hadoop 分布式集群。所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。
        • 协程调度器、channel 、go(协程)
      • 内置GC
      • 简单容易上手
        • 语法简单
        • 基础库丰富
      • 生态丰富活跃
  • How to learn to go

发表评论

电子邮件地址不会被公开。 必填项已用*标注