关于go语言

从go语言刚出来时就看过了一些介绍,也用go语言写过几个小程序,(hello world之类,哈哈),但是当时没有什么特别的感觉,比较郁闷的是group.google.com被墙了,因此上go-nuts讨论组还要,自从tor又被禁了之后,连也懒的动了,于是有几个月没有再关注go的进展。最近突然想到google的讨论组可以通过邮件的(太脑残了,这个都没有想到),于是又重新开始关注go语言。

前段时间大概看了一遍tutoiral,还有speicfication,总算是明白了go语言的目标:号称“系统级开发语言”,脚本/动态语言的语法,低级语言的执行性能,便捷的并行开发,快速的编译。但是今天看到了go-nuts上关于go语言中channel性能的一个讨论,主要是与java进行了对比,结果很不理想。其中有人评论说,java经过10多年的发展才走到今天这一步,而go出现不到1年,还有很长的路要走,而它目前在性能以及完备性方面与它所作出的承诺相去甚远。

以64位机而言,6g为编译器负责编译*.go,6a为汇编器负责编译*.s(这里的汇编都是plan9格式的),6l为链接器(链接*.6),6c负责c文件的编译(这里的c格式为plan9格式的),cgo为编译混合了c语言的go文件的。其实go语言用了很多plan9的东西。有时间可能得看看plan9是什么了。

go的编译器是bison写的,但是没有和flex混用,而是自己写了一个token识别程序。其他的一些具体的涉及语言细节的东西还没来得及看,本来想用gdb来跟踪一下的,结果发现进入具体的p9main函数之后,debug的显示就乱掉了,真是郁闷,到现在也没有搞清楚到底是啥原因。只要老老实实去看源代码了(终于找到原因了,看一下篇文档)。

本文来自:ITEYE博客

感谢作者:javatgo

查看原文:关于go语言

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。