< 返回版块

ftkj411522 发表于 2021-10-27 22:48

Tags:Rust;C++;Java;Go

近年出现的新编程语言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,其入门并非想象中那么难,一旦出师,便是高手,还能高薪酬。


Ext Link: https://ft.tech

评论区

写评论
作者 ftkj411522 2021-11-02 22:59

那rust呢?[吃瓜]

--
👇
SummerFans: 2010年鄙视java到现在

SummerFans 2021-11-02 15:43

2010年鄙视java到现在

作者 ftkj411522 2021-11-01 13:02

那以后多多关注,多多联系[旺柴],随时欢迎👏

--
👇
eweca-d: 哈哈,感谢您的邀请,不过我还要好几年才能毕业,就不忙着找工作了。

--
👇
ftkj411522: [强][强][强]那有没有兴趣来非凸呢?[旺柴]

--
👇
eweca-d: 本来只是想用rust写动态库给python用,结果最后全面倒向了rust了。工科博士生路过,用rust写一些日常小软件、数值计算和有限元。。。。

eweca-d 2021-10-29 23:06

哈哈,感谢您的邀请,不过我还要好几年才能毕业,就不忙着找工作了。

--
👇
ftkj411522: [强][强][强]那有没有兴趣来非凸呢?[旺柴]

--
👇
eweca-d: 本来只是想用rust写动态库给python用,结果最后全面倒向了rust了。工科博士生路过,用rust写一些日常小软件、数值计算和有限元。。。。

作者 ftkj411522 2021-10-29 22:40

Rust

--
👇
warriorsfly: 你在这里问这个问题得到的结果~

作者 ftkj411522 2021-10-28 22:30

csdn以及其他it公众号有发布过,一查便知[憨笑]

--
👇
lipincheng:

据9月程序员薪酬调查表显示,Rust以平均2万多的高薪排名第一

这个数据在哪看的呀

lipincheng 2021-10-28 19:16

据9月程序员薪酬调查表显示,Rust以平均2万多的高薪排名第一

这个数据在哪看的呀

作者 ftkj411522 2021-10-28 17:35

那...要么尝试写rust呢

--
👇
shaitao: go的语法, 写了好多写吐了

--
👇
ftkj411522: 没有做广告宣传,麻烦留贴,谢谢哦

作者 ftkj411522 2021-10-28 17:35

[皱眉]

--
👇
苦瓜小仔: 在 C/C++/Rust 面前谈 Go 极其地快,是不是不合适。。。

作者 ftkj411522 2021-10-28 17:34

[强][强],非凸正在 招优秀的rust工程师,有没有兴趣哇

--
👇
xian9yu: 除了java, 其他的都可以

作者 ftkj411522 2021-10-28 17:31

事实上,入门并没想象中那么难[捂脸]

--
👇
Youziw: Rust的学习门槛劝退了不少人

--
👇
fefit: 看场景了,合适的就是最好的但还是更钟爱Rust

作者 ftkj411522 2021-10-28 17:30

[捂脸]要求不多,只要够优秀,要么来非凸挑战下

--
👇
rex-ma-2015: 工作需要哪个就学哪个。学了一个转另外一个很容易,现在招聘都是要求都是语言不限。

作者 ftkj411522 2021-10-28 17:27

[强][强][强]那有没有兴趣来非凸呢?[旺柴]

--
👇
eweca-d: 本来只是想用rust写动态库给python用,结果最后全面倒向了rust了。工科博士生路过,用rust写一些日常小软件、数值计算和有限元。。。。

rex-ma-2015 2021-10-28 14:29

工作需要哪个就学哪个。学了一个转另外一个很容易,现在招聘都是要求都是语言不限。

eweca-d 2021-10-28 14:08

本来只是想用rust写动态库给python用,结果最后全面倒向了rust了。工科博士生路过,用rust写一些日常小软件、数值计算和有限元。。。。

Youziw 2021-10-28 13:27

Rust的学习门槛劝退了不少人

--
👇
fefit: 看场景了,合适的就是最好的但还是更钟爱Rust

Youziw 2021-10-28 13:25

java要被抛弃了吗

--
👇
xian9yu: 除了java, 其他的都可以

Youziw 2021-10-28 13:24

Rust能否打败C?

--
👇
kingeasternsun: Let's Go Rust

苦瓜小仔 2021-10-28 12:43

在 C/C++/Rust 面前谈 Go 极其地快,是不是不合适。。。

kingeasternsun 2021-10-28 10:44

Let's Go Rust

1 2 共 25 条评论, 2 页