Golang简史及常见的开发工具介绍

简介: 这篇文章介绍了Go语言的适合学习人群、发展历史、优劣势、学习原因、前景以及学习方法,同时概述了几种常用的Go语言开发工具。

                                              作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.Golang概述

1.什么人适合学习Go语言

- 有兴趣学习Go语言的课程的同学;

- 纯零基础用Go语言入门的同学;

- 已经有其他语言功底的同学;

2.Go语言发展历史

Go(又称Golang)是Google的Robert Griesemer,Rob Pike及Ken Thompson开发的一种计算机编程语言。

Go语言是Google推出的一种的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。

Google首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。派克表示,和今天的C++/C一样,Go是一种系统语言。

他解释道,"使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。"
    - 计算机硬件技术更新频繁,性能提高很快,目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU多优势提升软件系统性能;
    - 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言;
    - 企业运行维护很多c/c++的项目,c/c++程序运行速度虽然很快,但是编译速度确很慢,同时还存在内存泄漏的一系列困扰需要解决。


Go语言的吉祥物是一个金花鼠(Gordon),由罗布派克(Rob Pike)的夫人设计的。

- golang创始人
    - Ken Thompson:
        - 1969年: 
            加入贝尔实验室,在参数Multics(多路信息计算)开发期间,创造B语言。
            并用一个月的时间用B语言开发了全新的操作系统UNICS,后来更名为我们熟悉的UNIX操作系统;
        - 1971年:
            和丹尼斯·利奇(Dennis Ritchie)一起共同发明了C语言。
        - 1973年:
            和丹尼斯·利奇(Dennis Ritchie)使用C语言重写了UNIX,并安装PDP-11的机器之上。
        - 1983年:
            美国计算机协会将图灵奖授予汤普森。
        - 2000年:
            离开贝尔实验室,已退休的汤普森成为了一名飞行员。
        - 2006年:
            加入Google工作。
        - 2007年:
            64岁的高龄,与Rob Pike和Robert Griesemer主导了Go语言的开发。

    - Rob Pike
        - Go语言项目总负责人;
        - 贝尔实验室Unix团队成员,参与的项目包括Plan 9,Inferno操作系统和Limbo编程语言;
        - UTF-8字符集规范唯二的发明人之一,另一位是Ken Thompson;
        - <<UNIX编程环境>>和<<程序设计实践>>这两本书的作者之一;
        - 第22届莫斯科夏季奥运会射箭项目的银牌得主;
        - 业余天文学家,设计的伽马射线望远镜差点被NASA用在航天飞机上;
        - 他的媳妇Renee French就是Go语音吉祥物的设计人;

    - Robert Griesemer
        - 参与V8 JavaScript引擎的开发
        - 参与Java HotSpot虚拟机的研发



- 起源:
    - 2007年,Google的几位大牛正在用C++开发一些比较繁琐但是核心的工作,主要是分布式集群,大牛觉得很闹心;
    - 此时C++委员会来他们公司做技术演讲,说C++将要添加35个新特性,大牛心里飘过一万个CNM,"C++特性还不够多吗";
    - 于是Rob Pike说要不自己搞个简单一点的语言吧,首先名字得简单好记,大腿一拍就叫"go";
    - 把事情搞复杂很容易,把事情搞简单才更深刻;

- 发展:
  - 2007年09月21日,开始雏形设计;
  - 2009年10月30日,Rob Pike宣布了Go语言的存在;
  - 2009年11月10日,以完全开源的方式公布了Linux和Mac OSX上的版本,11月22日公布了Windows版本;
  - 2010年01月08日,当选2009年内年度语言;
  - 2010年05月,谷歌投入使用;
  - 2011年04月,Google开始抽调员工全职开发Go语音,并于5月宣布Google APP Engine支持Go语音;
  - 2012年03月,Go语言1.0版本发布;
  - 2013年05月13日,Go语言1.1版本发布;
  - 2013年12月01日,Go语言1.2版本发布;
  - 2014年06月18日,Go语言1.3版本发布;
  - 2014年12月10日,Go语言1.4版本发布;
  - 2015年08月19日,Go语言1.5版本发布,本次更新中移除了"最后残余的C代码";
  - 2016年02月17日,Go语言1.6版本发布;
  - 2016年08月15日,Go语言1.7版本发布;
  - 2017年02月16日,Go语言1.8版本发布;
  - 2017年08月24日,Go语言1.9版本发布;
  - 2018年02月16日,Go语言1.10版本发布;
  - 2018年08月24日,Go语言1.11版本发布;
  - 2019年02月25日,Go语言1.12版本发布;
  - 2019年09月03日,Go语言1.13版本发布;
  - 2020年02月25日,Go语言1.14版本发布;
  - 2020年08月11日,Go语言1.15版本发布;
  - 2021年02月16日,Go语言1.16版本发布;
  - 2021年08月16日,Go语言1.17版本发布;
  - 2022年03月15日,Go语言1.18版本发布;
  - 2022年08月02日,Go语言1.19版本发布;
  - 2023年02月01日,Go语言1.20版本发布;
  - 2023年08月08日,Go语言1.21版本发布;
  - 2024年02月06日,Go语言1.22版本发布;
  - ...(每年发布2个版本,持续迭代!)

  参考链接:
      https://golang.google.cn/doc/devel/release




