同じ行数の拡張子が違うファイルをGitHubにコミットすると同じ言語比率になる?

最近GitHubをいろいろいじくるのにハマっております。

今回は同じ行数の拡張子が違うファイルをGitHubにコミットすると同じ言語比率になるのかどうかについて実験してみました。



同じ行数の拡張子が違うファイルをGitHubにコミットすると同じ言語比率になる?

結論として、行数のみが同じファイルをコミットしたとしても同じ言語比率にはなりません。

次のPython、HTML、CSS、JavaScriptのファイルが一つずつ格納されたレポジトリを用意します。
github-test4

各ファイルには「ここはコメントです。」という文字列をそれぞれの言語に対応したコメントアウトの方法でコメントアウトし、それが100行続いております。(コメントアウトする際は100行一気にくくるのではなく、1行ずつくくっています。)

例としてPythonファイルの場合は次の通りです。

結果、レポジトリの言語比率は次のようになりました。

同じ行数のみという条件では、言語比率は均等にならないようです。
HTMLが一番言語比率が高く、Pythonが一番言語比率が低いという結果になっていますね。

なぜ同じ行数では言語比率は一定にならない?

詳しい情報は公式サイトや他サイトに任せるとして、言語比率を算出するにあたっては一度対象のファイルをバイト数にしてから合計を算出しているようです。

つまり、行数が多ければ多いほど言語比率に寄与するわけではなく、文字数が多ければ多いほど言語比率に寄与することになります。

上記の結果ではHTMLが言語比率が一番大きいという結果になりました。
これはHTMLのソースコードをコメントアウトする際に、”<!-- -->"という半角7文字を使用していて一番コメントアウトをするために必要な半角文字が多いからです。

逆に"#"という記号のみでソースコードをコメントアウトできるPythonは言語比率が一番低いという結果に終わっています。

そこで上記の結果を踏まえ、エラーを無視してコメントアウトでくくらず「ここはコメントです。」という文字列が100行続いたファイルを用意して似たようなリポジトリを作成して実験をしてみました。
github-test5

するとそれぞれの言語比率が25%という均等な値で言語比率が算出されるようになりました。

終わりに

今回は同じ行数の拡張子が違うファイルをGitHubにコミットすると同じ言語比率になるかどうかを実証してみました。

自己満足の強い実験ではありますが、楽しんでいただけたでしょうか。

一見何も役に立たない実験のように思えますが、GitHubの構造を理解しておくと思わぬところで活かせることがあるかと思います。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いいたします。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






GitHub

Posted by ちこ