Go语言并发编程系列: 第一章:Go的前世今生

本文是Go语言并发编程系列的第一章,介绍了Go语言的起源、发展历程及主要特性,包括开源性、静态类型、自动GC、独特的并发模型等。文章强调了Go语言在服务端开发的优秀表现,如稳定性和高效性能,并提及了其在人工智能、区块链、物联网、5G领域的应用前景。
摘要由CSDN通过智能技术生成

Go语言并发编程系列: 第一章:Go的前世今生
Go语言并发编程系列: 第二章:Go安装部署
Go语言并发编程系列: 第三章:Go语法介绍
Go语言并发编程系列: 第四章:多线程编程概述
Go语言并发编程系列: 第五章:Go的并发原理
Go语言并发编程系列: 第六章:Go锁的应用
Go语言并发编程系列: 第七章:实战-聊天机器人
Go语言并发编程系列: 第八章:实战-Go实现一个软件性能测试工具
Go语言并发编程系列: 第九章:实战-Go实现Concurrent Map
Go语言并发编程系列: 第十章:实战-Go实现网络爬虫


一,Go语言历史和特性

1.1,Go语言的历史

  • 2007年9月
    罗伯·派克在Google分布式编译平台上进行C++编译,在漫长的等待过程中,他和罗伯特·格瑞史莫探讨了程序设计语言的一些关键性问题,他们认为,简化编程语言相比于在臃肿的语言上不断增加新特性,会是更大的进步。随后他们在编译结束之前说服了身边的肯·汤普逊,觉得有必要为此做一些事情。几天后,他们发起了一个叫Golang的项目,将它作为自由时间的实验项目。
    罗伯派克

  • 2008年5月
    Google无意中发现了Go语言的巨大潜力,得到了Google的全力支持,这些人开始全职投入Go语言的设计和开发。

  • 2009年11月
    Go语言第一个版本发布。2012年3月 第一个正式版本Go1.0发布。

  • 2015年8月
    Go1.5发布,这个版本被认为是历史性的。完全移除C语言部分,使用Go编译Go,少量代码使用汇编实现。另外,他们请来了内存管理方面的权威专家罗克·赫德森,对GC进行了重新设计,支持并发GC,解决了一直以来广为诟病的GC时延问题。并且在此后的版本中,又对GC做了更进一步的优化。到Go1.8时,相同业务场景下的GC时延已经可以从Go1.1的数秒,控制在1ms以内。GC问题的解决,可以说Go语言在服务端开发方面,几乎抹平了所有的弱点。

在Go语言的版本迭代过程中,语言特性基本上没有太大的变化,基本上维持在Go1.1的基准上,并且官方承诺,新版本对老版本下开发的代码完全兼容。事实上,Go开发团队在新增语言特性上显得非常谨慎,而在稳定性、编译速度、执行效率以及GC性能等方面进行了持续不断的优化。
在这里插入图片描述

1.2,Go语言的特性

Go语言主要有以下这几个关键词的语言特性

  • 开源性
    Go的作者严格遵守软件世界里的开源精神,源代码完全开源,为Go的生态建设奠定了坚实的基础。

  • 静态类型和编译型
    在Go中,每个变量都必须在声明时指定变量的类型,这点和Java一致。另外,程序必须通过编译生成可执行文件,而后才能被执行。不过,Go的语法非常简洁,就像一些解释型脚本语言那样,非常简单易用。

  • 平台无关性
    这主要是指计算平台和操作系统的无关性,目前,Go已经支持几乎所有主流的计算平台和操作系统。只要下载相应的Go语言安装包,并且经过简单的安装和配置,就可以使用Go了。

  • 自动GC
    Go的应用程序在运行过程中的垃圾回收工作一般由Go运行时系统全权负责。当然,Go也提供了我们对此工作进行干预的接口。

  • 独特的并发模型:
    Go拥有自己的并发编程模型,主要的组成部分有goroutine(也可以叫Go程)
    在这里插入图片描述

  • 齐全的构建工具集合:
    Go自带了很多强大的命令和工具,可以轻松的完成Go应用程序的获取,编译,测试,安装,运行,分析等一系列工作。

  • 多编程范式:
    Go支持函数式编程。函数类型为第一等类型,函数类型可以传递和赋值。此外,Go还支持像Java那样的面向对象编程,有接口类型与实现类的概念,Go没有继承的概念,用嵌入实现了继承的功能。

  • 代码风格的统一:
    Go安装包中有自己的代码格式化工具,可以用来统一程序的代码风格。

  • 高效的编程和运行
    Go语言简洁,直接的语法使我们可以快速的编写程序。Go的底层做了大量的性能优化,可以充分利用机器的资源快速运行。

  • 丰富的标准库
    Go是通用的编程语言,标准库中提供了很多开箱即用的API。

  • 完善的第三方生态
    Go语言拥有完善的第三方生态,全球目前有上百万的开发者在Go的社区作着巨大的贡献,贡献了很多非常有价值的开源软件,例如:Goat,grpc等等。

二,总结

Go语言拥有如此多的先进特性,笔者相信在Go在未来人工智能,区块链,物联网,5G等领域定能大有作为!
在这里插入图片描述

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值