语言 重量计算_golang快速入门[1]-go语言导论

论坛 期权论坛     
选择匿名的用户   2021-5-22 18:53   90   0
<div>
<p></p>
<div style="text-align:center;">
  <img alt="99c61e0eae3fbf221c0d3d676fed64de.png" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-abb90160c5ccb291defc414582fddbb3.png">
</div>
<h2>声明</h2>
<ul><li>这是一套帮助初学者从0到1学习go语言的开源教程,致力于打造最完整、最强悍、最有深度的Go语言学习体系</li><li>我希望这套课程能够涵盖Go语言的所有体系、并致力于用大量的案例来诠释其用法</li><li>鉴于作者水平有限,真诚地希望能够集所有人的智慧,完善此项目,链接附后</li></ul>
<h2>简介</h2>
<ul><li>Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言</li><li>Go的最初目标是消除Google软件开发的缓慢性和笨拙性,从而使流程更具效率和可扩展性,更多的关注于软件工程领域</li><li>Go致力于解决当代大型工程项目面临的多核处理,网络系统,海量计算集群、快速构建等问题,Go在语言级别考虑并发问题,提供简单高效的并发编程</li><li>罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目</li><li>Go是基于Inferno操作系统所开发的</li><li>Go于2009年11月正式宣布推出,成为开放源代码项目,支持Linux、macOS、Windows等操作系统</li><li>在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”</li><li>很多重要的开源项目都是使用Go语言开发的,其中包括 Docker、Go-Ethereum、Thrraform、Kubernetes、etcd、hyperledger、tidb</li></ul>
<h2>基本语言的历史</h2>
<ul><li>1960年 Ken Thompson(肯.汤普森) 发明了B语言</li><li>1972年 Dennis Ritchie(丹尼斯·里奇)发明了C语言</li><li>1982年 Bjarne Stroustrup(本贾尼)发明了C&#43;&#43;语言</li><li>1989年 Guido von Rossum 发明了Python语言</li><li>1995年SUN公司发明了Java语言</li><li>2007年Go语言诞生</li><li>2009年的11月对外正式发布</li></ul>
<h2>Go语言创始人</h2>
<p>对语言进行评估时,明白设计者的动机以及语言要解决的问题很重要。Go语言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他们都是计算机科学领域的重量级人物。</p>
<ul><li>Ken Thompson<br>贝尔实验室 Unix 团队成员,C语言、Unix 和 Plan 9 的创始人之一,在 20 世纪 70 年代,设计并实现了最初的 UNIX 操作系统,仅从这一点说,他对计算机科学的贡献怎么强调都不过分。他还与 Rob Pike 合作设计了 UTF-8 编码方案</li><li>Rob Pike<br>Go语言项目总负责人,贝尔实验室 Unix 团队成员,除帮助设计 UTF-8 外,还帮助开发了分布式多用户操作系统 Plan 9、Inferno 操作系统和 Limbo 编程语言,并与人合著了《The Unix Programming Environment》,对 UNIX 的设计理念做了正统的阐述</li><li>Robert Griesemer<br>就职于 Google,参与开发 Java HotSpot 虚拟机,对语言设计有深入的认识,并负责 Chrome 浏览器和 Node.js 使用的 Google V8 JavaScript 引擎的代码生成部分</li></ul>
<h2>go语言的继承</h2>
<ul><li>Go语言有时候被描述为“C类似语言”,或者是“21世纪的C语言”</li><li>Go从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等思想</li><li>Go继承了C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配</li><li>Go语言的家族树中还有其它的祖先。其中一个有影响力的分支来自Niklaus Wirth所设计的Pascal语言</li><li>Modula-2语言激发了包的概念,然后Oberon语言摒弃了模块接口文件和模块实现文件之间的区别。第二代的Oberon-2语言直接影响了包的导入和声明的语法,还有Oberon语言的面向对象特性所提供的方法的声明语法等</li><li>Go语言的另一支祖先,带来了Go语言区别其他语言的重要特性,灵感来自于贝尔实验室的Tony Hoare于1978年发表的鲜为外界所知的关于并发研究的基础文献顺序通信进程(communicating sequential processes,缩写为CSP)
   <ul><li>在CSP中,程序是一组中间没有共享状态的平行运行的处理过程,它们之间使用管道进行通信和控制同步。不过Tony Hoare的CSP只是一个用于描述并发性基本概念的描述语言,并不是一个可以编写可执行程序的通用编程语言</li><li>Rob Pike和其他人开始不断尝试将CSP引入实际的编程语言中。他们第一次尝试引入CSP特性的编程语言叫Squeak,是一个提供鼠标和键盘事件处理的编程语言,它的管道是静态创建的</li><li>然后是改进版的Newsqueak语言,提供了类似C语言语句和表达式的语法和类似Pascal语言的推导语法。Newsqueak
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP