Go编程语言是Google中一些大牛(尤其是有着plan9前科的大牛们)如Rob Pike,Ken Thomason这两位赫赫有名的程序高手、技术作于2007年9月开始建造。 Pike指出,Go代码的编译基本上可以达到C语言的速度,几乎可以在瞬间完成,“就像是在使用交互式语言”。现有的语言都没有针对多核心处理器 进行优化,为了解决此类编程问题,Google工程师们开发了Go语言。从源文件的copyright可以看到,很多基础代码来自plan9. Go 已在Google公司内部测试过,现在已经发布 Go 1 RC1 版本。Google开放Go的代码,希望籍此帮助Go语言的发展。首席软件工程师Rob Pike说:我们开发Go,是因为近10年左右开发程序之难让我们有点沮丧。Google两年前开始开发Go,1年前开始有一只团队专职于此。目前只支持 unix平台, windows平台的支持由于资源的原因,需要更多的参与者来移植。 Go的定位 是系统编程,比如Web服务器、存储系统和数据库等,但也欢迎在其它方面的应用。 Go 语言官方网站
java 和 go,谁才是最终答案
java优势:
- 1.1 比较强大的地方是那个jvm,他让你有一些字节码增强的技,jvm层面的语言自带的aop。
- 1.2 有泛型。
- 1.3 有annotation技术,这个貌似是java5才出来的。
- 1.4 面向对象语言。
- 1.5 有threadlocal技术
go的优势:
- 1.1 go有多协程的能力,有select和channel让协程能通讯。
- 1.2 可以定义对象为指针还是对象本体,如果返回对象本体则肯定不会出现空指针。而且go的空对象调用方法也不一定会npe,因为空对象本身不是真的空,是有类型的空对象。
- 1.3 面向接口的语言,有些面向对象的设计模式不太好写,不过不是重点。
- 1.4 方法能返回多个对象,编程不会再创建这么多class去包对象了。
- 1.5 异常处理机制比较特别,go官方建议大家每个函数返回err,这样当你调用方法的时候,会强制让你回答:”如果这个方法异常,你应该怎么做”。不像java,都是throw出去,所以go编程的异常case会少一些。不过这样也让代码很臃肿,到处都是if err!= nil 。