如果C和C++提供了最好的性能,为什么我们仍然用其他语言编写代码?

推荐答案1

一些事情.

零: C可以很快,但是很难正确有效地写入.当处理速度至关重要时,应使用它.但这并不总是.

一个: 有时fortran更快.指针混叠可能会弄乱您.

两个: 如果您在很大程度上是i/o绑定的,则可以用任何语言写作.剃掉每个数据库记录过程的毫秒毫秒是否需要一秒钟才能获取每个记录或文件.

三: 一切都快速对于小N.如果您必须处理5个文本文件,则如果您计算编程时间.在算法上绑定. Python中的A O(n)算法比C.

五: 安全性中的任何O(2^n)算法要快.简单的东西:

char* inputsting;
printf(inputsting);

是一个安全孔.

六: 编译器(可能应写入C或C ++如果仅避免引导问题)变得更聪明. LLVM将优化并编译到机器代码中,我喜欢的任何前端语言.

推荐答案2

一级方程式赛车也比普通车快得多.人们为什么仍然驾驶普通的汽车?

可靠性:C/C ++臭名昭著,以难以置信的编程难以进行,并且令人难以置信的易于拧紧.它具有太多的功能,以至于可能没有一个人活着的人(拯救Bjarne Stoustroup)知道所有人,更不用说知道他们的用途了.其他语言删除了其中一些功能并增加了限制,类似于在消费级汽车中添加安全带和防锁制动器.与赛车相比,即使在困难的条件下,丰田也更容易安全地驾驶.

维护:您可以将丰田在每个角落修复几百美元.对于赛车,您需要具有特殊技能的训练有素的工程师.

便利:如果您只是去杂货店拿起一些蔬菜,或者在周末开车去萨利姨妈,您真的不需要赛车的动力和扭矩,或高速切割拐角的肾上腺素提升.您要做的就是上车,弹出您喜欢的CD,然后安全,舒适地到达目的地.

因此,最后,这全都是为了为作业选择合适的工具.

推荐答案3

程序员时间比许多应用程序的计算机时间更有价值.

推荐答案4

计算机已经达到了 甚至"慢"语言运行得足够快 以使速度的差异在许多情况下无关紧要.现在,我们拥有牺牲一些潜在性能的奢侈品来使用一种提供更好的一流功能和更强大的抽象的语言,这很重要,因为它使我们能够在相同的时间内将更多的代码淘汰.平均而言,十个工作但不太优化的应用程序将比两个工作和快速的应用程序做得更多.

如果我可以在两周内编写Python Web应用程序那将花三个月的时间在C上写作,那我没有花费的那十个星期是一个巨大的胜利.现在我可以使用它们做其他事情.

大多数程序都不关键. 只要代码合理编写,大多数人们不会注意到Python中写的内容与C ++中一些优化的代码之间的区别.如果您遇到性能问题并需要加快速度,那么最大的收益将来自改善数据模型或将代码转移到更好的复杂性类别中.只有在极少数情况下,例如搜索服务或高频交易,才能从语言速度等诸如语言速度之类的相对较小的惩罚中实际上值得成本.

使其快速地做到它很棒,使其足够快地使用并运送.过去很少有时间使用的任何东西.

推荐答案5

人们似乎无法下定决心.如果他们喜欢Java,他们会说它比C ++更安全,因为它不会放弃零或覆盖内存.但是还有其他方法可以悬挂或崩溃Java程序. C ++的人会告诉您,当使用良好的C实践时,记忆覆盖很少,并且当垃圾收集器运行时,C ++不会遭受滞后.几年前,发现C ++代码中有更多缺陷,但是后来重复该研究的尝试没有这种问题.

可靠性确实取决于开发人员的质量,不仅仅是编程语言.