打印调试应该消失

2021-04-28 11:05:01

这是基于我在HN上留下的评论。许多人更喜欢在交互式调试工具上打印调试。其中一些似乎已经得出结论,印刷调试的优越性是某种永恒的自然法。它是' t:几乎所有的原因都可以通过改进调试器来克服使用打印调试的原因 - 在某种程度上已经是。 (用William Gibson的话来说,未来已经在这里,它' s甚至没有均匀分布)。打印调试的优越性是偶然的,对于大多数开发人员来说,它将在某些时候结束(或者它已经结束,他们没有知道它。)像RR一样唱片和重播调试器(免责声明:我启动了它并帮助维护它),撤消,TTD,Replay.IO,等互动调试器的一组问题。你不必停止该程序调试它;您可以录制完整的运行,然后稍后调试它。您可以多次录制该程序,直到它失败并仅调试失败的执行,直到您理解故障。您可以录制在远端机器中运行的程序,从任何您想要的地方提取录制并调试它。 Pernosco(免责声明:我的宝宝)和其他任何一方面的调试器进一步走得更远。打印调试的粉丝观察到"步骤调试器" (甚至记录和重播步骤调试器,如RR)只向您展示一个时间,这是限制性的。它们绝对是正确的。无所不知的调试器可以快速访问所有计划状态,并可以一目了然地向您展示程序状态如何随时间变化。我们在Pernosco的主要目标之一(我认为大多是达到的)是,开发人员永远不应该感受到"步骤"建立程序状态如何随着时间的推移而发展的心理图片。我们这样做是通过支持一种形式的"互动打印调试&#34 ;:一旦您购买彻头偶会调试,就会向您打开一个富裕的世界。例如,像Pernosco这样的无关调试器让您及时向后跟踪Dataflow,调试超级大国打印调试可以' T触摸。打印调试的原因有很多,仍然是许多开发人员的最佳选择。 RR,Pernosco和类似的工具可以在许多背景下都在所有情况下使用。然而,可以减轻这些工具(编程语言,操作系统,硬件平台,开销)的大多数局限性,可以在工程工作中充分投资和平台供应商的支持。重要的是要记住,这些工具迄今为止的投资水平令人难以置信的低,基本上只是少数初创公司和贫困开源项目。如果软件行业严重调试 - 而不是抱怨工具并恢复打印调试(或者最多,建立自20世纪80年代自20世纪80年代以来的功能制定的功能调试) - 并相应地投入我们可以做出巨大的进展,而且没有很多人会觉得需要诉诸打印调试。