总结:
    - Google公司开源;
    - 编译型语言;
    - 21世纪的C语言;
        2005年之前的电脑基本上都是单核的,在此之前诞生的语言也没有考虑到多核优化的问题哟~
        2007年在Golang语言诞生默认是跑满所有核心的!

3.Go语言的优劣势

优势:
    - 语法简单,易于学习,类C的语法,同时比C/C++简洁和干净;
    - 自带GC,方便使用(C++需要手动释放内存,很头痛...);
    - 快速编译,高效执行;
    - 简单的依赖管理(Java项目需要安装各种依赖包后才能正常运行起来...);
    - 并发编程,轻松驾驭;
    - 静态类型,同时有一些动态语言的特征(var 声明);
    - 标准类库,规范统一;


劣势:
    - 不支持泛型(官方说在未来的版本会支持泛型)
    - 不支持动态加载代码(各种Linux的"xxx.so"文件)
    - 发展时间短,生态不及Java,C++庞大(并不是说go的第三方库少,只不过各个第三库的选择数量可能没有其他语言多)


总结:
    - 简单易学习;
    - 开发效率高;
    - 执行性能高;

4.为什么要学习Go语言

- Go语言的用途:
    - 巨型中央服务器领域;
    - 高性能分布式领域;
    - 游戏服务端开发;
    - 复杂事件处理;
    - 对实时性要求很高的软件开发;
    - 可以在Inter和ARM处理器上运行,因此也可以在安卓上运行;


Go语言的应用领域:
    如下图所示。


Go微服务开发:
    - 零依赖,让我们可以最小化我们的镜像,节省存储与拉取镜像带宽;
    - Runtime使用更小的内存,对比Java的JVM;
    - 更好的并行能力,当你真的需求更多CPU的时候;
    - 更高的性能,对比解释性语言,在处理数据以及并发方面优势明显;
    - 简单,学习成本低,内部人员可以转入Go阵营;
    - 使用Go能更接近云原生生态,比如Docker,K8S,harbor都是用Go开发的;


总结:
    - 机会多;
    - 薪资高;
    - 发展好;

5.Go语言的前景

如上图所示,我们在Boss直聘上可以看到针对Go语言的工资薪资待遇还是非常可观的哟~

6.学习Golang语言方法

(1)与其他编程语言对比学习;
(2)多写代码;
(3)在实际工作中使用Go语言;
(4)培养自主学习能力,坚持;
(5)做笔记,写博客,将学会的内容讲解出来;

二.Go语言开发工具介绍

1.Visual Studio code

Microsoft产品(简称VSCode),一个运行于Mac OS,Windows和Linux之上的,默认提供Go语言的语法高亮。

安装Go语言插件,还可以支持智能展示,编译运行等功能。

下载地址:
     https://visualstudio.microsoft.com/zh-hans/

多版本选择:
    https://code.visualstudio.com/Download

2.Sublime Text

可以免费使用,默认也支持Go代码语法高亮。

只是保存次数达到一定数量之后就会提示是否购买,点击取消继续使用,和正式注册版本没有任何区别。

下载地址:
      https://www.sublimetext.com/download

3.Vim

Vim是vi发展出来的一个文本编辑器,代码补全,编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

4.Emacs

Emacs传说中的神器,她不仅仅是一个编辑器,因为功能强大,可称它为集成开发环境。

5.Eclipse

