加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

批判Rust语言,以及C/C++为什么永远不会死

发布时间:2018-05-07 16:47:34 所属栏目:教程 来源:CSDN
导读:副标题#e# 【编者按】此篇文章转载自ScottHuang的GitHub,以便更多语言爱好者学习和交流,尤其是C/C++和Rust,希望对各位有用。 以下为原文翻译: 简单讲,原文http://eax.me/cpp-will-never-die/是俄语,有人感兴趣,得到作者同意后,把它翻成英文。(译者

宏使用一个拐杖来弥补由于缺乏普通异常处理而导致的过度冗长。我已经写了关于元编程的问题 - 就是因为他们是特别的,导致我们没有办法得到一个合适的Rust IDE。并且,即使我并不确定,看起来Rust宏甚至并没有命名空间。Cargo积极的鼓励绕过Crates.io从git中直接下载各种仓库就当人们是白痴。作为一种结果,我们有被被巨量的混乱的包终结的风险,就像Erlang世界中的Rabar。顺便,我怀疑Go世界有同样的麻烦。就像许多新语言,Rust在走简单化的路。我通常理解为什么它没有合适的继承和例外,但事实本身是有些人替我做决定让我觉得有些不舒服。C++不会限制程序员说哪些他们可以或者不可以做。现在,由于我们在走简单化的路,为什么不抛弃所有那些语言扩展?目前组成Haskell世界的那些东西是每个程序员用他们自己方言码出来的。智能指针,让你知道,远不会没有代价,也并不会确保一个固定时间的垃圾收集。假如一些线程荣幸的释放一个非常深的数据结构会发生什么?当死引用在一个迷宫里流浪时,所有依赖它的其他线程都安静的耐心的等待着。Erlang以及它的一小片有同样的困难 - 我曾经自己面对过它许多次。智能指针自己本身也有一些问题 - 例如内存碎片化和泄漏。就像让一个弱指针在一个循环结构里 - 整件事情搞砸了。所有这些都是一个语言试图假装变得安全点...如果你需要一个固定的GC时间,学习你程序的行为,减轻负载并且采取预防性(举例,提供对象池)如果你不满意这些数字,或者可以手工管理内存。有人看到Rust里面严格的语义描述吗?它至少有一个内存模型吗?当你考虑到它可以用10种方法翻译源代码,你还会叫它为一个“安全”的语言可以写出“确保正确”的程序?我不能,但再一次提醒你麻烦的根源通常是人,而不是技术。如果你的C++代码没有足够好,或者Java代码很痛苦的运行缓慢,这不是由于这个技术不好 - 这是因为你还没有学会如何正确的使用它。因此,你也不会因为其他一些理由对Rust满意。学习那些更流行的工具并且喜欢上它不是更容易吗?所以,总结一下,个人来说,在下一个五年左右,我会投资我的时间去学习C/C++而不是Rust。C++是一个工业标准。程序员们已经习惯用它去解决巨量的差异化的任务超过30年了。至于Rust和其他类似的 - 他们仅仅是奇怪的玩具带有模糊的优点。从2000年开始人们已经假设C++很快就会死掉,但自从那时开始起,C/C++并没有变得少用。相反的,事实上,它演进了(C++11、C++14),新的工具发布了(举例说Clion和Clang),并且空间巨大。

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读