今朝のことですが、Stack Overflowで人気のある質問が1つの値を越えました。



注釈：

見出し: Vimエディタの終了方法を教えてください

質問者: jclancy

赤丸囲みの中: ビュー：1,000,082回

jclancyさん、あなただけではありません。この質問が投稿されてから5年、あなた以外に100万人以上の開発者がVimで身動きできなくなって、何らかの助けなしには抜け出せませんでした。実際、Vimエディタを終了させるのは難しく、開発者の間では共通のジョークになっています。



注釈：

誰も簡単にVimから抜け出せない

ベテランのVimユーザからこういう評判は不当だと言われたことがあります。（私もやっとここ数年でこの問題についてのコツをつかんだのですが、）確かにベテランの言い分は正しいと思います。Vimの終了方法を忘れてしまうのには2つの理由があると思います。開発者は、Gitコマンドあるいは予期していなかった状況からVimに入ってしまうのですが、その頻度は最後に問題を解決した際のやり方を覚えていられるほど高くないのです。

この出来事に敬意を表して、この問題を取り巻くデータを着目することにしました。特に調べようと考えているのは、意図的にVimを利用する人と対比したVimで身動きできなくなってしまう傾向が強い人です。さらに、国やプログラミング言語によって割合がどのように変わるかの検証です。

Vim終了に挑んだ人数は？

昨年、Vimエディタの終了方法を教えてくださいという質問のトラフィックは、質問全部のトラフィックの約0.005パーセントになりました。Stack Overflowの質問ページへの訪問数20,000回ごとに1回のアクセスがこの質問へ来たのです。つまり、平日のトラフィックがピークを迎える時間帯では、1時間につき大体80人がVim終了に対する手助けを必要としたということです。

トラフィックの割合は時間の経過と共に変わったのでしょうか？ つまり、開発者は自分でVimの終了方法を学び始めたのでしょうか？



注釈：

縦軸: “Vimの終了方法を教えてください”へ行ったStack Overflowのトラフィックの割合（パーセント）

横軸: 月

そうは見えません。この質問は2012年8月に投稿され、その後の数か月はトラフィックがほとんどありません。その後、2年の間に値が大きくなっていきました。おそらくネット上で多くのソースからリンクされ、検索エンジンの検索結果でトップになったのでしょう。割合はここ2年ほどわりと安定しています。もちろん、このことは、同じ人が何度も訪問したということを必ずしも意味するものではなく、比較的新人のプログラマが初めてVimで困ってしてしまったということを表しているのかもしれません。

国による差異

Stack Overflowの前回のブログ投稿で見たように、スタックオーバーフローのトラフィックを使って開発者の地理的な分布を詳しく知ることができます。

各国内でこの質問を構成するVim訪問の割合について考察します。多くのベテランVimユーザがいる国では、この割合が低いと思われます。割合が高い場合は、多くのユーザが必ずしも予期しなかった場面で動けなくなったことを示します。



注釈：

見出し: Vimで身動きが取れなくなった国はどこか？

見出し説明: 年間トラフィックにおけるVim訪問数の割合。同じ年の訪問数1億回を越える国のみ。

横軸: “Vimの終了方法を教えてください”へ行ったVimのトラフィックの割合（パーセント）

ウクライナやトルコ、インドネシアの開発者は、かなりVimで困っているように思われます。というのも他の国に比べて、身動きが取れなくなったという内容がVimに関する質問の大部分を占めています。それとは対照的に、中国や韓国、日本では、この質問がなされる割合は10分の1程度です。このことは、中国や韓国、日本にいる開発者がVimを利用するのは、多くの場合使おうと思った時であり、また終了方法も知っているということを示しているのかもしれません。

Vimで身動きが取れなくなったのはどのようなプログラマか？

ユーザのプログラミング言語が異なれば、Vimでの体験も違うようです。各ユーザの主たるプログラミングの技術を軸にして”Vimの終了方法／Vimに関する質問の総数”の割合を階層化して確かめてみましょう。

ユーザがどのStack Overflowのタグに最も頻繁に訪問しているかということに基づいてこれを定義します。（例えば、私が一番訪問しているタグはRで、私が閲覧する質問の52パーセントに相当します）。これは完璧な計測方法ではありませんが、言語によって分類するという概念を与えるには十分です。（この分析では、少なくとも100回はサイトを訪問している、登録済みユーザだけを対象にしています）。



注釈：

（見出し）どんなプログラマがVimで身動きが取れなくなったのか？

ユーザが最も頻繁に訪問しているタグで分類し、16の一般的なタグを表示

（縦軸）ユーザが訪問する最も一般的なタグ

（横軸）”Vimの終了方法”に行き着くVim関連タグの訪問者の割合

一番Vimで困っていると思われるのは、フロントエンドのWeb開発者で、彼らが主として訪問しているのはJQueryやCSS、AngularJSといったタグです。以下、Microsoft関連（C#やSQLサーバ）やモバイル関連（AndroidとiOS）の開発者が続きます。これらの開発者は通常、単純なテキストエディタではなく、IDE（Visual StudioやEclipse、XCodeなど）で作業を行っています。ですから、意図的にVimを使おうとする人たちよりも、比較的”抜け出せない状況”に陥りやすいということが分ります。

Vimで困った状況に陥ることの少ない開発者は、CやC++、Python、Rubyのプログラマです。これらの言語を見れば納得できます。こういった言語は、低水準言語とスクリプト言語との組み合わせであり、低水準言語ではIDEではなく単純なテキストエディタを使用することが多いからです。それでGoogle検索を使わずに、Vimを終了することができるのです。

まとめ

この質問への訪問数が100万回に近づいたのを見た時うれしく思いました。また、非常に多くの開発者にとって役立つサイトに取り組み、回答に貢献できたことを誇らしくも思いました。寄稿した回答がいつ100万人の役に立つのか、Gitのコミットを取り消す方法や、Pythonでのyieldキーワードの動作の仕組みが共有されるかどうかなんて、誰にも分からないからです。

もし貢献したいと思っているなら、世界最大の開発者コミュニティーに参加して質問するか回答するか、あるいは次の作業をみつけたり、Developer Storyを使ってオンライン世界での存在感を確立したりすることをお勧めします。またStack Overflow Trendsといったツールを使って、ソフト開発者についてデータが語ってくれることを学ぶこともできます。

とにかく、次回Stack Overflowを利用して問題を解決する時には、定期的に質問するユーザ、回答するユーザ、編集するユーザ、サイトを円滑にモデレートするユーザなど、大勢のユーザのことを思い起こしてください。

David Robinson、データサイエンティスト