【Golang】01 Go 语言初识

本文概述了Go语言由Google创建的背景,重点介绍了其核心团队、初衷(为应对硬件加速和复杂性挑战),以及关键发展里程碑,如并发支持、垃圾回收和GC优化。Go语言的特点如C+Python结合、内置并发机制和高效工具被详细阐述。
摘要由CSDN通过智能技术生成

一、Go语言的核心开发团队

1、Ken Thompson(肯·汤普森)

2、 Rob Pike(罗布·派克)

3、Robert Griesemer

二、Google 创造Golang 原因

1、计算机硬件技术更新频繁,性能提高更快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。

2、软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。

1)现有编程语言 缺乏风格不统一、计算能力不够、处理并发不够好

3、企业运行维护很多C/C++ 的项目,c/cc++程序虽然运行速度很快,但是变异速度很慢,同时存在内存泄漏的一系列的困扰需要解决

三、Golang的发展

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

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

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

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

5、最新版本1.15

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

四、Go语言的特点
1、Go 语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达书来形容Go语言:Go = C + Python

2、说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发

3、从C语言中集成了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数值,指针等等,也保留了和C语言一样的编译执行方式及弱化的指针

4、引入包的概念,用于组织程序结构,Go语言的一个文件都要归属于一个包,而不能单独存在。

5、垃圾回收机制,内存自动回收,不需要开发人员关心

6、天然并发(重要特点)

1)从语言层面上支持并发,实现简单

2)goroutine:轻量级线程,可实现大并发处理,高效利用多核。

3)基于CPS并发模型(Communicating Sequentisl Processes)实现

7、吸收了管道通讯机制,形成Go语言特有的管道Channe 通过channel 可以实现不同的groute之间的相互通信

8、函数可以多个返回值

9、新的创新 比如:切片slice 、延时执行defer等

五、开发工具介绍

1、VSCode
https://code.visualstudio.com/download

2、IDEA
需要安装插件

3、Eclipse
安装GoEclipse插件

4、Vim

5、Emacs
编辑器、开发环境

6、Sublime Text

参考网站: https://studygolang.com/articles/14909

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值