go语言的理解,看这一篇就够了

1.来源

Go语言是谷歌2009年发布的第二款开源编程语言

2.谷歌为什么要创建Go语言

  • 计算机硬件技术更新频繁,  性能提高很快,默目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能
  • 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个简洁而高效的编程语言.[现有语言:1.风格不统一 2.计算能力不够 3.处理大并发不够好]
  • 企业运行维护很多c,c++的项目,c/c++程序运行速度虽然快,但是编译速度慢,目前还存在内存泄漏的一系列问题

针对上面的一系列问题,Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程,Go支持面向对象,而且具有真正的闭包(closures)反射 (reflection)等功能,它有很多强大的功能,比如:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算

 3.Go语言的里程碑

2007年,谷歌工程师Ken Thompson、Rob Pike、Robert Griesemer开始设计一门全新的语言,这是Go语言的最初原型。
2009.11.10 ,Google将Go语言以开放源代码的形式向全球发布。
2015年8月19日  ,Go1.5版本发布,本次更新中移除了“最后残余的C代码”,请内存管理方面权威专家Rick Hudson对GC进行重新设计(重要的修正)
2017年2月16日 , Go1.8版本发布
2017年8月24日 , Go1.9版本发布
2018年2月16日 , Go1.10版本发布
2018年8月24日 , Go1.11版本发布
2019年2月25日 , Go1.12版本发布
2019年9月03日 , Go1.13版本发布
2020年2月25日 , Go1.14版本发布
2020年8月11日 , Go1.15版本发布
2021年2月16日 , Go1.16版本发布

2021年8月16日,  Go1.17版本发布

2022年3月15日,  Go1.18版本发布

2022年8月02日,  Go1.19版本发布

2023年2月02日,  Go1.20版本发布

4.Go语言的特点 

Go语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go: Go = C+ Python, 说明Go语言既有C静态语言的运行效率,又能达到Python动态语言的快速开发.并且Go语言除了OOP外,还对近年出现的一些小众的编程哲学思想有所吸收,例如,Go语言接受了函数式编程的一些想法,支持匿名函数闭包,再如,Go语言接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道,并推荐使用消息而不是共享内存来进行并发编程,总体来说,Go语言是一个非常现代化的语言,精小但非常强大,归纳总结如下:

(1).从C语言那里继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针

等,也保留了C语言一样的编译执行方法及弱化的指针.

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

(3).垃圾回收机制,内存自动回收,不需要开发人员管理

(4).天然支持并发

  • 从语言层次支持并发,实现简单
  • goroutine,轻量级线程,可实现大并发处理,高效利用多核
  • 基于CPS并发模型(Communicating Sequential Processes)实现

(5).吸收了管道通信机制,形成Go语言特有的管道channel,通过管道channel,可以实现不同的goroutine之间的相互通信

(6).函数返回多个值

(7).新的创新,比如:切片,延时执行defer

用更简短的总结如下,Go 语言最主要的特性有:

  • 自动垃圾回收
  • 更丰富的内置类型
  • 函数多返回值
  • 错误处理
  • 匿名函数和闭包
  • 类型和接口
  • 并发编程
  • 反射
  • 语言交互性

5.Go语言的用途

区块链应用

区块链技术简称BT(Blockchain technology)也被称为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明,让每个人均可参与数据库记录

后端服务器应用(并发)

美团后台流量支撑程序,支撑主站后台流量(排序、推荐、搜索等),提供负载均衡、cache、容错、按条件分流,统计运行指标(qps、latency)等功能 

Go语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言,对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率,它提供了海量并行的支持,很适合游戏服务端的开发,包括游戏服务端通讯逻辑和数据存储等架构

云计算和云服务开发

  • 盛大云CDN(内容分发网络),包括CDN的调度系统、分发系统、监控系统、短域名服务,CDN内部开放平台、运营报表系统及其他一些小工具等
  • 京东消息推送云服务(京东云),包括京东分布式文件系统,后台服务采用Go语言实现

6.go语言的开发工具以及安装和配置SDK

[go学习笔记.第二章] 2.go语言的开发工具以及安装和配置SDK

好了,go语言的简单介绍就到这里了,更多Go语言相关知识:

Go语言基础:[go学习笔记.第二章] 1.go的概述

Gin框架开发:[golang gin框架] 1.Gin环境搭建,程序的热加载,路由GET,POST,PUT,DELETE

Beego框架开发:[Beego]1.Beego简介以及beego环境搭建,bee脚手架的使用,创建,运行项目

Go微服务开发:[golang 微服务] 1.单体式架构以及微服务架构介绍 

流媒体在线直播系统:1.直播的简单介绍以及借助腾讯云直播实现在线直播

docker相关:[Docker]六.Docker自动部署nodejs以及golang项目

k8s相关:[Kubernetes]2. k8s集群中部署基于nodejs golang的项目以及Pod、Deployment详解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值