Mat*_*ner 11 c programming-languages
C++经常被吹捧为C的演变,但事实并非如此.为我正在寻找的那种语言画一个类比:
任何提议或实现的语言是否适合与C相同(巨大)的利基,旨在作为替代方案,同时保持对操作系统,高性能,嵌入式和其他角色的所有适用性?
我认为这个问题和后续讨论的问题是很少有语言可以取代其他语言.当然,当你试图澄清和捍卫你的一些分组时,他们共享相似的功能集或完成类似的事情,但最终,我认为没有人会坐下来写一种旨在取代另一种语言的语言.更有可能的是语言设计者想要实现一个目标,并且会选择已经做到这一点的某些语言的各个方面.例如,看看Go它的设计目的是为了超高性能系统编程,可以说,与C竞争.但是,如果你看一下关于项目任务的常见问题解答,他们不会寻求替换C,而只是扩充它并解决它面临的问题(例如依赖管理来命名)(所以也许这就是你的答案)正在寻找.
事实上,无论某事物是否是其他东西的演变,完全取决于你从中检验和评估进化的视角.C++可以被认为是C的演变,因为它引入了一个新的特性集(OO编程),许多人认为它在系统设计中向前迈进了一步,同时仍然保留了与C代码类似的语法和兼容性.然而,它并不完全是一种进化,因为它也缺少一些使C成为当今语言的特性. 没有一种语言可以做任何事情(除了可能是Lisp ;-)我小孩,我小孩)并且永远不会.没有一种语言没有权衡.使Web开发变得简单的抽象是同样的抽象,使得低级系统开发变得不可能(或者过于困难).所以我真的认为很难说X是Y的演变.相反,我会说"我想做W而且我知道我可以使用语言X但是有一些东西可以更好地实现我的A,B和C目标?" 不幸的是,编程语言不是黑白的,不能像这样做出类似的陈述,就像你在编程中做出的每一个决定一样,它是关于权衡的.