< 返回版块

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

评论区

写评论
向離 2021-10-28 09:34

除了java, 其他的都可以

fefit 2021-10-28 09:34

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

丁酉年十三 2021-10-27 23:49

你在这里问这个问题得到的结果~

shaitao 2021-10-27 23:30

go的语法, 写了好多写吐了

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

作者 ftkj411522 2021-10-27 22:49

没有做广告宣传,麻烦留贴,谢谢哦

1 2 共 25 条评论, 2 页