go语言 前言
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语言 前言的更多相关文章
- 关于C语言指针的一些新认识(1)
Technorati 标签: 指针,数组,汇编,C语言 前言 指针是C语言的精华,但我对它一直有种敬而远之的感觉,因为一个不小心就可能让你的程序陷入莫名其妙的麻烦之中.所以,在处理字符串时,我总是能用 ...
- Java开发快速上手
Java开发快速上手 前言 1.我的大学 2.对初学者的建议 3.大牛的三大特点 4.与他人的差距 第一章 了解Java开发语言 前言 基础常识 1.1 什么是Java 1.1.1 跨平台性 1.2 ...
- 各种编程语言忽略http的SSL证书认证
目录 前言 代码 go语言 Python语言 Ruby语言 Java语言 PHP语言 C#语言 前言 我们内部测试的http服务器很多时候证书都是没有经过第三方认证的,我们发送http请求基本上都是忽 ...
- 1-学习前言&C语言概述
[C语言]01-学习前言&C语言概述 参考自 http://www.cnblogs.com/mjios/archive/2013/03/12/2956508.html#label2 C语言是我 ...
- 基于visual Studio2013解决C语言竞赛题之前言
前言:关于VS2013 刚装完VS2013,新的IDE给人全新的编程体验,界面比以前更急简洁漂亮,不多说了,先上图吧 第一次启动VS2013
- 研究实验1_搭建一个精简的C语言开发环境(包含部分经典的前言)
综合研究: 在这部分内容中,将启示我们如何进行独立研究和深度思考(一定要注意这一点,相应的调整自己的学习思想).同时使我们: (1)认识到汇编语言对于深入理解其他领域知识的 ...
- 【前言】Go语言开坑
很早之前就已经听过Go语言的大名,今天终于要开坑研究Go了,来吧看看<Go语言从入门到入坟>. [Go语言学习目录] 1. Go安装 2. Go变量(Variables) 3. Go语言基 ...
- [日常] Go语言圣经前言
https://books.studygolang.com/gopl-zh/ go语言圣经 1.Go语言有时候被描述为“C类似语言”,或者是“21世纪的C语言”. 2.Go语言中和并发编程相关的特性是 ...
- R语言学习(一)前言
本系列文章由 @YhL_Leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/49768161 R是一个有着统计分析功能 ...
随机推荐
- Java基础—标识符及命名规范
什么是标识符符? 凡是可以由自己命名的地方都称为修饰符. 例: 项目名 ,包名 ,类名 .方法名 2. 命名规范. ① 不可使用java关键字和保留字,但是可以包含关键字和保留字. ② ...
- mac cocos2dx android
1. localhost:proj.android mxhd4$ ./build_native.sh 报错 Compile++ thumb : cocosdenshion_static <= ...
- hdu4416 Good Article Good sentence (后缀数组)
题意:问a串中有多少种字符串集合B中没有的连续子串. a的长度10^5,B中的总长度为不超过10^5. 解法:后缀数组题目:后缀数组能够非常easy算出来一个串中有多少种子串. 把a和B集合连起来.求 ...
- 为Android Studio设置HTTP代理
大陆的墙非常厚非常高.初次安装Android Studio下载SDK等必然失败,设置代理方法例如以下: 1. 到android studio安装文件夹,打开bin文件夹.编辑idea.properti ...
- OracleOraDb11g_home1TNSListener服务启动后停止,某些服务在未由其他服务或程序使用时将自己主动停止
解决的方法,大家来分享一下 1:注冊表中 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleOraDb11g_home1TNSLis ...
- java 网络编程学习笔记
1.IP地址 IP地址组成:网络号段+主机号段 IP地址分类: A类:第一号段为网络号段+后三段的主机号段 1.0.0.1---127.255.255.254(10.x.x.x是私有地址) 一个网络号 ...
- css自动添加浏览器兼容前缀 autoprefixer设置
Autoprefixer设置: preferences>key Bindings-Users {"keys":["ctrl+alt+x"],"c ...
- ERROR: ORA-12560: TNS: 协议适配器错误,解决办法:启动OracleServiceORCL服务
- cocoapods安装说明,最快安装,以及使用
安装卸载更新新推荐 文章最后 其他问题总结: 1 添加taobao提供的镜像地址:http://ruby.taobao.org/ 移除命令:gem sources --remove https://r ...
- HTML的三种布局:DIV+CSS、FLEX、GRID
Div+css布局 也就是盒子模型,有W3C盒子模型,IE盒子模型.盒子模型由四部分组成margin.border.padding.content. 怎么区别这两种模型呢,区别在于w3c中的width ...