← 最新论文
💻 computer science

Do Developers Read Type Information? An Eye-Tracking Study on TypeScript

这项涉及 26 名本科生的眼动追踪研究表明,在进行代码理解或缺陷定位任务时,开发者并不会更频繁地直接注视类型注解,这表明尽管类型可能起到文档的作用,但它们并未像此前假设的那样被积极阅读。

原作者: Samuel W. Flint, Robert Dyer, Bonita Sharif

发布于 2026-02-05
📖 1 分钟阅读☕ 轻松阅读

原作者: Samuel W. Flint, Robert Dyer, Bonita Sharif

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下你正在读一本食谱。有些食谱在配料表旁边贴着小小的便签,上面写着“2杯面粉”或“去骨鸡肉”。这些便签就像是计算机代码中的类型注解(type annotations)。它们告诉程序员(厨师)正在使用的确切数据类型(食材)。

多年来,专家们一直认为这些“便签”充当着内置的说明书。这种理论认为,当程序员遇到困难或试图理解一份食谱时,他们会查看这些便签来获取帮助。

核心问题:
程序员在阅读代码时,究竟是真的在看这些便签,还是直接忽略了它们?

为了找出答案,这篇论文的研究人员设计了一个“厨房”实验。他们没有仅仅询问程序员们“觉得”自己是怎么做的;而是使用了眼动追踪眼镜(一种可以精确记录眼睛注视位置的高科技眼镜),观察了 22 名学生在尝试理解代码并寻找其中的漏洞(bug)时的表现。

以下是研究发现的拆解,采用了简单的概念进行说明:

1. “幽灵便签”现象 (The "Ghost Note" Phenomenon)

预期: 如果这些便签是有帮助的,人们应该经常看它们,尤其是在感到困惑的时候。
现实: 眼动追踪数据显示,程序员几乎不看类型注解。

  • 类比: 这就像是在一张地图上贴了一个醒目的红色“您在此处”标签,但司机却一直盯着路面和 GPS 屏幕,完全忽略了这个标签。即使便签就在那里,程序员的目光停留时间并不比没有便签时更长。
  • 发现: 这些便ч签的存在并没有改变程序员阅读代码的方式。他们并没有看得更多,也没有在遇到困难时回头重新阅读它们。

2. “记忆力”测试 (The "Memory" Test)

预期: 或许这些便签起到了记忆辅助的作用?如果一个程序员需要记住很多东西(高工作记忆),也许他们使用便签的频率会降低,因为他们能在大脑中保留这些信息。如果他们记不住,也许会更依赖便签。
现实: 研究人员测试了学生的记忆力(例如在做数学题的同时让他们记住一串字母)。

  • 发现: 记忆力好坏并不重要。无论他们拥有“超强记忆力”还是“普通记忆力”,他们都不会显著地更多或更少地去看类型便签。这些便签似乎并没有像研究人员预期的那样,成为他们记忆力的“拐杖”。

3. “取决于食谱”因素 (The "It Depends on the Recipe" Factor)

发现: 改变程序员阅读代码方式的最主要因素不是便签,而是代码本身

  • 类比: 有些食谱本身就更容易阅读。如果一份食谱很混乱或令人困惑,厨师就会盯着它看更久。如果食谱很清晰,他们就会快速浏览。研究人员发现,特定的代码片段比是否带有“便签”重要得多。无论是否有注解,有些代码本身就是更难理解的。

4. “我爱便签”悖论 (The "I Love Notes" Paradox)

转折: 实验结束后,研究人员问学生们:“你喜欢这些类型注解吗?”

  • 结果: 学生们说是的! 他们压倒性地表示类型注解对于编写代码和理解代码非常有帮助。他们认为这些注解很有用。
  • 悖论: 这就是令人困惑的地方。学生们便签很棒,但他们的眼睛却证明他们并不看它们。这就像是说,“我非常喜欢阅读营养标签”,但在买谷物早餐时却从未看一眼。

这意味着什么?

论文得出结论:虽然程序员认为类型注解是像代码文档一样的有用工具,但他们实际上并不阅读它们,不像我们预期的那样。他们不会盯着看,也不会在遇到困难时回头查看。

谁应该关注这一点?

  • 工具开发者: 如果程序员不看这些注释,那么工具(比如他们使用的软件编辑器)可能需要以另一种更明显的方式展示这些信息,而不仅仅是打印在屏幕上。
  • 教师: 如果学生不阅读这些注释,老师可能需要教授他们如何阅读和使用这些信息,而不是假设他们会自然而然地学会。
  • 整个社区: 这表明,仅仅在代码中添加这些注释并不是解决理解问题的“灵丹妙药”;我们需要以一种我们尚未完全掌握的特定方式来使用这些注释。

简而言之: 程序员热爱类型注解的概念,但在实践中,他们的眼睛讲述了另一个故事:他们大多在忽略它们。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →