类比一下,C语言象无人机,C++象航天飞机,RUST象民航机
领到程序员资格水平证30年了,曾经流行的各种编码工具也或浅或深使用过,真正下了功夫的,也就是c,c++,rust三种,谈下看法,用三种航空器来比拟吧。
一、c语言,是引导你向往自由的,好比无人机
DOS操作系统霸占PC的时代,系统中断就是你的API,操作系统内存明明白白地亮出来,谁都能访问,你觉得显示慢就直写内存,你的程序一旦运行就无所不能。那会儿没有用过网络,也没多少人交流,最多订个电脑杂志报纸,惊见高人从你想不到角度、用你不知道中断和技巧,拐着弯地解决各种各样的疑难问题。那是一个写代码最好的年代,任你天马行空,一切无中生有。记得一众高手风华绝代,有人打开debug直接用汇编就写个汉字系统,或者写个工具用磁盘相传就风靡IT界。你有个Turbo C,那就进入了自由世界,限制只是来自于自己的想像力,哦还有以KB计的电脑内存,现在想起来也不太有蜗牛角上做道场的印象,毕竟独占全机也不需要顾忌其他程序,别搞死机了就行。这个搞法就像无人机一样上天入地,自由就象风一样拂面而来,想咋飞就咋飞,感觉好极了。不过无人机也有个坏处,飞不高也飞不远,容易挂着电线掉下来。现在的C,依然自由,依然强大,但是环境复杂了许多,必须有深厚的经验才能少踩坑,就象一个壮汉,如果懂法守法能力更大,如果不懂法乱惹事就是莽夫一个,破坏性也大。
二、c++,是扩大你的能力,就像航天飞机一飞冲天
毫不夸张地说,c++撑起了信息化应用软件的半边天。信息化飞速发展的时代,呼唤高质量高速度的软件开发,更强大的类库、更好用的界面、更兼容的适应性,c++不遑多让,已经成为信息化社会基础设施的顶梁柱子。各种方便开发的特性,仿佛把使用者托举到一架航天飞机上,用最快的速度升到不可企及的高度,等你飘够了还能平稳降落。不过随着信息设备越来越细分化,有更加简单低代码或者更加智能的编程语言不断涌现,仍然不改c++大厦基石的综合优势。犹有乱花迷眼,犹有山路迢遥,在众多的编程语言中,c++仍然是最踏实、最通用、积累最多、不断发展的那个带头大哥。说到缺点,那与航天飞机也很像,就是快速迭代且高度复杂的开发,会在细微之处存在瑕疵,一旦爆发后果难料。
三、rust,是个悲观主义者,犹如民航机一样时刻盘算着出问题怎么办
其实大家吵吵着信息化时代这么多年了,真正信息化的都是不太重要的一般性事务。一些片刻不能停顿的基础业务、毫厘不能出错的重要业务,完全信息化的并不多,近几年来才渐渐感到多了起来。比如会计业务,老早就有软件支持,只是一直与纸质账本并行,电算化用来减少繁琐劳动,那么这些重要业务、社会基础服务为啥不能完全仰赖信息化呢?还不是因为胆量不够!没有胆子来源于没有底气、没有信心,对信息化设施、信息技术不放心呀!为什么银行用的系统软硬件这么贵,还不是花钱买个放心么。电脑硬件的稳定问题,其实现在已经基本解决了。比如阿里的服务器集群,具有高度稳定性、伸缩性,几乎消除了宕机现象。那么还剩软件部分,谁能保证这些操作系统软件、数据库软件、业务逻辑处理软件等等大量的、复杂的软件不出错呢?老实说,没人能保证,你花再多钱,也买不来“绝对稳定”的软件。这个时候,rust就有点意思了,它是一个从主导思想上,就把高可靠、高效率当成追求目标的编程语言,直击当前信息化痛点,这也是它出道晚却高光、高关注率的原因吧。好处不再说了,坏处嘛,rust就象契诃夫的《装在套子里的人》,事事做个套子做上防护,天天掰手指头计算哪个值漏处理了,生怕出了乱子,与c和c++的自由奔放比起来,搞得确实让人压抑。就象是民航机驾驶舱,坐进去满眼全是开关、仪表,虽然可以行稳致远,操作上哪有我的小电车把手一拧就跑这么简单。
好了,费不少劲地类比半天,相信哪个更好点也不用多说了。至于你一定要说某编程语言要比这三个强多了,我相信你这么说一定有你的角度和道理,合适的、能完成任务的就是好的,至于高可靠,其实主要靠的是编码者自己的经验、能力,以及遵守规则和完善的测试,追求可靠、高效没有终点没有止境,共同努力吧。