H5W3
当前位置:H5W3 > go > 正文

【go】请教各位高手,下一代编译型语言Go、Rust、Zimbu的对比?

之所以选这三种语言,是因为这三种比较相似:

  1. 都是编译型的静态语言
  2. 都能跨平台运行
  3. 运行效率都可以,起码好过脚本语言很多,可能会超越已经优化了十几年的jvm
  4. 有动态语言的开发效率,比C/C++学习难度低很多
  5. 都有高人在主导开发,相信会做的不错
  6. 都有可能成为下一代系统级别的编程语言,甚至用来开发操作系统
  7. 可用来写后端的大量运算服务,压榨服务器性能,在服务器端有很多方面可以替换C/C++

  1. Go:Google公司主导开发,内置GC,但最近读了很多文章在指出GC的弱点,怀疑有GC的语言运行效率会打折扣,始终没办法成为系统级的编程语言。
  2. Rust:Mozilla公司主导开发,可以选择是否启用GC,运行效率不会输给C/C++,而开发效率又不错,国内用的好像很少。
  3. Zimbu:Vim作者开发,是不是目前只有一个人?比起其他两个,好像势单力薄些。

还有一些跨平台在运行效率和开发效率都不错的语言,HaXe、Julia、Opa、Falcon、JVM上的N种语言等,这些跟这几种差别比较大些。

现在的服务器端处理要求越来越复杂,单纯的脚本语言已经很难适应业务的需求,要既能照顾开发效率,包括新人的学习接受能力,又要比较快的运行效率。相信各位在开发中也碰到这样的需求吧?

我们最近要把很多原本是PHP写的后端服务全部转换成一种新的编译型语言,为了提升性能和利用并发处理,在不是非常仔细研究Go和Rust之后,选择了Go,因为Rust好像还不是很成熟,尤其是教程缺乏,Zimbu就更缺少人关注了,但我们还是很希望有一种编译型的语言能成为我们后端开发的主力语言,因为要涉及大量复杂的运算,在效率方面比较看重,还考虑到开发效率是,所以不可能选择C、C++的,至于JVM上的语言,也不会考虑。

希望各位高人能指点一二,非常感谢。

回答

如果单纯从兴趣和研究的角度来说,可以关注一下 Rust、Zimbu。但是如果是大规模的应用于生产坏境,个人建议还是 Golang 靠谱一点。毕竟生产坏境还是需要实际项目检验的。

三个对比建议分项目列一个表格:

  1. 语法上

  2. 安装配置和运行上

  3. 文档上

  4. 社区活跃度上

  5. 跟你的应用契合度上

分这几个层面打分,然后你就知道选什么最适合你的项目了。

PS:很多原本是PHP写的后端服务全部转换成一种新的编译型语言,为了提升性能和利用并发处理。这句话看起来背后隐藏了很多细节,建议动手之前慎重评估一下可行性。

你们真的不考虑C++11吗…开发效率并不低…

另外PHP方面的积累代码有多少?如果多的话,考虑下Facebook的HHVM吧 https://github.com/facebook/hiphop-php/wiki

还有一个Facebook做的PHP的扩展,非常给力…限于NDA就不透露了但是之前传言的是今年下半年开源…

UPDATE: 才知道两天前Facebook已经对外公布这个PHP扩展了,名字就叫Hack for HipHop

Hack是一个PHP的static typing变种,目前提供了编译时类型检查,未来提供运行时类型检查。向下兼容普通PHP代码,提供了平滑的从PHP升级到Hack的过渡方案。静态语言最大好处之一,IDE下代码补全功能,Facebook也会提供解决方案。

Facebook在 #CUFP 上的presentation: OCaml at Facebook via the Hack language http://www.syslog.cl.cam.ac.uk/2013/09/22/liveblogging-cufp-2013/

Zimbu 头一次听说,
太冷门的估计不会有戏。

要是我的话会选择Go。

如果在3种中选择的话
1. 现在就上马产品级的东西,只能先选go了
2. 其他情况,个人倾向于 rust ,

rust现在还不如go普及(仅仅是go用的人多了点),
rust有优秀的语言基因,发力只是时间的问题,rust未来的发展会远超大于 go
go,未来,别逗了,看那语法,跟一坨屎一样,
一群自我感觉良好的家伙搞出来然后可能连自己都不用的语言想不出有什么前途可言,仅仅因为出身土豪?
Google每年抛弃的项目多着呢

Zimbu 其实还OK, 但是这个路可能有点长,再等待些日子吧

另: 为啥都要在纠结下一代的语言呢,前辈语言你所知道的都是经过了时间的考验的, 不列入范围之内了么

Zimbu 这种真上不来台面, 不知道为什么拿它来充数做比较, 非得要三个才能对比吗?

Go 现在用的人多, 但是未来更看好 Rust, 1.0 版出来后估计会发力. Go 的语法真的是太工程化了, 有的地方难看的令人发指, 比如删除 slice 第几个 item 的, 有的地方比较激进, 比如没有类和集成等等, 不过这也不算缺点, 只是需要适应.

个人觉得哈,大家不要喷我。

用google的开发的东西还是要慎重哦,他们不会负责到底的。 我的印象里面好像google以前主导的协议啊什么的都放弃掉了,并且他们行为比较霸道,什么chrome不支持什么开发插件就不支持了,丝毫没有为开发者考虑太多(具体的我就忘记了)。

Go vs Zimbu:

Go 代码量大、生成文件大;Zimbu 文档差,还有些奇怪的问题。相对来说,Zimbu 比 Go 更容易阅读。

参见: https://bbs.archlinuxcn.org/viewtopic.php?id=2131

本文地址:H5W3 » 【go】请教各位高手,下一代编译型语言Go、Rust、Zimbu的对比?

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址