【第一章:Golang系列篇】Go(Golang)概述

简介: 【第一章:Golang系列篇】Go(Golang)概述

系列文章目录

第一章 :【Golang系列篇】Go(Golang)概述

第二章:【Golang系列篇】Go基础-环境安装、Go程序初体验

大家好,我是无名小歌。

好久不见啊,各位!!!停更快2个月了,在这期间,忙于备赛国赛的内容(比赛前二十几天),也就全身心的一头扎了进去,比赛完之后呢也因为各种琐事和各种为了放松的心态,以至于直到今天才重新回来。

准备出go语言的系列内容,希望您不要错过,期待你的关注。

首先介绍的是golang编程语言的开山篇

看完你会懂的为什么出现Go、为什么学习Go、Go应用领域、Go的特性等等。

欢迎加入云社区


一、Go概述

Go 是一种静态强类型、编译型、一个开源的编程语言。

静态强类型:性能很好(如:c/c++…)


二、Go的诞生

2.1、创建Go的三大牛人!!!

  • Ken Thompson(肯·汤普森)美国计算机科学学者与软件工程师,任职于贝尔实验室Entrisphere, IncGoogle Inc。与丹尼斯·里奇同为1983年图灵奖得主。他与丹尼斯·里奇设计了B语言、C语言,创建了Unix和Plan 9操作系统,编程语言Go的共同作者。发展正规表示法,写作了早期的电脑文字编辑器QED与ed,定义UTF-8编码,以及发展电脑象棋。

  • Rob Pike(罗布·派克)Unix的先驱,是贝尔实验室最早和Ken Thompson以及 Dennis M. Ritche 开发Unix的猛人,UTF-8的设计人。 他还在美国名嘴David Letterman 的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的是,罗伯伯还是1980年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设计的珈玛射线望远镜差点被NASA用在航天飞机上。Rob Pike AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系统。

  • Robert Griesemer:曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎v8。

2.2、为什么出现Go???

  • 计算机硬件技术更新频繁,以至于性能提生很快。而对应的主流的编程语言更新迭代明显落后于计算机硬件的发展,所有这里出现一个问题,编程语言不能有效合理利用多核多CPU的特性来提升软件系统的性能,造成了资源的浪费。
  • 随之时间推移,现在主流的语言编写的软件系统(或项目)的复杂度越来越高,维护成本也越来越高,所以目前缺乏一个只够简洁高效的编程语言。(现有的编程语言缺点:风格不统一、计算能力不够、处理大并发不够)
  • c/c++编写的程序运行速度虽然很快,但它编译速度却很慢,还存在内存泄漏的问题。

综上所述,为了解决这些问题,造就了Golang的诞生。

内存泄漏(Memory Leak):指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。

2.3、Go的发展简史

针对如上的各种情况,于是在2007年,谷歌工程师Ken Thompson(肯·汤普森)、Rob Pike(罗布·派克)、Robert Griesemer 他们正式开始Golang的设计与开发。

2009年11月正式开源发布;

2012年3月,正式发布1.0版,走向成熟;

2015年8月,发布了1.5版,移除最后残余的 “C代码”;

2017年2月,发布1.8版

2017年8月,发布1.9版

2018年2月,发布1.10版

2018年8月,发布1.11版

2019年2月,发布1.12版

三、为什么要学习Go!!!

Go语言是区块链最主流的编程语言。Go语言是Google公司创建的语言,也是Google主推语言。

国外大公司如:Google、AWS、Cloudfllare、CoreOS;国内大公司如:七牛、阿里、百度、腾讯、头条、京东、小米、哔哩哔哩等都已经大规模使用Golang开发其云计算相关产品。

跟上时代步伐,才不会被时代淘汰。

特点:

Go语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言:Go =C+ Python,说明Go语言既有c静态语言程序的运行速度,又能达到Python动态语言的快速开发。

静态语言:性能很好(如:c/c++…)

动态语言:开发效率快(如:python)

四、Go应用领域

区块链开发工程师

Go服务器端/游戏软件工程师

Golang分布式/云计算软件工程师

最后

我是无名小歌,欢迎大家一键三连、加入云社区

(⊙o⊙),我们下期再见!!!

目录
相关文章
|
23天前
|
Go
golang语言之go常用命令
这篇文章列出了常用的Go语言命令,如`go run`、`go install`、`go build`、`go help`、`go get`、`go mod`、`go test`、`go tool`、`go vet`、`go fmt`、`go doc`、`go version`和`go env`,以及它们的基本用法和功能。
29 6
|
23天前
|
存储 Go
Golang语言基于go module方式管理包(package)
这篇文章详细介绍了Golang语言中基于go module方式管理包(package)的方法,包括Go Modules的发展历史、go module的介绍、常用命令和操作步骤,并通过代码示例展示了如何初始化项目、引入第三方包、组织代码结构以及运行测试。
30 3
|
1月前
|
数据库连接 Go API
Golang中的25个常见错误:更好地进行go编程的综合指南
Golang中的25个常见错误:更好地进行go编程的综合指南
|
27天前
|
Go 开发者
|
27天前
|
Go 开发者
|
2月前
|
运维 监控 测试技术
Golang质量生态建设问题之接入并使用Go单元测试插件的问题如何解决
Golang质量生态建设问题之接入并使用Go单元测试插件的问题如何解决
|
1月前
|
监控 Serverless Go
Golang 开发函数计算问题之Go 语言中切片扩容时需要拷贝原数组中的数据如何解决
Golang 开发函数计算问题之Go 语言中切片扩容时需要拷贝原数组中的数据如何解决
|
2月前
|
测试技术 Shell Go
Golang质量生态建设问题之Go语言的单元测试的问题如何解决
Golang质量生态建设问题之Go语言的单元测试的问题如何解决
|
3月前
|
Go
The “gopls“ command is not available. Run “go get -v golang.org/x/tools/gopls“ to install.【已解决】
The “gopls“ command is not available. Run “go get -v golang.org/x/tools/gopls“ to install.【已解决】
36 3
|
3月前
|
Go
【golang】Go 判断字符串是否包含指定字符
【golang】Go 判断字符串是否包含指定字符
53 1