简介

Go 语言又称 Golang,由 Google 公司于 2009 年发布,近几年伴随着云计算、微服务、分布式的发展而迅速崛起,跻身主流编程语言之列,和 Java 类似,它是一门静态的、强类型的、编译型编程语言,为并发而生,所以天生适用于并发编程(网络编程)。

目前 Go 语言支持 Windows、Linux 等多个平台,也可以直接在 Android 和 iOS 等移动端执行,从业务角度来看,Go 语言在云计算、微服务、大数据、区块链、物联网、人工智能等领域都有广泛的应用。所以当下学习正当时。

是谁创造了Go语言

Ken Thompson C语言Unix和Plan9的创始人之一,20世纪70年代 设计并实现了Unix操作系统,还和Rob Pike 设计了UTF-8编码。

Rob Pike 不但设计了UTF-8编码,还开发了分布式多用户操作系统Plan9 Inferno操作系统和Limbo编程语言。

Robert Griesemer 就职于Google,负责Chrome浏览器中Google V8引擎的代码。

他们于2007年开始设计Go语言,于2009年正式对外发布。Go语言即具备python等动态语言的开发速度,又拥有C/C++等编译型语言的性能与安全性。又被称作21世纪的C语言,不但能够访问底层操作系统还提供了强大的网络编程和并发编程,分布式编程。

Go语言特性

开放源代码 Go本身就是用Go语言编写的。

快速 天下武功唯快不破,选择一门快速的语言例如C语言,却难以开发,编译速度依赖性运行时错误都非常多,要么有些语言依赖关系太多,最重要的一个就是解释器本身,例如Java语言需要虚拟机才能运行代码,javascript和node.js维护起来就是噩梦了。尤其是遇到回调。Go语言一开始设计就考虑到快速编译。他能像其他解释性语言一样,你不会注意他正在编译。

安全 作为强类型静态语言,并自带垃圾回收机制所以也具有安全性。因为Go的语言设计拥有像C语言那样操作指针,但是他通常不会像C语言那样危险,因为他内存是由Go自身进行管理的。

代码简洁 Go语言不仅在编译上快速,而且代码简洁明了,易于阅读。

已编译 不需要虚拟机支持,可直接编译成机器代码,编译后的文件也不需要依赖其他包文件。

跨平台 Go语言拥有的交叉编译,可以轻松编译到指定的平台上运行:例如OS X、Linux、Windows、Arm或者其他平台。

自动垃圾回收 程序在运行过程中的垃圾回收工作一般由Go运行时系统全权负责。不过,Go也允许我们对此项工作进行干预。

内置包 Go语言拥有几乎所有你能用到的标准库。例如http网络协议包,json解析包,time时间包等等。这种碎片化的东西在一个系统中占用大部分时间。

完整的构建工具 Go语言出色的内置命令工具,它自带了很多强大的命令和工具,通过它们,可以很轻松地完成Go程序的获取、编译、测试、安装、运行、分析等一系列工作。例如自动设置代码格式,检查代码存在的问题,go fmt命令每次保存后自动格式化代码。

原生的并发编程 并发在Go语言中属于一大亮点,并发的最小单元是协程,是一个微线程却有别于线程。协程由Go语言自身创建,并且由Go语言自身的运行时runtime调度。在其他语言中需要通过线程来解决的问题。一台电脑能够开启的线程数量是有限制的。在Go语言中可以很轻松开启一个协程来处理,因为协程很微型,不会占用电脑资源。一台电脑可以轻松开启成千上万个协程,在这个大数据的时代,能够处理大流量的数据能力的语言,并且能够简单快速开放的语言,非Go语言莫属了。

哪些公司都在使用Go语言

Go社区中至少有100万名Go程序员。越来越多的公司都拥抱Go语言,最著名的使用Go语言的公司Google,Docker,Dropbox,Heroku,Uber等。国内的比如滴滴,腾讯,阿里,京东商城,爱奇艺,小米,360,美团,驴妈妈旅游网,斗鱼直播,探探 等等 都在使用Go语言。包括哔哩哔哩的后台也从java转向了Go 可见Go语言的受欢迎程度。

