1什么是Go?

Go是一门开源、并发支持、具有垃圾回收机制、编译性系统编程语言。在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点。被称为21世纪的C语言。Go语言已经成为云计算、云存储时代最重要的基础编程语言。

首先,Go语言的开源使得全世界的Go语言爱好者(Gopher)都可以为Go的设计和改进做出贡献。Go是在语言级别而非库级别支持并发编程,更好的适应多核以及集群化开发。具有垃圾回收机制使得开发者再也不用担心内存泄漏问题。和C一样作为一种编译型系统编程语言保证了Go程序的性能。

Go语言是以C语言为原型的,所以也被称为21世纪C语言。

大名鼎鼎的Docker从推出开始,就被各大公司广泛的应用在云计算、云存储领域,而Docker完全使用Go语言实现的。七牛云是国内第一个核心服务完全采用Go语言实现的云产品。2017年8月28日七牛云完成了新一轮10亿人民币的融资,本轮融资由阿里巴巴集团和云锋基金领投。仅仅从以上两个典型的例子来看,Go语言确实已经成为云计算、云存储时代最重要的基础编程语言。

2 Go的主要特点

1) 语法简洁

共25个关键字,与C语言一样,拥有简洁的语法。

2) 内置对并发的支持

语言级别的支持并发处理,更加适合高并发和集群化的互联网时代。

3) 提供垃圾回收机制

这也是与C语言的重要区别,避免了c/c++程序员经常所面临的内存泄漏问题

4) 采用组合,摒弃继承

Go语言采用组合的方式实现面向对象的编程,这样就避免了传统的面向对象编程语言由于继承带来的复杂性。Java之父詹姆斯·高斯林在一次采访时曾说,如果让他重新设计Java语言,他会抛弃继承。

5) 非侵入式接口编程

在Java和C#等面向对象编程中,为了实现一个接口,子类都需要从该接口继承,并需要导入定义接口的包。在Go语言中,无需从接口继承,只要实现该接口中定义的方法即可,也就无需导入定义接口的包。

6) 良好的项目管理

Go命令行工具彻底的消除了项目文件的概念,完全用目录结构和包名来推导项目结构和构建顺序。而且自动检查没有使用的包,提高编译速度。

7) UTF-8编码支持

原生态的支持UTF-8编码。任何字符都可以直接输出,甚至可以用UTF-8中的任何字符作为标识符。

总之,作为一门年轻的语言,Go适应时代发展的需要,既博采众家之长,又极力维持语言的简洁。

3 Go作者

Go语言由Google公司的肯·汤普逊 、罗布·派克、罗伯特·格瑞史莫 三位大牛于2007年9月开始设计和实现,于2009年11月对外正式发布。

² Thompson:1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言。

² Rob Pike:曾是贝尔实验室(Bell Labs)的Unix团队,和Plan 9操作系统计划的成员。他与Thompson共事多年,并共创出广泛使用的UTF-8 字元编码。

² Robert Griesemer:曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。

新的语言层出不穷,老的语言也在推出新的特性,哪些语言可以脱颖而出?有人戏言,语言进入“拼爹”时代,从这个角度看,Go的背景还是很强大的。

go语言 前言的更多相关文章

  1. 关于C语言指针的一些新认识(1)

    Technorati 标签: 指针,数组,汇编,C语言 前言 指针是C语言的精华,但我对它一直有种敬而远之的感觉,因为一个不小心就可能让你的程序陷入莫名其妙的麻烦之中.所以,在处理字符串时,我总是能用 ...

  2. Java开发快速上手

    Java开发快速上手 前言 1.我的大学 2.对初学者的建议 3.大牛的三大特点 4.与他人的差距 第一章 了解Java开发语言 前言 基础常识 1.1 什么是Java 1.1.1 跨平台性 1.2 ...

  3. 各种编程语言忽略http的SSL证书认证

    目录 前言 代码 go语言 Python语言 Ruby语言 Java语言 PHP语言 C#语言 前言 我们内部测试的http服务器很多时候证书都是没有经过第三方认证的,我们发送http请求基本上都是忽 ...

  4. 1-学习前言&C语言概述

    [C语言]01-学习前言&C语言概述 参考自 http://www.cnblogs.com/mjios/archive/2013/03/12/2956508.html#label2 C语言是我 ...

  5. 基于visual Studio2013解决C语言竞赛题之前言

    前言:关于VS2013 刚装完VS2013,新的IDE给人全新的编程体验,界面比以前更急简洁漂亮,不多说了,先上图吧 第一次启动VS2013

  6. 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)

    综合研究:      在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想).同时使我们:          (1)认识到汇编语言对于深入理解其他领域知识的 ...

  7. 【前言】Go语言开坑

    很早之前就已经听过Go语言的大名,今天终于要开坑研究Go了,来吧看看<Go语言从入门到入坟>. [Go语言学习目录] 1. Go安装 2. Go变量(Variables) 3. Go语言基 ...

  8. [日常] Go语言圣经前言

    https://books.studygolang.com/gopl-zh/ go语言圣经 1.Go语言有时候被描述为“C类似语言”,或者是“21世纪的C语言”. 2.Go语言中和并发编程相关的特性是 ...

  9. R语言学习(一)前言

    本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/49768161 R是一个有着统计分析功能 ...

随机推荐

  1. jenkins+github持续集成中的坑

    1.前言 刚开始开发自己的独立博客的时候,每次发布都要手动打包,上传服务器,杀tomcat进程,重启,来回这么重复性工作,很快就有点不耐烦了.如果能自动化的东西,就绝不要手动了,所以自己搭建了个持续集 ...

  2. python文件和文件夹訪问File and Directory Access

    http://blog.csdn.net/pipisorry/article/details/47907589 os.path - Common pathname manipulations 都是和路 ...

  3. JAVA入门[9]-mybatis多表关联查询

    概要 本节要实现的是多表关联查询的简单demo.场景是根据id查询某商品分类信息,并展示该分类下的商品列表. 一.Mysql测试数据 新建表Category(商品分类)和Product(商品),并插入 ...

  4. 十、 Spring Boot Shiro 权限管理

    使用Shiro之前用在spring MVC中,是通过XML文件进行配置. 将Shiro应用到Spring Boot中,本地已经完成了SpringBoot使用Shiro的实例,将配置方法共享一下. 先简 ...

  5. 使用docker+consul+nginx集成分布式的服务发现与注册架构

    一.环境说明: 1.一台虚拟机,该系统已经装好了docker: ip 192.168.10.224 虚拟网卡,与主机互通 操作系统rhel6 内核 2.6.32  64位 docker版本 1.7.1 ...

  6. Android查缺补漏(View篇)--自定义 View 中 wrap_content 无效的解决方案

    自定义 View 中 wrap_content 无效的解决方案 做过自定义 View 的童鞋都会发现,直接继承 View 的自定义控件需要重写 onMeasure() 方法,并设置 wrap_cont ...

  7. WebUploader上传文件(一)

    写在前面: 文件上传方式很多的,对于大文件的上传,在本次项目中也有涉及,主要是用了分片断点上传大文件.所以就去了解了一下WebUploader,先从简单的上传文件开始吧~ 在代码中写注释,这样看的比较 ...

  8. 常用 SQL Server 规范集锦

    常用 SQL Server 规范集锦 常见的字段类型选择   1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数 ...

  9. 虚拟表dual。字符串函数UPPER,LOWER。&变量。INITCAP,LENGTH,SUBSTR

    &自定义变量的用法:

  10. 【ANT】description元素和属性

    <?xml version="1.0" ?> <project default="test"> <description> ...