Title Text:Slowly progressing from ‘how do protons behave in relativistic collisions?’ to ‘what the heck are protons even doing when they’re just sitting there?’
Origin:https://xkcd.com/2797/
https://www.explainxkcd.com/wiki/index.php/2797:_Actual_Progress
实际进展
https://xkcd.in/comic?lg=cn&id=2797
边缘情况是指一种情况,通常存在于软件工程中,也存在于其他领域,它是罕见的,可能需要特别处理,并且表现方式与大多数情况不同。在解决复杂问题之初,有人可能会提出一个简化的解释,认为这是简单的,并实现甚至部署一个使用他们解释的系统。这些部分(不正确)而又极具用途的解决方案在软件工程中被称为启发式。如果开发人员没有意识到他们处理问题的方式是错误的,他们可能会高兴地深入研究边缘情况,希望能解决它们,结果揭示出他们可能在线的系统的基础是基于错误的认知或逻辑,常常对此感到困惑,甚至不知其运作方式。
类似的问题也会出现在物理科学中。一些在新颖条件下获取的实验数据,可能与当前接受的模型不符。尝试调和这些数据可能会导致发现许多之前认为确认该模型的其他数据在仔细审查时会产生问题。最终,可能会找到一个更好、更普遍适用的模型。例如,水星的轨道与严格的牛顿力学不一致,这是一个产生了许多理论的问题,但最终被爱因斯坦的广义相对论解决。对其他行星轨道的极其细致的测量将会揭示,它们同样不符合牛顿力学;这种效应是普遍的,但在水星上最容易观察到,因为它相对靠近太阳。(更常见的是,那些不符合的少量数据可能会被发现是无效的,结果是由于在新颖条件下的实验误差。“他们嘲笑伽利略……但他们也嘲笑小丑博佐。”)
此时,开发人员可能实际上正在处理一个尖端的研究挑战,而并未意识到这一点,且他们所要应对的问题空间正是一项正在积极研究的课题,但尚不存在完全解决的方案。在1425:任务中,一个天真的老板要求一位工程师执行两项任务,而工程师给出的开发时间估算截然不同。在研究论文尚未易于获取之前,这种情况发生时并不那么明显。而如今,当许多历史上非常困难的问题有了更多知名的解决方案,并且许多过去难以解决的问题正在显示出积极的进展,任何人都可以参与并审查时,情况就完全不同且更为具体。
另一种像这个漫画中一样常见的软件工程情况是,当与一个被迅速推向市场的代码库合作时,该代码库的基础概念没有得到良好的组织和建模:意大利面条代码。一开始,人们可能会认为可以进入软件并简单地打一个补丁,但过去的类似补丁使得各个部分无谓地交织在一起,并将任何启发式以不可维护的方式“烘焙”进去了。
关于“实际进展”的笑话既是讽刺的,也可能指的是在解决一个问题时,当其一般结构和基础直接被解决时,往往会取得最大的进展:当它被更好地理解并且针对其根本原因进行处理时。这在意味着在重新构建更好的解决方案之前,先打破不可用性解决方案时似乎显得讽刺;这通常是这里发生的情况;这被称为重构,类似于将稍微凌乱的房间的所有物品都拿下来,搞得非常凌乱,然后重新整理成一个新的无混乱的组织。在这两种情况下,如果你的新解决方案有一个关键的错误,最终会导致更糟糕的局面。
标题类似于1906:取得进展,其结构与“我开始了……但现在,经过……”相似,但最终把问题列在了电子表格中,而不是更多的困惑。标题文本可能部分受到PBS《时空》节目“人工智能是否证明了我们的质子模型错误?”的启发,该节目在这一漫画发布前的十二天发布,讨论物理学家如何没有一个经过验证且准确的静止质子内部结构模型,以及让人工智能分析碰撞数据导致的模型与人类制造的模型显著不同。