1 20 50 150 500
欢迎来到云客软件站,找素材,搜软件,就上云客软件站!
当前位置 >首页 >软件下载 >电脑软件 >编程开发

谷歌编程工具(Google Go) 1.8.5 官方版

软件信息
  • 分类:编程开发
  • 大小:84.3M
  • 语言: 中文
  • 环境: WinXP
  • 更新:2024-11-13
  • 评级:
  • 系统: Windows Linux Mac Ubuntu
  • 软件类别: 国产软件 / 免费软件 / 编程工具
  • 插件情况:
  • 相关链接: http://code.google.com/p/go/downloads/li

谷歌日前将自家的Go语言升级到了1.3正式版,新版本主要是更新了更精确的垃圾回收机制,解决了GC回收的问题。不过新版本开始也不再支持Windows2000,支持了Native Client虚拟机架构。

Google开放Go的代码,希望籍此帮助Go语言的发展。首席软件工程师Rob Pike说:我们开发Go,是因为近10年左右开发程序之难让我们有点沮丧。Google两年前开始开发Go,1年前开始有一只团队专职于此。Go的定位是系统编程,比如Web服务器、存储系统和数据库等,但也欢迎在其它方面的应用。"

Go语言特点简介:

1.引入轻量级线程——协程(coroutine),Go语言中叫goroutine。
2.采用Erlang风格的并发模型,即消息是进程间唯一的通信方式(而非共享内存)。两个goroutine之间通信通过channel(通道)进行。
3.对代码风格进行了强制统一,比如public变量必须以大写字母开头,private变量必须以小写字母开头,从而省略了这两个关键字。{}中{的书写不能另起一行等。
4.defer关键字,不管程序是否异常,均在退出时执行的代码。避免了大量try、catch语句。
5.函数允许返回多个值,且最后一个值问error类型,用于在错误的情况下返回详细信息。
6.反对(不提供)函数和操作符的重载,不提供继承、虚函数、虚函数重载。但是提供组合,也达到继承的目的。
7.没有构造函数和析构函数 ,提供接口,与其他语言最大的区别在于接口是非侵入性的。即实现类无需从接口派生
8.支持匿名函数与闭包。

为什么应该用Go?

Go是为了帮助人们阅读、调试和维护大型软件系统而生的,所以目标是

不再缓慢

不再笨拙

提高效率

保持(甚至提升)扩展性

但是在使用C++或者Java开发中却常常遇到各种问题:

构建缓慢

依赖性难以控制

每个编程语言都使用不同的语言子集

程序难以理解(文档等原因)

重复工作

更新成本高

版本交叉

自动化不方便(工具问题)

跨语言构建

而Go语言则是为了解决这些问题而设计的。

另外,C语言的依赖一直是个大问题,包括依赖叠加、编译时引入依赖的情况都很难处理,同时你也没办法查清哪些依赖是可以删除的,那些不可以。在C++中,这一点变得更加明显:

每个类里都有#include文件

#include文件中有代码(而不仅仅是声明)

#ifndef的残留

所以一直无法在一台机器上构建大型Google二进制。(To build a large Google binary on a single computer is impractical.)

当然,工具确实很有帮助,于是做了如下改进:

新的分布式构建系统

不再需要Makefile(但仍然使用BUILD文件)

多缓存

多复杂度(大程序本身所具有的)

即使在Google的分布式构建系统的的帮助下,大型构建工程依然会花费不少时间(以其中一个二进制文件为例,在2007年花了45分钟,现在是27分钟)。生活质量还是太低。

更新日志:

今天Go 团队很高兴地宣布Go 1.8发布了。现已提供下载。整个标准库有了显著的性能提升和变化。该版本主要的更新内容如下:

Go 1.7中为64位x86引入的编译器后端现在用于所有体系结构,这些体系结构将会有显著的性能改进。例如,我们的基准程序所需的CPU时间在32位ARM系统上减少了20-30%。在此版本中,64位x86系统还有一些性能改进,编译器和链接器更快了,编译时间应该比Go 1.7提高约15%。但是在这一领域还有很长的路要走:我们希望在未来版本中实现更快的编译速度。

垃圾收集暂停时间明显更短,通常在100微秒以下,有时候甚至低至10微秒。

HTTP服务器添加对 HTTP/2 Push的支持,允许服务器抢先发送响应到客户端。这对于通过消除往返行程来最小化网络延迟非常有用。HTTP服务器现在还支持正常关机了,允许服务器通过在服务所有正在运行的请求之后关闭,而最小化停机时间。

上下文(添加到Go 1.7中的标准库)提供了取消和超时机制。Go 1.8在标准库中添加了更多对上下文的支持,包括数据库/ sql和net包以及net / http包中的Server.Shutdown。

现在使用新添加的Slice函数在排序包中对切片进行排序更简单。例如,要通过“名称”字段对结构体片段进行排序:

下载地址

热门软件

Top