Go是谷歌2009发布的第二款编程语言 。2009年7月份,谷歌曾发布go语言能开发什么程序了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语言适合开发网游服务器端前段时间在golang-China读到这个贴:
个人觉得golang十分适合进行网游服务器端开发go语言能开发什么程序,写下这篇文章总结一下 。
从网游go语言能开发什么程序的角度看:
要成功的运营一款网游go语言能开发什么程序 , 很大程度上依赖于玩家自发形成的社区 。只有玩家自发形成一个稳定的生态系统,游戏才能持续下去,避免鬼城的出现 。而这就需要多次大量导入用户,在同时在线用户量达到某个临界点的时候,才有可能完成 。因此,多人同时在线十分有必要 。
再来看网游的常见玩法 , 除了排行榜这类统计和数据汇总的功能外,基本没有需要大量CPU时间的应用 。以前的项目里,即时战斗产生的各种伤害计算对CPU的消耗也不大 。玩家要完成一次操作,需要通过客户端-服务器端-客户端这样一个来回,为了获得高响应速度,满足玩家体验 , 服务器端的处理也不能占用太多时间 。所以,每次请求对应的CPU占用是比较小的 。
网游的IO主要分两个方面,一个是网络IO,一个是磁盘IO 。网络IO方面,可以分成美术资源的IO和游戏逻辑指令的IO,这里主要分析游戏逻辑的IO 。游戏逻辑的IO跟CPU占用的情况相似,每次请求的字节数很小,但由于多人同时在线 , 因此并发数相当高 。另外,地图信息的广播也会带来比较频繁的网络通信 。磁盘IO方面,主要是游戏数据的保存 。采用不同的数据库,会有比较大的区别 。以前的项目里,就经历了从MySQL转向MongoDB这种内存数据库的过程 , 磁盘IO不再是瓶颈 。总体来说,还是用内存做一级缓冲,避免大量小数据块读写的方案 。
- redis缓存db同步
- 优惠券功能的业务流程设计图谱 优惠券redis处理
- redis是开发工具吗 redis的开发人是谁
- 使用redis实现分布式锁及其优化 redis分布式性能
- redis读写变慢 redis单机读写性能
- mongodb数据备份与恢复 mongodb是否能回滚数据
- redis本地登录 redis只能本地连接
- redis连不上可能的原因 连接redis突然报错
- 2台redis集群 两个redis能集群吗
- 如何测试高防服务器的防护能力? 高防服务器怎么测防护
