Google Go语言的快乐编程因素

开发 开发工具
Google Go语言在推出之后立刻引起了很多开发者的关注。尽管现在还处在一个很不成熟的阶段,但很多顶级程序员参与其设计和代码改进使得人们对它充满信心。本文介绍了Go语言中的一些细节。

Google在今年发布了一门全新的开源编程语言名为Go语言。Go语言的设计最早始于2007年9月,设计者包括Robert Griesemer, Rob Pike和Ken Thompson,后来Ian Lance Taylor实现了基于GCC的go编译器gccgo,Russ Rox的加入推动了语言和库的实际可用性。它于2009年9月被官方正式宣布发布,兼容Linux和Mac操作系统。

Go是一门富有表达力的、并发的、具有垃圾回收功能的编程语言。

用Google的话来说:Go实验性地将C或者C++语言的性能、安全性与动态语言如Python的速度结合起来。代码的编译运行接近于C,甚至大规模的二进制编译只需要几秒钟。

Go中不包含的特性有:

1. 异常处理(Exception handling)

2. 类型继承(Type inheritance)

3. 泛型编程(Generic programming)

4. 断言功能(Assertions)

5. 方法重载(Method Overloading)

让我们来看一下Go语言的Hello World

  1. package main  
  2.  
  3. import fmt fmt // Package implementing formatted I/O.  
  4.  
  5. func main()  
  6.  
  7. {  
  8.  
  9. fmt.Printf(Hello world\n);  
  10.  
  11. }  
  12.  

#T#除了断言类型(declarations type)之外,Go语言的语法与C语言的非常相似。但是Go的设计简化头文件的依赖管理,使用轻量级的类型系统,类型没有继承,支持垃圾收集和并发,从而提供在多核系统上设计系统软件的方案。其他语法上的不同还有:在if和for语句中,Go缺省了括号。

Go是并发的程序设计语言,不同于Limbo,它不提供任何内置的安全观念。Go有一些PI 演算(Pi calculus)的特性如通道传递(channel passing)。概括而言Go语言如下:简单、快速、安全、并发、快乐编程、开源。

希望Go语言成为支持多进程系统编程的优秀语言,保持清新和轻量来从事面向对象的开发设计,同时具备一些很棒的特性如闭包和映射(reflection)。

Go最初的设计者简介:

Robert Griesemer,参与设计Chrome浏览器中的Javascript执行引擎V8,V8采用即时编译技术和分代(generational)的stop-the-world垃圾收集机制;

Rob Pike乃大名鼎鼎的人物,曾在贝尔实验室工作,是Unix操作系统、Plan9操作系统、Limbo编程语言和UTF-8编码的主要设计者,写过愤青式的文章Systems Software Research is Irrelevant,还有两本书The Unix Programming Environment和The Practice of Programming;

Ken Thompson是图灵奖获得者,是Unix操作系统、Plan9操作系统、UTF-8编码和B编程语言(C的前身)的创立者之一。在google,Ken和Robert还设计过过用于大规模数据分析的Sawzall语言。

Ian Lance Taylor是GCC社区的超级活跃人物,是gold连接器和GCC过程间优化LTO的主要设计者之一,是Zembu公司的创始人之一。

责任编辑:yangsai 来源: CSDN
相关推荐

2019-05-15 11:38:22

GoogleGo编程语言

2011-01-05 10:58:05

Google Go

2010-01-11 09:38:28

编程语言排行榜Google Go

2012-11-08 09:36:10

Google Go

2017-01-09 11:28:31

编程语言排行榜

2009-12-25 09:27:08

Google Go系统编程C语言

2019-02-11 08:32:22

编程语言Go

2012-07-06 13:16:37

Google Go

2023-11-06 13:32:38

Go编程

2010-10-13 10:47:52

GoGoogle

2012-03-13 10:40:58

Google Go

2010-08-10 15:13:11

GoGoogle

2013-07-30 09:23:43

VMwareGoogle云平台

2013-07-30 09:27:32

Go云计算语言

2023-02-10 09:40:36

Go语言并发

2023-05-24 09:31:51

CGo

2011-08-31 10:09:45

编程语言

2024-01-08 07:02:48

数据设计模式

2022-08-17 17:57:37

GoGo语言

2024-03-26 11:54:35

编程抽象代码
点赞
收藏

51CTO技术栈公众号