週末にいちばん多く使われるプログラミング言語は?

私は週末のほとんどを家族と過ごし、読書を楽しみ、それから、現在関っているオープンソースプロジェクトの作業に時間を割いています。そのプロジェクトはここStack Overflowで従事している仕事と重なっていますが、全く同じというわけではありません。多くの開発者はサイドプロジェクトに取り組むことで修練を積んだり、キャリアを発展させたり(あるいは単に遊んだり!)しています。Stack Overflowではプロフェッショナルから趣味の人まで向けに、あらゆるタイプのテクノロジをサポートします。いつ作業をしていても、質問に答えられるようにしているのです。では、平日と比べて週末にはどんなプログラミング言語についての問い合わせが多いでしょうか。

Kaggleで公開されているStackLite datasetを使って、投稿された質問に平日と週末で差があるかを探りましょう。このデータセットは誰でも分析することができます。つまり、Kaggle Kernelを使ってStack Overflowの質問とタグについての自分なりの疑問を解くことができるのです。

タグの比較

分析に当たって使用するのは、削除されなかった質問と10,000以上の質問に使われたたタグです。週末の定義はUTCの日付に基づきました。そのため、全ユーザの週末と正確に一致しないかもしれません。結果、全体で平日に10,451,274個の質問、週末に2,132,073個の質問がありました。数字の差は多くの人が平日の仕事でStack Overflowを使っていることによるところが大きく、当社サイトへの質問の投稿でもトラフィックでも同じパターンが見られます。

この平日/週末のパターンを見ると、タグが平日より週末に頻繁に使われるかどうかということに対する関心は湧きません。基本的に全部のタグが平日のほうで多く使われているからです。それよりも、平日よりも週末に使われる割合が高いタグはどれか、またその逆はどれかを探っていきましょう。

相対度数において、最大の差異がある質問タグはどれでしょうか?


注釈:週末/平日で最大の差異があるタグはどれか?
20,000以上の質問に使われているタグより算出

このことをもう少し説明するために、いくつかの数字を見てみましょう。このデータセットにおいて、プログラミング言語Haskell は、週末の質問の0.365パーセントを占めていますが、平日の質問ではわずか0.21パーセントを占めているにすぎません。つまりHaskellは週末に著しく人気があるということを示しています。SharePointは週末の質問では0.0683パーセントを占めていますが、平日の質問では0.188パーセントを占めています。つまり、平日の方が多く使われているということを示しています。

関数型プログラミング言語Haskellが週末中心のテクノロジを先導しているということは、私には非常に喜ばしいことです。これは、実は私のことだからです。

私はHaskellをまだ学んでいません。しかし、週末にHaskellを学んでいる全ての人に栄えあれ! Haskellに関するこのジョークを楽しみましょう。Haskellは、学識者や数学者の間で人気の言語ですが、企業では一般的に使用されていません。

他にもいくつか所見を述べてみましょう。

  • 週末には、低水準テクノロジで人気が高いものがあることが分かります。例えば、CやC++、ポインタ、アセンブリなどです。また同様に、数学関連のタグ、例えば、アルゴリズム、機能、(もちろん)数学の人気も高いです。
  • Heroku やMeteorはラピッドプロトタイピングのために、よく使用されるアプリのプラットフォームであり、週末愛好家のプロジェクトで利用されているということが現れているのかもしれません。
  • 平日中心のテクノロジの多くは、Microsoft関連のものであり、ExcelやSQLサーバ、VBA、T-SQLに関連するタグが含まれます。Microsoft以外にも、オラクルのようなエンタープライズテクノロジが挙げられます。

質問の総数を相対度数と比較することにより、これらの関係性を視覚化することもできます。

この図で、右の端の方にあるタグ(JavaScriptやJava、 C#、PHPなど)ほど、質問が多くなり、左の端の方にあるタグほど質問が少なくなります。点線の近くに現れるタグは、週末の質問数と平日の質問数の割合はほぼ同じです。また点線から最も離れたところにあるタグは、週末と平日の質問数に一番大きな相違があるタグです。

平日を中心に人気のあるタグの大半は、Microsoft(C#やASP.NET、SQL Server、 Excel、VBA)関連のものです。週末を中心に人気のあるタグは、CやC++のようなテクノロジ、さらに、SwiftやNode.jsのような比較的新しい言語です。

週末に作業する

このデータセットを使って、開発者たちがこのようなテクノロジをどう活用しているかの変遷を調べることもできます。週末の割合(週末にされた質問のパーセンテージ)が最も大きく変わったタグを見つけるのには、モデリングを使うことができます。20,000以上の質問に使われたタグのうち、以前よりも今の方が週末の投稿が少ないものは、どれでしょう?


注釈:縦軸は週末/平日の利用の相対比率

ここで分かるのは、数年前には開発者が週末に高い割合で使っていたRuby on RailsやScalaのようなタグが、今では週末の割合が減少し、平日の割合が増加しているということです。このようなテクノロジは、以前はもっと週末を中心としたものだったのですが、最近では相対的に、開発者の平日の仕事で利用されているのです。バージョン管理システムSVNも、この数年で週末の利用が減少しました。この大きな原因としては、おそらくGitHubの到来(2008年に登場)によって個人的な週末のプロジェクトで、コードの管理にSVNを使う人が減ったためだと思われます。


注釈:縦軸は週末/平日の利用の相対比率

週末のアクティビティが最も増加したタグを探すと、ゲームエンジンのUnity3Dと、モバイルアプリ構築のためのいくつかのタグが挙げられます。つまり開発者は、過去数年よりも今の方が、より多くのゲームやアプリを週末に設計しているということでしょう。すばらしい週末の過ごし方です。

私たちはこの調査に、誰でもアクセス可能なデータを用いました。そして、私たちが用意したデータを調べることで、コミュニティ内の他の開発者が何を見つけるかを楽しみにしています。私たちData Teamは、今回のようなデータセットを使って、理解や雇用、他の開発者との共同作業に関する多様な質問に答えます。私たちが、データと分析を使ってどのように問題を解決するかを知りたければ、Stack OverflowでDeveloper Insightsをご覧ください。

著者:Julia Silge、データサイエンティスト