传送门
搜吧 搜贴
{{data.msgCount}}
注册 登陆
{{user.name}}
搜吧 搜贴
个人空间
创吧首页
关注的吧
关注用户
过往好贴
我的创吧
我的主题
新建创吧
功能介绍
帮助建议
35 0 2015-12-16 17:17
创建: 点空示例模板
0 0 0 创建:2016-2-1 13:2 回复:2016-2-1 13:2

先说结论:

  • 一般程序:rust最快,比golang快一丁点;比nodejs快2倍;比swift快3倍。。。

  • 深度递归:形式完全逆转,swift最快,比rust快一倍;比golang快2.3倍;比nodejs快3倍

  • 综合来看,rust算最快,但它的生态系统很弱,不用考虑。我们给firefox做过扩展,深刻体会其思路之坑爹,绝对不会跟随他们的产品。


普通:


递归:


语法便利性


对于跨平台语言,除了性能,语法的便利也很重要,会严重影响开发效率。除了rust外,下面几乎是共识:
  • nodejs(es6或es7语法)最方便;swift接近,但略微差一些;golang语法则不算方便。
  • nodejs 无需强类型,原生支持json,支持类和原生并发。实在太轻松。想要强类型,有typescript可选。不想要,可以不用。
  • golang和swift,都不够方便
  • 比如,处理json,都需要依赖库把json解析为强类型结构。golang是自带库,swift是第三方库(国人作品)。使用库之后,golang和swift就差不多了。
  • golang不支持类和泛型,结构体模拟类不够简洁。swift支持类。
  • swift语法接近 typescript 版本的Javascrip,转移很便利
  • golang语法自成一派,不过上手也比较简单就是了。

综合结论


一般而言,如果不为了追求极致性能,用nodejs就很好,因为除了性能,开发效率也很非常非常重要。nodejs开发明显轻松。

nodejs不能多核的问题,可运行多实例,一个实例用一核这样就实现:开发效率+运行效率最大化。

不想这么做,就选择golang,毕竟深度递归并不常用。但如果大量操作json,还是用nodejs最轻松。

swift虽然开源跨平台了,但从性能、语法便利上看,除特殊情况外,不足以代替golang或nodejs。

/{{pageInfo.count}}
/{{pageInfo.count}}
{{newPost.content.length}}/30000
{{currentPost.content.length}}/30000
标题:
操作
多维分类开关
{{category.name}}:
{{topic.content.length}}/50000