Eclipse是开源免费的IDE工具,并提供GoEclipse插件。

6.LiteIDE

LitelIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),是中国人开发的。

7.JetBriains IDE

JetBrains公司的PhpStrom,WebStrom和PyCharm,Goland等IDE都需要安装Go插件。

只不过JetBrains产品基本上都是付费的产品,也有对应的社区版本。但功能相比于付费版本较少。
目录
相关文章
|
2天前
|
Go API 开发工具
Vgo2.0【更新喽】-依然适合golang初学者的开源框架
本项目新版本位于prod分支,全面优化目录结构,增强Rbac权限管理,新增Oss/Cos文件上传、公共Curd类及Curd钩子函数等功能,强化翻译并调整路由注册逻辑。示例模块涵盖公共CURD、非CURD、文件上传及Websocket使用场景。
|
2月前
|
Linux Go 开发工具
Golang各平台环境搭建实战
这篇文章详细介绍了如何在Windows、Linux和Mac平台上搭建Golang开发环境,包括下载和安装Go SDK、配置环境变量、安装开发工具如Visual Studio Code和Go扩展,以及如何编写和运行第一个Go程序。
114 3
|
2月前
|
NoSQL 关系型数据库 MySQL
Vgo-适合golang初学者的开源框架
# Vgo Vgo是一款基于Gin的开源服务端框架,集成了Redis、Mysql、JWT及队列等技术栈,适合Golang初学者。项目包括Vgo-Gitee和VgoAdmin-Gitee,可通过克隆仓库并按照安装指南进行部署。其目录结构清晰,涵盖路由、模型、后台接口等功能模块,更多功能持续开发中。
|
5月前
|
Go 开发工具 C语言
从零开始使用golang开发
【6月更文挑战第17天】本文介绍 Go 语言安装与配置等操作。包括.下载与安装从[Go官网](https://golang.org/dl/)下载对应平台的安装包,安装时可自定义路径。安装验证,使用 `go version` 检查版本。环境配置和变量设置,包管理等
56 1
|
5月前
|
Kubernetes Go 云计算
Golang 入门技术文档
**Golang 技术文档摘要:** Golang,由Google开发,是一种静态强类型、编译型语言,广泛应用于云计算、网络编程和分布式系统。本文档介绍了Golang的基础和特性,包括安装配置、 HelloWorld 示例、基本语法,如变量推导、函数多返回值和并发编程(goroutine、channel)。Golang的并发模型基于轻量级goroutine和channel,支持高效并发处理。此外,文档还提及了接口和多态性,展示了如何使用接口实现类型间的交互。Golang在Docker、Kubernetes等项目中得到应用,适用于后端服务开发。【6月更文挑战第9天】
60 1
|
5月前
|
并行计算 开发者 Python
GitHub标星破千!这份Python并行编程手册,可以封神了!
现在这个时代是并行编程与多核的时代,硬件成本越来越低,如何充分利用硬件所提供的各种资源是每一个软件开发者需要深入思考的问题。若想充分利用所有的计算资源来构建高效的软件系统,并行编程技术是不可或缺的一项技能。
|
6月前
|
监控 JavaScript 前端开发
《Go 简易速速上手小册》第8章:网络编程(2024 最新版)(下)
《Go 简易速速上手小册》第8章:网络编程(2024 最新版)
57 1
|
6月前
|
存储 JSON Go
《Go 简易速速上手小册》第8章:网络编程(2024 最新版)(上)
《Go 简易速速上手小册》第8章:网络编程(2024 最新版)
74 1
|
6月前
|
安全 Java Linux
Golang深入浅出之-初识Go语言:语言特点与开发环境搭建
【4月更文挑战第20天】Go语言(Golang)由Google于2009年推出,以其简洁语法、高效执行、强大的并发模型和丰富标准库著称。主要特点包括:1) 代码结构清晰,易于阅读;2) 编译速度快,运行效率高,内置垃圾回收;3) 使用goroutines和channels实现并发;4) 标准库涵盖网络、并发等多个领域;5) 支持跨平台编译。要搭建开发环境,需下载Go SDK,配置环境变量,并验证安装。常见问题涉及导入包未使用、错误处理、并发安全和`defer`语句的使用。
115 0
|
6月前
|
Go 区块链 数据库
第一章 Golang开山篇
第一章 Golang开山篇
39 1