プログラミングに関する調べ物をしていると、検索結果によく登場するQ&Aサイト「StackOverflow」。お世話になっている方も多いですよね。英語の壁はありますが、閲覧ばかりでなく参加もチャレンジしてみてください。
StackOverflowではプログラミングに関するあらゆる話題を扱うため、質問へのタグ付けによって分類整理が行われます。例えば、プログラミング言語Cに関する質問にはタグc
が付いており、StackOverflowサイト内の検索ボックスで「[c] キーワード
」のような絞り込み検索が便利です。
language-lawyerタグ
たくさんあるタグの一つに、language-lawyer
(直訳すると「言語法律家」)という一風変わったタグがあります。同タグの説明によると:
For questions about the intricacies of formal or authoritative specifications of programming languages and environments.
(簡訳)プログラミング言語や環境の公式ないし権威ある仕様についての込み入った疑問に関する質問用
なんだか難しそうですね。
このタグは、普通のプログラマが気にする「○○ライブラリの××機能を使いたい!」「この問題はどうやったら直せるの?」といった質問ではなく、「この実行結果は仕様通りといえるか?」「仕様書の解釈はこれで妥当か?」のような質問に使われます。
C言語仕様に関する質問
2017/12/7現在、タグlanguage-lawyer
が付いた質問 3236件 に対して、さらにタグc
をAND条件指定すると 617件 が抽出されます。C言語仕様に関する質問が、同タグの 2割(19.1%) を占める計算です。罪深い。
| ̄ ̄ ̄ ̄|\
| 19.1% | |
| | |
| | |
| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
個人的に、面白いと感じた質問をいくつかピックアップしてみました。興味が無ければ「あー世の中にはこんな事をこんなに議論する人がいるんだなぁ」程度の暖かい目で見てください。
- Is &errno legal C?
- Understanding the C11 type hierarchy
- Does a[a[0]] = 1 produce undefined behavior?
- Why does
int ;
compile fine in C, but not in C++? - Does printf(“%x”,1) invoke undefined behavior?
おまけ: 自分でしてみた質問「What does 'transmitted' mean in printf function return?」もあります。このときは単に英文解釈の誤解という回答でした。C++言語ですが、質問「why S x({})
invoke default constructor in GCC 7/C++1z mode only?」は少し盛り上がったように思えます。"Stack Overflow, where compiler bugs are found from unusual questions."コメントでクスっときました。
ちなみに
プログラミング言語C++に関する質問にはタグc++
が付与されています。2つのタグlanguage-lawyer
×c++
でAND条件検索すると... 2505件 抽出されました。これはタグlanguage-lawyer
のうち、C++言語仕様に関する質問が 約8割(77.4%) も占める計算です。
実際にはc
, c++
タグが同時に付けられるケースもあり、language-lawyer
タグに占めるプログラミング言語別の割合はこんな感じです:
プログラミング言語 | 件数 | 割合 |
---|---|---|
Cのみ | 499 件 | 15.4% |
C/C++ | 118 件 | 3.6% |
C++のみ | 2387 件 | 73.8% |
その他 | 232 件 | 7.2% |
やはり人類にC++言語は早すぎたのだ。