Golang 入门 : Go语言介绍相关推荐

  1. R语言入门1---R语言介绍以及学前注意事项

    R语言是从贝尔实验室的S语言演变而来的,基于S语言开发的商业软件Splus,可以方便的编写函数.建立模型,具有良好的扩展性,取得了巨大成功.1995年由新西兰Auckland大学统计系的Robert ...

  2. Golang 入门 : Go语言的设计哲学

    前言 设计哲学之于编程语言,就好比一个人的价值观之于这个人的行为. 因为如果你不认同一个人的价值观,那你其实很难与之持续交往下去,即所谓道不同不相为谋.类似的,如果你不认同一门编程语言的设计哲学,那么 ...

  3. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

  4. 【Golang入门】二、Go语言快速开发

    需求:开发一个hello.go程序,要求输出"hello world". 采用VScode进行Golang的开发,因此这一系列博客的代码均在VScode编译器上编译实现. 这里我们 ...

  5. C语言入门系列一之C语言介绍、环境配置和运行执行

    鉴于书本和教材文字过多.又难懂的缺点,所以我打算写一系列通俗移动的C语言入门教程,让大家在短时间内学习和掌握C语言,以及遇到C语言的一些问题该如何得到快速的解决.希望这些系列的教程,能够帮助到大家!该 ...

  6. R语言从入门到精通Day1之【R语言介绍】

    R语言开篇–R语言介绍 开篇不再介绍R语言是如何下载和R语言的代码,如果您想真正的了解R,学习R,利用R做一些实际性的应用,不妨花点时间先了解一下当前数据科学的进展.了解R语言的历史和发展进程,R语言 ...

  7. golang开发工程师-第一步:golang入门基础教学

    golang入门基础教学 前言 一.golang的优势何在? 二.goland破解教程 三.goland的使用教程 四.一个简单的go代码 五.变量的声明和赋值 六.数据类型的基本介绍 七.访问权限[ ...

  8. 一文带你入门go语言

    一文带你入门go语言 go/golang是一门google开发的编程语言,其代码简洁易读,天生支持并发,完美契合当今互联网生态. 目前Go语言已经⼴泛应用于人工智能.云计算开发.容器虚拟化.⼤数据开发 ...

  9. 爱上开源之golang入门至实战-使用IDE开发Golang

    使用IDE开发Golang 上一节,使用文本编辑器,我们开启了golang之旅,除了通过文本编辑器的方式来进行程序开发,我们还可以通过使用golang的集成开发环境工具(IDE)来进行更高效率,更快速 ...

  10. NLP汉语自然语言处理入门基础知识介绍

    NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...

最新文章

  1. ICML2020 | GCNII:使用初始残差和恒等映射解决过度平滑
  2. 5g的八大关键指标_你对5G技术标准了解多少(干货)
  3. Error opening/initializing the selected video_out (-vo) device.
  4. HDOJ 1176 免费馅饼 -- 动态规划
  5. python怎么用for循环找出最大值_用for循环语句写一个在输入的十个数字中求最大和最小值的python程序应该怎么写?...
  6. SpringMVC_02
  7. stringbuilder_String,StringBuilder,StringBuffer三者的区别?
  8. linux svn 修改回退,玩转SVN-版本回退
  9. 搜狗站长html标签验证,各大搜索引擎站长验证以及百度统计代码配置
  10. C++和数据结构考试总结
  11. 两个瓶子水怎样一样多_大班科学-两杯水一样多吗?
  12. java销毁servlet_销毁servlet
  13. Linux(CentOS、Ubuntu)下,磁盘分区、挂载
  14. 遥测、遥信、遥控、遥调的简要说明
  15. 要活 102 年,阿里凭借的是什么?
  16. mPaaS 客户端证书错误避坑指南
  17. win 8.1 64位彻底删除王码98
  18. Bpmn.js自定义文件说明
  19. [DP] BZOJ 4244 邮戳拉力赛
  20. 流程管理-测试面试题

热门文章

  1. Codeforces 208E. Blood Cousins
  2. HDOJ_2006_求奇数的乘积
  3. vue.js--基础 数据的双向绑定
  4. 河南工业大学2017校赛题解
  5. SCCM 部署操作系统 ,提示权限问题,报错:0xc00000098
  6. 关于官方Reachability Demo理解
  7. TransparentImage、TransparentBlt - [Daliy APIs]
  8. tf.image.resize_images
  9. GCC Link Time Optimization
  10. 移植基于Qt4.4-tp1的WebKit到ARM平台