Go语言学习(1) - 简介

Go语言的三个作者是:Robert Giresemer,Rob Pike 和 Ken Thompson

  • Robert 在开发Go之前是Google V8、Chubby和HotSpot JVM的主要贡献者;
  • Rob主要是Unix、UTF-8、plan 9的作者;
  • Ken主要是B语言、C语言的作者、Unix之父。

Go语言的主要发展过程

  1. 2007年9月,Rob Pike正式命名为Go
  2. 2008年5月,Google全力支持该项目;
  3. 2009年11月,Go将代码全部开源,它获得了当年的年度语言;
  4. 2012年3月28日,Go发布第一个正式的稳定版

Go语言的特点

1.设计Go语言是为了解决当时Google开发者遇到的问题

  • 大量的 C++代码,同时又引入了Java和Python
  • 成千上万行的代码
  • 分布式的编译系统
  • 数百万的服务器

2.Google开发中的痛点:

  • 编译慢
  • 失控的依赖
  • 每个工程师只是用了一个语言里面的一部分
  • 程序难以维护
  • 交叉编译困难

3.如何解决当时的问题和痛点

  • Go希望成为互联网时代的C语言,因此,Go语言也是足够简单
  • 设计Go语言的目标是为了消除各种缓慢和笨重、改进各种低效和扩展性

4.Go语言的特点

  • 没有继承多态的面向对象
  • 强一致性类型
  • interface不需要显示声明
  • 没有异常处理
  • 基于首字母的可访问特性
  • 不用的import或者变量引起编译错误
  • 完美而卓越的标准库包

Go语言的优势

1.学习曲线容易

Go语言的语法简单,包含了类C语法。所以Go语言容易学习

2.快速的编译时间、开发效率和运行效率高

Go语言拥有接近C的运行效率和接近PHP的开发效率

3.出身名门、血统纯正

Go语言出自Google公司,Google对这个新的宠儿还是很看重的

4.自由高效:组合的思想、无侵入式的接口

Go语言可以说是开发效率和运行效率的完美结合。天生的并发编程支持,Go语言支持所有的编程范式,包含过程式编程、面向对象编程、面向接口编程、函数式编程

5.强大的标准库

包括互联网应用、系统编程和网络编程,它里面的标准库基本上非常稳定了

6.部署方便:二进制文件、拷贝部署

7.简单的并发

Go是一种非常高效的语言,高度支持并发性。Go是为大数据、微服务、并发而生的一种编程语言。

Go作为一门语言致力于使事情简单化,他并未引入很多新概念,而是聚焦于打造一门简单的语言,他使用起来异常快速和简单,其唯一的创新之处是goroutine和通道。Goroutines是Go面向线程的轻量级方法,而通道是goroutines之间通信的优先方式。

创建Goroutines的成本很低,只需要几千个字节的额外内存,正因为如此,才使得同时运行数百个甚至数千个goroutines成为可能。可以借助通道实现Gotoutines之间的通信。Gotoutines以及基于通道的并发性方法使其非常容易使用所有的CPU内核,并处理并发的IO。

8.稳定性

Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性。Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的工具,如:go tool、gofmt、go test。

Go语言的核心特性和优势

Go主要有静态语言、天生并发、内置GC、安全性高、语法简单、编译快速这几个方面的特性,这些特性决定了Go的三个高富帅特性:运行快、开发快、部署快。

Go语言能开发什么

  1. 服务器编程,以前用C或者C++做的事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
  2. 分布式系统,数据库代理器等,例如:Etcd。
  3. 网络编程,包括Web应用,API应用,下载应用等
  4. 数据库操作
  5. 开发云平台

欢迎关注我的公众号,第一时间接收文章推送~ 搜索公众号: 翻身码农把歌唱 或者 扫描下方二维码:

《Go语言学习(1) - 简介》 qrcode.jpg

    原文作者:翻身码农把歌唱
    原文地址: https://www.jianshu.com/p/f884b8cbe901
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