博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[喵咪Golang(1)]Go语言开篇
阅读量:5960 次
发布时间:2019-06-19

本文共 2292 字,大约阅读时间需要 7 分钟。

[喵咪Golang(1)]Go语言开篇

前言

哈喽大家好啊!喵咪我今天又来开坑了,最近学习和使用了go语言了一段时间,也在组合一些好的组件编写phalgo开发框架.在想是不是可以来写一个套关于go语言的文章和一些好的组件的介绍使用,虽然自己也是半桶水但是我相信在编写的过程中能给自己很多收获,最好也能帮助大家了解和熟悉golang这门语言,话不多说那么就开始今天的go语言之旅吧~

附上:

喵了个咪的博客:

phalgo地址:

Go语言圣经:

1. go语言的诞生

如果是计算机专业出生的童鞋都听过贝尔实验室一词,这就是诞生著名的UNIX系统和C语言的地方,经过了40年在同一个地方Google工作的Ken Thompson和Rob Pike还有Robert Griesemer一同设计了Go语言,目的是为了解决在21世纪多核和网络化环境下越来越复杂的编程问题.

Go语言是从Ken Thompson发明的B语言、Dennis M. Ritchie发明的C语言逐步演化过来的,是C语言家族的成员,因此很多人将Go语言称为21世纪的C语言。纵观这几年来的发展趋势,Go语言已经成为云计算、云存储时代最重要的基础编程语言。

就笔者玩了一段时间的感受,go语言是C语言的衍生有C语言的特色,毕竟被称为21世纪的C语言,并且go也从一些现代语言中吸收了很多优秀的地方,比如C语言不具备的GC机制,接口机制,还有很多新的特性,而且在编译时可以大幅缩短时间,相对于C++的十分之一

下图展示了有哪些早期的编程语言对Go语言的设计产生了重要影响。

图片引用:Go语言圣经

go语言至今版本历史:

2007年,谷歌工程师Rob Pike, Ken Thompson和Robert Griesemer开始设计一门全新的语言,这是Go语言的最初原型。2009年11月10日,Go语言以开放源代码的方式向全球发布。2011年3月16日,Go语言的第一个稳定(stable)版本r56发布。2012年3月28日,Go语言的第一个正式版本Go1发布。2013年4月04日,Go语言的第一个Go 1.1beta1测试版发布。2013年4月08日,Go语言的第二个Go 1.1beta2测试版发布。2013年5月02日,Go语言Go 1.1RC1版发布。2013年5月07日,Go语言Go 1.1RC2版发布。2013年5月09日,Go语言Go 1.1RC3版发布。 2013年5月13日,Go语言Go 1.1正式版发布。2013年9月20日,Go语言Go 1.2RC1版发布。2014年6月19日,Go语言Go 1.3版发布。2015年8月20日,Go语言Go 1.5版发布,本次更新中移除了”最后残余的C代码”。2016年1月07日,Go语言Go 1.6版发布, Go1.6开始全面支持 HTTP/2 大幅改善GC性能

2.go语言特性

go里面有很多有意思的特性,笔者根据自己使用和收集了以下几点:

  1. Go 语言是一门类型安全和内存安全的编程语言。虽然 Go 语言中仍有指针的存在,但并不允许进行指针运算
  2. Go 语言语法结构与动态语言的易开发性进行有机结合,开发效率和性能都比较平衡
  3. Go 语言的对于网络通信、并发和并行编程的极佳支持,从而更好地利用大量的分布式和多核的计算机
  4. Go 语言编译速度非常快一般只需要几百毫秒
  5. Go 语言自带GC垃圾回收机制来解决内存问题
  6. Go 语言语法干净、整齐和简洁,关键字的数量仅仅25个
  7. Go 语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同。但是它通过接口(interface)的概念来实现多态性。
  8. Go 语言支持交叉编译,比如说你可以在运行 Linux 系统的计算机上开发运行下 Windows 下运行的应用程序。

更具以上特性,相信大家对go的也有了一个抽象的定位了

3.go语言著名项目

Docker

到现在,Docker几乎是Go再难找到也难以复制的一个成功案例。Docker项目在2014年9月份就拿到了C轮4000万美元融资,版本迭代速度超快,目前从GitHub看到已有78个版本,而它仅仅是再2013年初才正式开始的一个项目而已。

Docker团队之所以喜欢用Go语言,主要是Go具有强大的标准库、全开发环境、跨平台构建的能力。

GitHub托管地址:

Lime

Revel是一个高生产力的Go语言Web框架。Revel框架支持热编译,当编辑、保存和刷新源码时,Revel会自动编译代码和模板;全栈特性,支持路由、参数解析、缓存、测试、国际化等功能。

GitHub托管地址:

InfluxDB

一个Go语音编写的开源分布式的时序、事件和指标数据库,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。

GitHub托管地址:

Gogs

Gogs则是一款由国人无闻( GitHub)开发的自助Git服务项目。Gogs的目标是打造一个最简单、最快速和最轻松的方式搭建自助Git服务。据作者称,之所以选择使用Go语言开发,就是Go允许Gogs可以通过独立的二进制分发,且对跨平台有良好支持。

GitHub托管地址:

3. 总结

我们回顾一下我们主要讲解了go语言的历史,它是一个什么样子的语言它的特性是怎么样的,有那些有名的开源项目,大家是不是对go语言充满了期待,也充满了疑惑呢,那么就请大家带着期待带着疑惑的心里,来进入下一篇的GO语言-安装与Helloworld篇吧!

注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!

转载地址:http://eryax.baihongyu.com/

你可能感兴趣的文章
通过IP判断登录地址
查看>>
Oracle闪回技术
查看>>
利用单壁路由实现vlan间路由
查看>>
hello world
查看>>
CentOS 7 配置yum本地base源和阿里云epel源
查看>>
python 学习导图
查看>>
生成树
查看>>
作为一个程序员必备的素质
查看>>
Webpack入门教程十四
查看>>
HDU - 3564 Another LIS(LIS+线段树)
查看>>
深入浅出JavaScript (五) 详解Document.write()方法
查看>>
hibernate简单入门教程(四)---------关联映射
查看>>
去 IOE,MySQL 完胜 PostgreSQL
查看>>
++i 和 i++ 性能上的区别
查看>>
Mysql运维管理-一主多从宕机从库切换主库继续和从库同步过程16
查看>>
Tomcat优化之配置NIO运行模式
查看>>
用XSLT和XML改进Struts
查看>>
WEB测试—功能测试
查看>>
在react或vue中,for循环用Index作为key值是好还是坏呢?
查看>>
2014.10.1 Form中显示pdf文件
查看>>