大宇私人领地伊甸园丨宁愿做了后悔,也不要错过后悔[www.mrdayu.com]
注册

24小时联系邮箱:[email protected]

所有文章
大宇私人伊甸园: 首页 > 所有文章 > 编程人生 > Go > 《黑马内训:Golang编程》 > [001.01]Go介绍

[001.01]Go介绍

发布时间:2018/07/05 《黑马内训:Golang编程》 标签go阅读:97

初识Go语言

Go语言是什么?

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

谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。

Go是谷歌2009发布的第二款编程语言。

2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用的一种BASIC语言.

北京时间2010年1月10日,Go语言摘得了TIOBE公布的2009年年度大奖。

该奖项授予在2009年市场份额增长最多的编程语言。

谷歌资深软件工程师罗布·派克(Rob Pike)表示,“Go让我体验到了从未有过的开发效率。”

派克表示,和今天的C++或C一样,Go是一种系统语言。

他解释道,“使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大。”

2007年,谷歌把Go作为一个20%项目开始研发,即让员工抽出本职工作之外时间的20%, 投入在该项目上。

除了派克外,该项目的成员还有其他谷歌工程师也参与研发。

派克表示,编译后Go代码的运行速度与C语言非常接近,而且编译速度非常快,就像在使用一个交互式语言。

现有编程语言均未专门对多核处理器进行优化。Go就是谷歌工程师为这类程序编写的一种语言。

它不是针对编程初学者设计的,但学习使用它也不是非常困难。

Go支持面向对象,而且具有真正的闭包(closures)和反射 (reflection)等功能。

在学习曲线方面,派克认为Go与Java类似,对于Java开发者来说,应该能够轻松学会 Go。

之所以将Go作为一个开源项目发布,目的是让开源社区有机会创建更好的工具来使用该语言,例如 Eclipse IDE中的插件。

在谷歌公开发布的所有网络应用中,均没有使用Go,但是谷歌已经使用该语言开发了几个内部项目。

派克表示,Go是否会对谷歌即将推出的Chrome OS产生影响,还言之尚早,不过Go的确可以和Native Client配合使用。

他表示“Go可以让应用完美的运行在浏览器内。”例如,使用Go可以更高效的实现Wave,无论是在前端还是后台。

Go 同时具有两种编译器,一种是建立在GCC基础上的Gccgo,另外一种是分别针对64位x64和32位x86计算机的一套编译器(6g和8g)。

谷歌目前正在研发其对ARM芯片和Android设备的支持。派克表示,“Android手机存在的问题是,我们一直没有一个数学协处理器。”

Go语言优势:

go与其它开源语言比较具有哪些优势?

  • 与C++相比,go的开发效率高,具有清晰的依赖管理和全自动垃圾回收机制,代码量大幅减少。
  • 与php相比,go在性能上占有明显优势,且通用性和规范性更好,更适合构建大型的软件。
  • 与python相比,go在性能上占有明显优势,因为解释型语言与编译型语言在运行速度上不可同日而语,另外go在语法简明和类型系统设计上优于python。

概括一下go的特性:

  • 可直接编译成机器码,不依赖其他库,glibc的版本有一定的要求,部署就是扔一个文件上去就完成了。
  • 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多很多的包可以使用,写起来效率很高。
  • 简明扼要,开发效率高。
  • 有先进的并发支持模型。
  • 可以全自动地垃圾回收。
  • 编译型语言执行速度快。
  • 强大的标准库应用广泛。(系统级和web程序均擅长)
  • 自带工具强制编码风格。

Go适合用来做什么?

  • 服务器编程
  • 分布式系统
  • 网络编程
  • 内存数据库
  • 云平台。
The bottom line, for me, is simple.

Let’s hope it doesn’t take 500 years for a discipline of testing to becomes the standard for software developers.

From:dayu

您好!请登录

合作网站快捷登录:
点击取消回复

已有1评论

    大宇博客

    点击这里给我发消息 点击这里给我发消息 点击这里给我发消息 点击这里给我发消息