Do Developers Read Type Information? An Eye-Tracking Study on TypeScript
26名の大学生を対象としたこのアイトラッキング研究は、TypeScriptを用いたコード理解またはバグ特定タスクにおいて、開発者が型注釈を直接より頻繁に見ているわけではないことを明らかにしており、これは型がドキュメントとしての役割を果たしている可能性はあるものの、以前に仮説として立てられていたような方法で能動的に読み取られているわけではないことを示唆している。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
あなたは料理のレシピ本を読んでいるところだと想像してください。いくつかのレシピには、材料リストに「小麦粉 2カップ」や「鶏肉(骨なし)」といった小さな付箋(ふせん)が貼ってあります。これらのメモは、コンピュータコードにおける**型注釈(type annotations)**のようなものです。これらは、プログラマ(料理人)に対して、どのような種類のデータ(材料)が使われているのかを正確に伝えます。
長年、専門家たちは、これらの「付箋」が組み込みの取扱説明書として機能していると考えてきました。プログラムで行き詰まったり、レシピを理解しようとしたりする際、プログラマはこのメモを見て助けを得るのだという理論です。
大きな疑問:
プログラマはコードを読んでいるとき、実際にこれらのメモを見ているのでしょうか? それとも、ただ無視しているのでしょうか?
この疑問を解明するため、研究者たちは「キッチン」実験を用意しました。彼らは単にプログラマに「どう思っているか」を聞いたのではありません。22人の学生がコードを理解し、バグを見つけようとする様子を、アイトラッキング眼鏡(視線がどこを向いているかを正確に記録するハイテクな眼鏡)を使って観察しました。
研究結果を、シンプルな概念ごとに分かりやすく解説します。
1. 「ゴースト・ノート(幽霊のメモ)」現象
予想: もし付箋が役に立つのなら、人々は特に混乱したときに、頻繁にそれを見るはずです。
現実: アイトラッキングのデータは、プログラマは型注釈をほとんど見ていないことを示しました。
- 例え話: これは、地図上に明るい赤色の「現在地」ステッカーがあるのに、ドライバーがステッカーを完全に無視して、道路やGPS画面ばかりを見つめているようなものです。たとえメモがあっても、プログラマの視線が、メモがない時よりも長く留まることはありませんでした。
- 発見: これらのメモの存在は、プログラマのコードの読み方に影響を与えませんでした。メモがあるからといって、より多く見ることもなければ、行き詰まった時に読み返すこともありませんでした。
2. 「記憶力」テスト
予想: もしかすると、メモは記憶の補助として機能しているのではないか? もしプログラマが多くのことを覚える必要がある場合(ワーキングメモリが高い場合)、情報を頭の中に保持できるため、メモをあまり使わないかもしれません。逆に、覚えるのが苦手な場合は、メモに頼るかもしれません。
現実: 研究者たちは、学生の記憶力をテストしました(数学の問題を解きながら、文字のリストを覚えてもらうようなテストです)。
- 発見: 記憶力がどれほど優れていても、実はあまり関係ありませんでした。「超人的な記憶力」を持っていようと「普通の記憶力」であろうと、型注로(注釈)を特別に多く見ることはありませんでした。研究者が期待していたような、記憶力の「杖(支え)」としての役割は果たしていませんでした。
3. 「レシピによる違い」という要因
発見: プログラマの読み方を大きく変えたのは、メモではなく、コードそのものでした。
- 例え話: レシピには読みやすいものもあれば、そうでないものもあります。レシピが乱雑で分かりにくい場合、料理人はそれをじっと見つめてしまいます。逆に明確であれば、スイスイと進めます。研究者は、特定のコードが「付箋」があるかどうかに関わらず、それ自体が理解しにくいものであることが、はるかに重要であることを発見しました。
4. 「メモ大好き」のパラドックス
ひねり: 実験の後、研究者は学生に「これらの付箋(型注釈)はどう思いますか?」と尋ねました。
結果: 学生たちは**「YES!」**と答えました。彼らは、型注釈はコードを書いたり理解したりする上で非常に役立つと圧倒的に考えていました。彼らは、それが有用だと思っているのです。
パラドックス: ここが不可解な点です。学生たちは「メモは素晴らしい」と言っていますが、彼らの目は「見ていない」ことを証明しています。それは、「シリアルの栄養成分表示を読むのが大好きだ」と言いながら、実際には買い物中に一度もラベルを見ていないようなものです。
これは何を意味するのか?
この論文は、プログラマは型注釈をコード内の便利なドキュメント(説明書)だと信じていますが、実際には、私たちが想定しているような方法では読んでいないと結論付けています。彼らはメモを凝視することもなければ、行き詰まった時に読み返すこともありません。
誰が注意すべきか?
- ツール開発者: プログラマがメモを見ていないのであれば、ツール(彼らが使うソフトウェアエディタなど)は、単に画面に表示するだけでなく、もっと分かりやすく、目立つ方法で情報を示す必要があるかもしれません。
- 教師: もし学生がメモを読んでいないのであれば、教師は、学生が自然に習得することを期待するのではなく、その情報をどのように読み、活用するかを教える必要があるかもしれません。
- コミュニティ: これは、単にコードにこれらのメモを追加することが、理解のための魔法の解決策ではないことを示唆しています。メモは、私たちがまだ完全には理解できていない「特定のやり方」で使われる必要があるのです。
要約すると: プログラマは型注釈という概念を愛していますが、実践においては、彼らの目は別の物語を語っています。彼らは、それをほとんど無視しているのです。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。