Rust、Go、C、Java,你pick哪一个?

非凸科技 2021-10-28 18:04:37

根据私募排排网显示,截止目前,百亿量化私募扩容至22家,创历史新高,平均收益达19.59%。随着投资者认知度不断提升与行业不断发展,量化私募近两年迎来爆发式增长。2017年-至今,量化私募规模从不到5%到超21%,未来发展空间巨大。

非凸科技也在原有基础上全面升级到互联网新一代技术架构,采用Rust构建智能算法交易平台,逐步迭代,为量化私募保驾护航,长期稳定地战胜市场均价。

近年出现的新编程语言Rust,凭借自身优势,已连续5年成为开发者最受欢迎的编程语言。不过,每一种编程语言的兴起,都离不开它所适用的技术领域,也都曾有过高光时刻。不如,先来了解下几种主流后端语言:Go、C、Java和Rust,都有哪些优劣势。你会Pick哪一个呢?

Go语言

Go语言给人的第一印象是极致,极其地快。因为它对代码简洁性的要求十分严格,代码中用不到的Package 严禁import,用不到的变量也要求强制删除。使用Go语言可以让程序员轻而易举的开发出一款性能强劲的应用程序,而恰恰是这种简单、易用的特性,让很多开发者误以为程序的效率卓越是自身编码实力的体现。 

不过,深入了解Go语言后,你也会发现背后隐藏了一些细节问题,比如:内存屏障导致变量值未刷新;闭包地址传递,错使切片元素取值错误.....所以,Go语言使用起来异常快速且简单,但用到极致却很难,也需要长时间的摸索。

、C语言

C语言的理念是充分相信程序员自身的能力,语言自身既没有语法糖,也没有严格的编译检查。几乎所有现代编程语言都脱胎于C语言,因此了解了C,就了解了关于编程语言的一切,有利于快速掌握其他各类语言;几乎所有操作系统都支持C语言,跨平台性好。

不过,C语言也有一定的学习难度,如果你不能熟练掌握,那么它就不会给你输出更多的生产力。尽管C语言体型小巧,可最常使用的C++规模可观且拥有大量极为复杂的功能交互方式,容易造成资源浪费。

、Java语言

Java语言不仅吸收了C语言的优点,还摒弃了C语言中难以理解的多继承、指针等概念。另外,由于垃圾回收器GC的存在,令人头疼的指令问题与内存泄漏在Java的世界上基本不存在了。

在JVM虚拟机的加持下,Java语言的下限通常较高,即使是初级程序员也能通过Java实现比较高的生产力,甚至比中级程序员使用C的生产力还高,但Java的上限不如C和Rust高。以及Java占用较大内存,启动时间较长等不足。所以,Java在学习难度、生产力、性能、内存消耗等方面,目前相较于其他语言来说,比较均衡。

、Rust语言

Rust语言表面看像C语言,既没有JVM虚拟机,也没有GC垃圾回收器,但实际上,Rust特别不信任程序员,力图让Rust编译器把程序中的错误杀死在生成可执行文件之前的Build阶段。由于没有GC,Rust便独创了一套变量的生命周期及借调用机制。与此同时,开发者必须时刻小心变量的生命周期是否存在问题。

尽管Rust语言既有很好的安全性,又能达到和C语言接近的执行效率,但也有局限性存在。比如,有人觉得Rust学习起来像火星语言一样难,多路通道在使用之前要clone,带锁的哈希表用之前要先unwrap,种种语法和Java、Go完全不同;还有人觉得代码通过编译很难,特别在学习初期,很容易有一种莫大的挫折感......

任何一种新语言,初期学习都会感觉有一定难度,但实际上,无论你经验丰富与否,转Rust并非难事。当你从其他语言转向Rust时,已经积累了一些经验,这通常是一件好事,意味着你不需要从头来过,只不过是之前遗留的坏习惯可能会让你的代码呈现一些坏味道。

据9月程序员薪酬调查表显示,Rust以平均2万多的高薪排名第一,成为众多语言的天花板。所以,集表达力、高性能、内存安全于一身的极致语言Rust,其入门并非想象中那么难,一旦出师,便是高手,还能高薪酬。

现阶段,非凸科技正在寻找行业内优秀的Rust开发工程师,薪资福利超级优厚。在这里,我们有手把手的指导和扁平化的管理训练体系;在这里,我们有纯正的名校基因和ACM金牌血统;在这里,我们以技术为种子,持续创新,追求卓越。

如果你想拥有高薪的同时,也想加入到顶配的技术团队,那就来非凸吧!

 

薪资:提供有竞争力的薪资

福利:租房补贴;年终奖金;定期团建;五险一金

工作地点:北京、上海、成都

邮箱投递:recruit@ft.tech

...全文
329 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
魔芋红茶 2021-11-27
  • 打赏
  • 举报
回复

个人觉得国内不同开发语言的薪酬差异是某种语言是否小众来决定的,而非难易程度或者语言优劣

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