時代とともに多くのプログラミング言語が生まれ、あるものは人気を博し、あるものは技術の進歩とともに時代遅れになっていきました。しかし、このようなプログラミング言語の人気の盛衰をどのように理解したらよいのでしょうか。どの言語が現代で最も使われているのかを知ることで、どれが時間を費やすに値するかを判断することができるのでしょうか。
Stack Exchange Data Explorerを使うと、Stack Overflowのデータベースからデータを取得し、データセットとして保存することができます。このデータセットは、こちらから簡単に入手することができます。各質問には、そのトピックやプログラミング言語を説明するタグが含まれています。例えば、「Java」「C」「python」などの言語や、「ggplot」「matplotlib」「pandas」などのライブラリのタグが存在します。各技術に関連するタグの数を利用することで、その技術の人気度を知ることができます。それでは、このデータをもとに、プログラミング言語の盛衰を探ってみましょう。
GridDBを用いたデータセットのエクスポートとインポート
IoTやビッグデータに最適化された拡張性の高いインメモリ型NoSQL時系列データベースを提供しているGridDBを使用してデータセットを保存します。インメモリデータアーキテクチャと並列処理により、より高いパフォーマンスと効率性を実現します。異なるOSでのGridDBをダウンロードするためのガイドは、公式ウェブサイトから見つけることができます。
GridDB-Pythonクライアントは、データセットに接続し、リアルタイムでデータをインポートまたはエクスポートすることができます。GridDBにデータを挿入する前に、いくつかのPythonライブラリを使用して前処理を行い、効率的に動作するようにします。
前処理
まず、pandasライブラリのコマンドを使用して、データセットを読み込みます。Pandasは、特にデータセットや解析を行う際に多く利用されているPythonライブラリです。
データセットがデータフレームの形で変数 “language_tag_unprocessed “に保存されるようになりました。
現在、データフレームには4つのカラムがあります。
1.year – このタグが使用された年
2.tag – 問題で使用されたタグの名前
3.number – そのタグがその年に使用された回数
4.year_total – その年におけるタグの総数
データセットを深く掘り下げると、「tag」カラムにNULL値があり、分析の邪魔になることがあります。これを処理するために、NULL値を「No tag」という文字列に置き換えます。
また、各行を個別に追跡するのに役立つ主キー・カラムを導入する必要があります。
これで前処理が完了したので、データフレームをcsvで保存し、GridDBにエクスポートすることにします。
データセットをGridDBにエクスポートする。
再びpandasを使ってcsvを読み込み、dataframeに保存することになります。
ここで、行情報を挿入する前にデータベースのデザインを生成できるように、GridDBにカラム情報を渡すためのコンテナを作成します。
これでデータベースの設計ができたので、GridDBにデータを簡単に挿入することができます。
GridDBからデータセットをインポートする。
GridDBからデータセットをインポートするのは、他のデータベースからインポートするのと同じように簡単です。TQLを使って、SQLコマンドと同じようにGridDBからデータを問い合わせることができます。データを取得する前に、データの行を抽出するコンテナを作成し、データフレームに保存することになります。
次のステップは、列情報の順に行を抽出し、分析に使用するためのデータフレームに変換することです。
これでデータはpandasのdataframe “by_tag_year” に保存され、引き続きデータ分析や可視化に利用することができるようになりました。
データ解析と可視化
これは、ある年の特定のタグの数をその年の総タグ数で割ったもので、その年の「タグ」の人気を比較することができます。
まず、現在最も多くの人に使われている言語であるPythonから始めて、時間の経過とともにどのように認知度が高まっていったかを比較してみましょう。タグが「python」である行を抽出し、「fraction」に対して2008年~2018年の期間でプロットしてみます。
図1: 10年間の「python」タグの推移
上記のグラフを見ると、2012年以降、pythonは大きな人気を獲得していると結論付けることができます。次に、現在コンピュータサイエンティストによって主に使用されている重要なpythonライブラリを分析し、10年間の期間で互いに比較します。
図2:10年間のPythonライブラリの推移
2012年以降のPythonの普及に伴い、Pythonのライブラリも一定の人気を得ており、特にpandasが人気となっています。Pandasは、データサイエンティスト、統計学者、研究者、応用科学者が収集したデータの分析に広く利用されています。
最後に、10年間の上位6つのタグと、それらが時間とともにどのように進化してきたかを探ります。上位のタグを抽出するためには、いくつかの計算を行い、タグを降順に並べ替える必要があります。
図3 上位6つのタグの経時変化
最後に思うこと
このブログでは、プログラミング言語の盛衰に関するいくつかの傾向を探りました。また、2008年から2018年までの間に使用された最も人気のある言語や技術のいくつかを発見しました。私たちは、GridDBを使用してシームレスな統合とデータインポートを行うことができ、非常に効率的かつ柔軟な方法で大量のデータを保存することができました。
PS. チュートリアルのすべての関連ファイルは、次の場所で入手できます。 https://raw.githubusercontent.com/ismailvohra/riseFallProgrammingLanguageGridDb
ブログの内容について疑問や質問がある場合は Q&A サイトである Stack Overflow に質問を投稿しましょう。 GridDB 開発者やエンジニアから速やかな回答が得られるようにするためにも "griddb" タグをつけることをお忘れなく。 https://stackoverflow.com/questions/ask?tags=griddb