这个问题似乎已经解决了,甚至被打死了。聪明的人在这个问题上说过聪明的话。要成为一名真正优秀的程序员,您需要了解 C 语言。
还是你?
这周我开悟了两次。第一个让我意识到我的假设并没有超出我在它们背后的知识,并且考虑到在我的机器上运行的软件的复杂性,这几乎不存在。但真正让它回家的是这条 Slashdot 评论:
最终结果是,我注意到传统 C“裸机”程序员认为实现更高级别语言的许多天真的方式。他们在他们影响的项目中做出糟糕的“优化”决策,因为他们不知道编译器是如何工作的,也不知道一个好的运行时系统与他们理解的幼稚的宏汇编器模型有多大不同。
然后它击中了我:C 只是另一种抽象,就像所有其他抽象一样。甚至CPU 本身也只是一个抽象!我只是从未见过它破裂,因为我没有测量它的工具。
我很困惑。我的思想是否像 Dijkstra 所说的 BASIC 那样被肢解得无法恢复?我是否生活在过早优化的持续状态中?既然我意识到我对任何事情一无所知,我还有希望吗?有什么要知道的吗?为什么它如此令人着迷,以至于我在过去五年中所写的所有内容都可能根本上是错误的?
总结一下:比 API 文档告诉我的更多有什么价值吗?
编辑:制作CW。当然,这也意味着现在您必须发布解释器/运行时优化的示例,比我们做得更好:)