弊社では、毎週金曜日にバータイムを開催しています。
バータイムとは、
「金曜の夜だしお酒でも飲みながら何か話そう」
という感じの、軽いLT会・雑談会といったイベントです。
10/25のバータイムでは、「このソフトウェアのソースはだいたい何行でしょう」クイズ会 が開催されました。
その様子を紹介します。
どんなクイズ?
世の中にある各種ソフトウェアをお題として、そのソースコードが
だいたい何行くらいの規模なのかを当てるクイズです。
「こんなに行数多いの!?」などの盛り上がりのネタに一役買えたと思います。
併せて、ソースコードにどんなプログラミング言語が含まれるかも見ていきました。
前提
( 1 ) 各ソフトウェアは以下のコマンドでクローンしてきています。
$ git clone --single-branch --depth=1 <repo>
( 2 ) 各ソフトウェアのソースコード行数は以下のコマンドで計測しています。
$ cloc <cloned-dir>
例題
おなじみ react です。意外と考えたことのない「reactの中のjsは何行くらい?」という出題です。
答えは↓
45万行でした。数十万というオーダーは(分かっていても)初見で怯みます。
ちなみに、reactの中の js以外のソースはどんな言語のものがあるかというと…
javascript以外にも Typescript、Rust などがあることが分かります。
Markdownのファイル・行数共に多いのは、ドキュメンテーションがしっかりしていることを示すものでしょうか。
と、こういう感じに問題・回答を出して進んでいきました。
他の問題はこんなかんじでした
NumPy
ML関連でお世話になっているNumPyのコード、Pythonの行数は…
およそ18万行でした。
他の言語も見てみると、Fortranが入っていることが特徴的です。
またMarkdownよりreStructuredText ( wikiリンク )が多いのも特徴的です。
docker(moby)
mobyのGoソースは↓
147万行でした。凄!
他の言語も含めるとこんな感じ。yamlが多いのは 何らかの自動生成で出力するための設定ファイルでしょうか。
OpenCV
Vision系でものすごく使われるOpenCV、そのC++コードは ↓
73万行。これも数十万のオーダーでした。
他の言語は…
ものすごい数の言語が含まれています。( vbsも入ってるの!? )
ちなみに、世の中にあるソフトウェアのみならず、社内で作っている各種サービス・プロダクトのソースコード行数クイズも出題しました。
( さすがにブログでは公開できません、ご了承ください )
これも盛り上がっていただいて、楽しいクイズ会でした。
と、こういう感じのクイズ会でした。
来栖川電算ではソフトウェア開発で社会に貢献したい仲間を募集しています。
興味を持って頂けた方は 採用ページ をご覧ください。