焼き鳥屋で刑法学者と意気投合してコインハイブ事件について書き出すだけの難儀なお仕事
JavaScript で仮想通貨を採掘するコインハイブというライブラリがありました。
コインハイブ事件というのは、この仮想通貨をマイニングするプログラムコードを自身の管理するウェブサイトに設置したところ、不正指令電磁的記録保管罪(刑法168条の3)に問われたというものです。
このコインハイブ事件に関して、「アプリ開発の実務を踏まえた不正指令電磁的記録に関する罪の一考察 -コインハイブ事件を契機としてー」というタイトルで千葉大学の紀要に書き、千葉大学のページ上で PDFでも公開されました。
https://opac.ll.chiba-u.jp/da/curator/900119535/S09127208-36-1-P056.PDF
https://opac.ll.chiba-u.jp/da/curator/900119535/
内容に入る前に、まずは、この事件に関わっている、被告人、弁護士、検察官、裁判官、調査官、書記官等の皆様に敬意を表します。すべての人々がその信じる正義に対して真摯に判断をしているのだと思います。特に、被告人の方は、望んでいない状況に突然放り込まれてそれに向き合おうとしており、公共のためを思っての行動であることを強く感じます。
私自身は刑事事件の被疑者となったことはないのですが、一度だけ会った人物が冤罪で重大事件に巻き込まれたために、刑事弁護に強い遠隔操作などのサイバー犯罪ともご縁のある弁護士を紹介するなど奔走していたことがあり、傍で見たことはあります。特にコインハイブ事件は、判例のないところを走る複雑な事件であり、意に沿わない先例を作らないようにするためには並々ならぬ労力を割かれていることと推察いたします。一般に、刑事事件は、地裁で無罪でも高裁は8割有罪と、1.3審制といわれることさえある民事事件よりもどの審級でも手が抜けず負荷は常に高いです。
そして、人的資源という意味であまり公平ではありません。検察や裁判所は官僚組織ですし、法務省の立法担当者とも話ができますからね。
ところで、このなんだか固い内容に似つかわしくないタイトルですが、これは「Twitter で医師を拾ってきて Google のソフトウェアエンジニアにするだけの簡単なお仕事(https://nuc.hatenadiary.org/entry/2021/03/31)」と対になっています。私は同時期に、この「不正指令電磁的記録に関する罪の一考察」と「簡単なお仕事」の二つを並行して書いておりまして、量もだいたい同じくらいで、問題意識もかなり共通して書かれている、私にとっては双子のような文書です。そして、その問題意識のうちの一つは「常識」です。なぜか、これを「教養」や「優秀さ」と読み違えた人が多かったようですが、専門家集団にはその集団特有の共通知識がある、という極めて当たり前のことを書いていて、そして、多くの職業人にとっては当たり前の内容であったかと思います。「簡単なお仕事」において書かれていることは、「常識」を身につけることが求められているのであって、他人にはできない「抜きん出ていること」をしようとすることではないということです。少々戯画的にいえば、あの入社試験は優等生だと通りにくいものです。
もちろん、「簡単なお仕事」に限られる問題意識もあります。どのような人物が採用されるかについて誤解が流布しているので、高嶺の花感が出てしまって、本来受けて欲しい人が受けてくれず、採用がうまくいかない、それを言いふらされるので、さらに、という悪循環の形で、古巣の人事が迷惑を被っております。ときどき一緒にコーヒーを飲むのでそういう事情を知っているにも関わらず、私は迷惑をかけるほうの片棒を間接的に担いでしまったからには、腹を切るということです。このように一般に Hiring について言及されることは企業にとって迷惑なことになりえますので繊細な配慮をしています。元同僚たちがこの点に思い至るか至らないかきれいに分かれたように見えたのは非常に興味深い現象です。あまりあからさまに書く気はなかったのですが、部署内の人間関係さえ希薄になった匂いがします。もちろん、自覚した上で踏みにじることも時には必要でしょうがね。
いやね、「G社なんて超スゴイ人しか入れないんでしょ」ってみんなが言うせいで、本当に入ってほしい層の人にまで敬遠されちゃって困ってるんですよ。体験談見てもっと気軽にトライしてみてほしい。
— まきの たかき🗽 (@ta_makino) March 27, 2019
この点、最近入社したエンジニアに優秀さにこだわる優等生が増えてきたというのは感じるところです。先だっても、そのようなエンジニアがメンターをしているインターン生に対してほぼ初めて書いた言語でのコードレビューに際し「これを知らないとはお前は優秀ではない」「お前よりも優秀なやつはたくさんいる」などといい、一週間くらいそのインターン生は悩んでいたらしいのですが、ふと別の社員にその話を漏らしたところ、大問題になって適切に処理されたとのことです。問題となった箇所は、その言語特有の仕様で、たしかにそれをよく使っている人ならば常識的に知っているかもしれないが、使ったことがなければ知らないようなことです。「ああ、この言語を使う人達の間では一般的な知識です。今後もこの言語を使うならば覚えておくといいでしょう。ここをみるといいと思います。」その程度でいいのに、なぜか優秀かどうかの話、つまり人としての性質の話が始まりました。こういう一次元的な優秀さの尺度で人を判断することを非常に好むようになったというのが最近感じる変化です。「人間が才知を尽くして労苦するのは、仲間に対して競争心を燃やしているからだということも分かった。これまた空しく、風を追うようなことだ。(伝4:4)」また、こういうパワハラ被害者は面接官を怖がるようになるので、教えることもとてもやりにくくなりますので本当にやめて欲しいのです。
【経験則】「自分の知っていることを他人が知らないことに対して厳しいひとは勉強が足りない。」
— 縮限 (@contractio) April 18, 2012
もっとも、このように、一切書かれていない、優秀さや教養について書かれていると誤って読み取るのは、分からないわけではありません。というのも、選民思想と能力主義への批判が根底にあるからです。この文書は、多くの人には楽しく読めるでしょうが、人によっては何かに障るのでしょう。特に、「模擬面接をするようになってからは技術面接はほぼ通過する」という内容がどうしても受け入れられないので、防衛機制がいろいろな留保をつけようと頑張るわけです。これを書いた時点では私達が教えた人は知る限り面接は全員通ってましたからね。もっとも、私も正確に難易度を把握できていないようで、私の感覚も明らかに実際よりも難しい方にぶれています。おおまかな自分の見積りから計算される通過人数の期待値は有意に現実よりもだいぶ悲観的です。ですから少しこの通過率は下げる方向に動かさないといけないとは思っております。ある Google に通った教え子に、「簡単なお仕事」の感想を聞いたところ、楽しい文書だなあと思って読んだが、あとから激昂している人を見かけて、意味不明で怖いと思ったといわれました。しかし、そうなるのは内容上不可避なのです。これは内容が必然的に誤読を生むからです。
さて、その他の共通している問題意識が何なのかはおいおい説明していくとして、エンジニアの面接対策の活動をここ数年一緒にやっている小西さんから、最初期の競技プログラミングである第1回の UTPC 2008 の時に出した問題を皆さんに紹介して欲しいとの言付けを預かっておりますので、忘れないうちにここで紹介しておきます。
Problem K: 電波基地 https://www.utpc.jp/2008/problems/radio.html
Problem L: チクチクバンバン https://www.utpc.jp/2008/problems/toy.html
当時の遊びを思い出そうということでしょう。
話を少しもとに戻しますと、このブログを書くことにした背景には立法担当者に届けたいという気持ちがあります。最高裁は、判決を出す前に関連する解釈論を集めるようですので、最低限の形式を整え、できるだけ常識的なことを、法学系の大学の紀要に書いておけば、おそらくこの事件の係属している最高裁の第一小法廷の方々の目に紀要自体は留まるかもしれず、調査官解説で切り捨てられるかもしれませんが、それに加えて、法務省の立法担当者に読んで欲しいのです。
さて、コインハイブ事件に戻りましょう。
3,4年前にコインハイブ事件について初めて聞いたときに、技術者の感覚と法曹の感覚がだいぶ乖離するだろうなあ、と思いました。
ただ、どうも法曹側の感覚からすると、思われているよりも被告人不利な事件で、周囲の法曹に聞いてみても全力で戦って6,7割有罪という感覚です。これは、ベイズ確率とかいう話ではないもっとプリミティブな話で、1割弱勝てそうな論点が少しあって適切にクリティカルヒットで衝ければ勝てる場合があるかなくらいのところかと思います。
そもそもの前提として、法律の判断というのは基本的に決定木の形をしており、末端で利益衡量によるバランスがついている場合があるという構造をしております。人間、こういう構造でないと、たぶん、決定するアルゴリズムを共有できないのです。そして、刑事事件では、被告人側は、一箇所でも合理的な疑いを持たせることができれば勝ちという構造です。ただ、そうであったとしても、どの要件もそれなりに大変に見えるということです。
それに対して、技術者側の感覚としては、こんなもの回避できないだろうというのが正直なところかと思います。いつものように、普段使っているライブラリーと特に変わりなく使おうとするもので、反対動機を形成しなかったことに対しての道義的な非難が想定できない方も多いのではないか、と思います。少なくとも、無警告で逮捕(最高裁まで係争しているこの事件では逮捕されていませんが類似の事例ではあったようです)や起訴するような事例ではないのではないでしょうか。
怒っている技術者の方も見ました。怒りは二次的な感情であるとよく言われます。人は、なんらかの強い感情を揺さぶられたあとに現実と理想なり願望なりとの食い違いを認識すると怒り出します。
それで、この技術者の感覚を私にとって一番自然な発想で法学のディシプリンの中に入れ込んでみたというのが、この「アプリ開発の実務を踏まえた不正指令電磁的記録に関する罪の一考察」です。内容は、不正指令電磁的記録性のさらに反意図性に絞って議論し、できるだけ丹念に立法担当者の見解を読み解くと、反意図性が認められないので、無罪になるのではないか、とするものです。おおよその考え方自体は、事案を聞いたときに私ならばこう解釈すると直感的に考えた方法そのままです。
ただ、検察側の理屈があまりにもシンプルで強い。俺は難しいことは分からないが人としてやっていいことと悪いことくらい分かるといってみながハッとするみたいな紋切り型ってありますがそんな感じでしょうね。ただ、最高裁の説得が難しいにしろ、畢竟独自の解釈と切り捨てられるにしろ、20年後のために書いておかないといけない、私の確信している理屈があると思っています。
これを書くことになった背景事情ですが、久々に刑法学者の友人と会ったので、焼き鳥を食べながら、もともとはもっと広範囲の話をしていて、まあ、私のほうが法学については圧倒的に保守的な考え方をするといういつもどおりの展開だったんですが、タピオカミルクティーを飲んで、餃子屋に行くなどをしている間に、不正指令電磁的記録性の反意図性の話になり、ほぼ見解が一致したので、この内容で一本書いてみようということになりましたというところです。
うっかり書くことが決まってしまったので、別の法学者の友人に深夜に相談しました。30分位で何を考えていて何を書くつもりなのかをざっと話をして、一体どれくらいの分量になりそうかを聞くと「ひー、ふー、みー、よー、2万字かな。最低でも。」との返事をもらいました。それで、どれくらいの時間がかかるのかを聞くと、人によるが自分だったら準備ができていれば4時間位だということでした。共著者の指導教官とかだと1時間半で書くらしいですね。仮名混じり文が秒間4文字とかですか。どうしてそれができるかさっぱり分かりません。どう考えても無理ですね。というよりも無理でした。
それで、大まかな筋が半分くらいできた時点からは、定期的に、お昼過ぎに集合して共著者のお家にいって、床に座り込んで、二人で書きながら適時議論するというのを4,5回くらいやりました。とにかく負荷が高くて、2時間位すると共著者の意識が朦朧としてきて、仮眠を取り始める、そして、もう1時間位すると今度は私の意識が朦朧としてくるので、私が仮眠を取り始める、といったところです。
統一されている話ではあるが法学の論理構造になっていなかったから組み替えないといけないというのもあるのですが、とにかくコンテキストスイッチが重い。複数の分野にまたがった話をすると、境界領域であるために、普段だったら当たり前のように成立している前提が成立していない場合があるので、分野の議論の再構成を繰り返すことになります。
また、共著者はこのように説明してくれました。刑法の論文を書くというのは将棋みたいなものなのだと、ただ駒の動かし方はどこにも載っていない。だから、教えるためには、とりあえず、思うように盤面を並べて、それで、盤面を作って動かしてみせると、そんな動きしないと初めて指摘ができると。それを繰り返していくと、だんだん合法的な動かし方が分かっていくのだと。
たとえば、「この到達が認められる範囲については、ある程度、総合考慮の結果として行われざるをえないであろう。」という文を書いて、見せたところ、相手は倒れ込んでしばらく考えた後に、「反意図性は規範的に判断されると解されている以上、その下位基準もまた規範的に判断されることになる。よって、ここで述べている到達が認められる範囲については、ある程度、総合考慮の結果として行われざるを得ないことになる。」と書き換えられました。ああ、これは教育を受けないとできない。読んだときのいやらしさがまったく違う。これについて話したら、なんだか、後期ウィトゲンシュタイン味のあるいい話ですね、と法と文学の研究者にいわれましたが、私もいいセンスだなと思います。
こうやって様々な話が刑法の構文に綺麗に収まっていくというのは、なかなかに面白い経験でした。もともとの話が統一されているというのは本当に大事なことですね。
ペーパーの内容を法律の議論とは逆方向から話すと、まず、この事案は、ブラウザー上であったことがとても特殊です。たとえば、カフェで作業をしていて、席を立った途端に、外部記憶装置からバックグラウンドで動く仮想通貨のマイナーをインストールされ、それ以降気が付かないうちにマイニングをしている状況であったり、ダウンロードしたゲームの中にマイナーが仕掛けられていた状況であったりとは、倫理的に区別がある話であるように思われます。ただ、法的にこれを区別するのが難しいのです。この差異を日常用語で説明すると、インターネットやウェブの歴史的な経緯と合意から、ブラウザーの JavaScript は閲覧者がウェブサイト設置者にある限度で使用を許している、というのが素直な答えではないでしょうか。インターネットやウェブの世界は標準化がなされていて、何をどのようにやっていいか、世界規模で合意が取られています。そういった技術者の感覚や歴史的経緯がにじみ出ているのが技術者の書いた説明であるから、そこから規範を読み取れば、どの程度のことまでが想定されていたのかが分かるはずです。
ただ、それだけでは、法学の議論に乗りません。法学は視野を制限するようにできています。子供の喧嘩でも見ていれば分かると思いますが、基本的に関係のないことを延々と言い続けるものですが、実は、これ民事裁判でも一緒です。だいたいの場合、自分がいかに優れているかということから始まり、まったく本題と関係のないことを延々と言い続けますが、意味はありませんし、そういったことを拾わないように法学というのはよくできていると思います。だいたい、とてもよく分かっている当事者でも、裁判をしている当事者が10言ったことを、弁護士が3くらい拾い上げて、そのうち裁判官が判決に使うのが1くらいという感覚かと思います。
そのように、法学の議論に乗せるためには何らかの決定木のどこかに潜り込ませないと、それはないことと同じなのです。
それではどこをとっかかりにしましょうか。今回選んだのは、不正指令電磁的記録に関する罪についての立法担当者の解説の反意図性のところに「使用説明書等に記載される」ことが反意図性を否定する総合考慮の材料として詳しい例示とともに挙げられているので、その箇所を文言解釈として精査すると、技術文書が入ってもいいのではないのでしょうか、というところです。
そろそろ「アプリ開発の実務を踏まえた不正指令電磁的記録に関する罪の一考察 -コインハイブ事件を契機としてー」を読んでください、という気持ちになってきましたが、簡単にまとめます。
https://opac.ll.chiba-u.jp/da/curator/900119535/S09127208-36-1-P056.PDF
まず、東京高裁の議論では、反意図性について、「プログラムの反意図性は,当該プログラムの機能について一般的に認識すべきと考えられるところを基準とした上で,一般的なプログラム使用者の意思に反しないものと評価できるかという観点から規範的に判断されるべきである。原判決は,本件プログラムコードが,その機能を認識した上で実行できないことから,反意図性を肯定しているが,一般的な電子計算機の使用者は,電子計算機の使用にあたり,実行されるプログラムの全ての機能を認識しているわけではないものの,特に問題のない機能のプログラムが,電子計算機の使用に付随して実行されることは許容しているといえるから,一般的なプログラム使用者が事前に機能を認識した上で実行することが予定されていないプログラムについては,そのような点だけから反意図性を肯定すべきではなく,そのプログラムの機能の内容そのものを踏まえ,一般的なプログラム使用者が,機能を認識しないまま当該プログラムを使用することを許容していないと規範的に評価できる場合に反意図性を肯定すべきである。」という抽象論を展開しました。
それに対してのあてはめとして「一般的に,ウェブサイト閲覧者は,ウェブサイトを閲覧する際に,閲覧のために必要なプログラムを実行することは承認していると考えられるが,本件プログラムコードで実施されるマイニングは,ウェブサイトの閲覧のために必要なものではなく,このような観点から反意図性を否定することができる事案ではない。その上,本件プログラムコードの実行によって行われるマイニングは,閲覧者の電子計算機に一定の負荷を与えるものであるのに,このような機能の提供に関し報酬が発生した場合にも閲覧者には利益がもたらされないし,マイニングが実行されていることは閲覧中の画面等には表示されず,閲覧者に,マイニングによって電子計算機の機能が提供されていることを知る機会やマイニングの実行を拒絶する機会も保障されていない。このような本件プログラムコードは,プログラム使用者に利益をもたらさないものである上,プログラム使用者に無断で電子計算機の機能を提供させて利益を得ようとするものであり,このようなプログラムの使用を一般的なプログラム使用者として想定される者が許容しないことは明らかといえるから,反意図性を肯定した原判決の結論に誤りはない。」としました。
これは立法担当者の見解と基本的な方向性は同じです。立法担当者の見解は、「意図に沿うべき動作をさせず、又はその意図に反する動作をさせる(第168条の2第1項1号)」という文言について「当該プログラムの機能の内容や機能に関する説明内容、想定される利用方法等を総合的に考慮して、その機能につき一般に認識すべきと考えられるところを基準として規範的に判断することとなる。」と述べて、あてはめの具体例として、「例えば、市販されているソフトウェアの場合、電子計算機の使用者は、そのプログラムの指令によって電子計算機が行う基本的な動作については当然認識しているものと考えられる上、それ以外の詳細な機能についても、使用説明書等に記載されるなどして、通常、使用者が認識し得るようになっているのであるから、そのような場合、仮に使用者がこのような機能を現実には認識していなくても、そのプログラムによる電子計算機の動作は、「使用者の意図に反する動作」には当たらないこととなる。逆に、フリーソフトの中には、使用説明書が付されていないものもあり得るが、その場合であっても、当該ソフトウェアの機能は、その名称や公開されているサイト上での説明等により、通常、使用者が認識し得るようになっていることから、使用説明書が付されていないというだけで、「使用者の意図に反する動作」に当たることとなるわけではない。」としています。
まず、違和感を感じるであろうところは、ブラウザ内で動く JavaScript について、本件プログラムコードという言葉で被告人が書いたコード単体を持って判断しようとしている点です。実際には高々数行のコードで、別の人の管理するサーバーからライブラリーを呼び出しているだけのはずです。そこをどのように評価するべきなのか。技術者の感覚として、あくまでも呼び出しだけなのだから、作成といえないのではないのではないかというものがあるかもしれません。ただ、法学の感覚としては、結果惹起に繋がる以上、行為の軽重によっては侵害主体性がないという議論は成立しがたいものを感じます。そうなると、複数のプログラムが協調動作をしているのだから「反意図性を判断するために必要なプログラムの範囲」について議論をする必要があり、それは、動いているものすべて、になるでしょう。そして、協調動作をしているのだからそれがどのように協調動作をするかについて「使用説明書等に記載される」内容があるはずです。それらを読み解いていけば、ある種の規範的な判断が必要にせよ、「RFC標準」や「W3C勧告」といった自然と技術文書に到達できるはずです。「使用説明書等に記載される」は「プログラムの動作について正しく記載した説明の存在」かつ「当該説明に対する一般の使用者からの到達可能性」の2つが必要だと解しました。この辺は哲学などでもする法学の概念工学的な側面ですね。
そうすると「RFC標準」や「W3C勧告」といった技術文書が、正しく動作を記載しており、そして、現在では高校の教科書にもあるようなものなのだから、一般の使用者からも到達可能だろうという議論をします。
そして、「W3C勧告」を読んでいくと、「一般に CPU の使用には制限がかかっていない」というのが現状の合意であるというのが読み取れるでしょう。Permissions API というユーザーからの許可を取る方法があるので、どのような動作について許可を取る必要があるかは書かれていて、現状ではマイニングはその制限がありません。また、Chrome 独自の機能として、2020年に導入された Heavy Ad Interventions という機能があり、広告表示にも使われることの多い iframe 内での CPU の使用には制限がなされています。開発者によると、これは、広告ネットワークによる仮想通貨のマイニングを制限することが狙いの一つということです。逆にいえば、この時点まで、仮想通貨のマイニングについての制限はなかったということでしょう。
このように、技術者の間の合意と、そして使用者に対してのインターネットとウェブがどのようなものであるかの説明が、技術文書から読み取れるはずだ、それを考慮して判断をするべきだというのが、紀要に書いた内容です。
一般に、法学のペーパーの形で、法解釈について主張をしたら、その主張を生涯続けるというのが、求められるものだと聞きます。標準となっているなんらかの技術文書から一般に禁止されるべきであると読み取れる箇所が出てきたら、それは文献調査不足であったとして意見を変えるものでしょうが、規範として「技術文書を考慮して法解釈をするべきである」という主張は単独説だとしてもしつづけるつもりです。
情報系の人にはそれなりに楽に読めるようですが、法律系の視点からは読むのが少し大変のようです。法律系の人々に聞くと、まず「一般の使用者からの到達可能性」について、擬制や評価が伴うのではないか、という疑問がでるようです。それはその通りで、もともと「一般の使用者」には評価が伴っていることは間違いがなく、その評価の線引をどうするべきかということになるでしょう。現に、法人や個人の枠を超えて人々が密なコミュニケーションをとって、よく使用できるルールにしようにしようとした結果がそこに蓄積しているのだから、刑事罰を与える水準で判断する際には、それらを丁寧に読んで理解している人物としてよいだろうという規範的な判断をしませんか、というところですね。友人の法哲学者が、この紀要をいろいろな刑法学者に送りつけて読んでもらうという遊びをしておりましたが、返ってくる結果が結構面白かったですね。みなさんもいろいろな法学部の人に送りつけてみましょう。
もう少し書いた意図を一般化すると、そもそも、裁判の証拠に採用されるのは基本的に裁判の要件や事実に関わるところであり、現状では、技術文書が参照されることはないでしょうから、技術文書を視界に入れる仕組みを用意したかったというところです。一方、たとえば、医療過誤の裁判では、医療の専門資料として診療ガイドライン等があり、それが参照されます。スポーツの試合中に怪我なりをして、裁判になったらスポーツのルールはある程度は参照されるでしょう。
ただ、情報技術では、そのようになっていないです。といっても、別に医療裁判の場合を考えてみても、医療については診療ガイドラインを参照するようにと書いてあるわけではなく、たとえば、過失の要件から読み込むわけです。判例を少し引用すれば「思うに、人の生命及び健康を管理すべき業務に従事する者は、その業務の性質に照らし、危険防止のため実験上必要とされる最善の注意義務を要求されるが、右注意義務の基準となるべきものは、診療当時のいわゆる臨床医学の実践における医療水準である」(最三小判昭和57年3月30日・裁集民135号563頁未熟児網膜症日赤高山病院事件)などと書かれております。
このように医療過誤などではガイドラインなどの専門文書が参照されますが、デジタル刑事罰ではそのような専門文書が参照される筋道が現在は見当たりません。そこで、技術文書が存在すること自体を刑法のディシプリンの枠内で主張しようというのがこのペーパーの大きな目的です。
仮に、このように技術文書の存在が、刑法学の議論の中で使えるようになると、それ自体が不正性や故意の否定においても使えるものだろうとは思います。
さて、紀要論文の周辺で本文に入らなかった話をいくつか補っておきます。一番はじめにこの事件を聞いたときに考えたことは、脚注含めてほとんど入っていて、連想していて入らなかったワードは部分社会と国際慣習法くらいです。理屈を詰めてみるとあまり関係がありませんでした。ただ、校正中に、法学者や技術者、特に Chrome 開発者たちと話して、知らなかった周辺の関係する要素があり、いくつかは本文にも反映したのですが、論理展開には不必要となったものをここにメモをしておくものです。本来ならばあるべき謝辞が間に合わなかったことをお許しください。
まず、Android や iPhone などの他のプラットフォームで、同じ議論が成立するのか、という質問があります。注意すべきは、サンドボックス内で技術的に動くものは無条件ですべて合法だという主張ではなく、技術関係の文書などにその計算をしていいかしてはいけないか自体が書いてあるからそれを参照しよう、ということです。ですから、Android や iPhone において、今回提案した規範を踏襲すると「Google Play Store や App Store に並んでいるソフトウェアについては、公開される前に Google や Apple によって開発者に悪名高い審査がなされており、その審査は、その下位基準に至るまですべてが公開されているかはともかく、ある程度公開された文書に書かれたなんらかの基準によっており、その文書はストアに並んでいるプログラムの動作を正しく説明しているものであるから、すくなくとも審査が正しく行われて審査に通過した場合は反意図性を否定できるであろう」ということになるでしょう。
次に、Chrome から見ると、2010年代には WHATWG が標準のメインストリームとなっていたので、2019年5月に WHATWG の検討素案が W3C 勧告となることが決まった、というのは感覚的には遅すぎる記述のようです。ただ、どこから切り替わったかを追うことは本題から外れますのでここにしました。ニュアンスは少し調整したほうがいいのでしょうか。こういうニュアンスや「てにをは」に専門性が出るんでしょうね。
ささいな忘れ物として、HTTP/2 も RFC7540 になってますね。HTTP/3も部分的にですが QUIC がそろそろです。(https://quicwg.org/base-drafts/draft-ietf-quic-http.html)
また、インターネット標準過程を定めたRFC2026をRFC6410がアップデートしているのは一言書くべきでした。
現在では、geolocation や push といった強力な機能はセキュアなページ内でのみ許すべきという方向に合意されてきています。
https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts/features_restricted_to_secure_contexts
W3C の草案段階ですがプライバシーの定義について議論がされています。
https://w3cping.github.io/privacy-threat-model/
開発者としては、ブラウザーは誰が書いたか分からないデータを表示して実行する仕組みなので、許可なしにできることはすべて安全であるべきで、ユーザーはインフラ上で実現可能ないかなり動作についても許諾している、だからユーザーから見える挙動が正常で、プライバシーやセキュリティーの問題がなければ、良いという考え方を取ることが多く、これは、CIA侵害を基準とする西貝説とも繋がります。
Heavy Ad Interventions は、広告ネットワークを狙ったものでしたが、一般に広告に対してのブラウザーレベルでの制限は多く、Feature Policy や iframe sandbox などがあります。
Heavy Ad Interventions は、service worker でのマイニングが行われる例があるため、worker intervention の必要性が議論されてますが、現状はまだないようです。
重い処理を止めるような機構が Chrome にはあり、たとえば一例としては、ネット回線が細いときの document.write() intervention です。
https://developers.google.com/web/updates/2016/08/removing-document-write
Chrome 独自の CPU リソースの使用の制限として、Tab Throttling というバックグラウンドで走るタブの中の Javascript の CPU 使用量を制限する機能があります。
https://blog.chromium.org/2020/11/tab-throttling-and-more-performance.html
RFC の MUST/SHOULD を無視した実装、たとえば、concurrent http 接続や輻輳制御の方法などを標準から変えるということの扱いはどうするべきなのか。この辺は、非常に難解な議論になると思われるのですが、その旨を別に書けばよいという話になるので、ドキュメントされていれば扱いは変わるでしょう。また、ここは客観的構成要件のうちの、反意図性に限定した話なので、不正性のあたりで切れるという議論にもなるでしょう。このあたりは、本当に不正性が例外的なものなのかということにもつながると思います。
それから、戯れに、レッシグのCODEの議論、すなわち、人は「法」「規範」「市場」「アーキテクチャ」の規制を受けるという話を混ぜ込んでみたら急に味付けが変わって刑法学でなくなったので抜きました。本当に論文のテイストが一発で変わるので、アメリカ西海岸はやっぱり日差しが強すぎるんだなと思いました。
あとは、本当は引用してみたかったのは、レヴィストロースの「野生の思考」。最後の章がサルトル批判なんですが、未開人の思考と"われわれ"の思考を比較した上で、情報理論の話をするんですね。少し引用すると「野生の思考の法則が再び支配する情報の世界の発見(la découverte d'un univers de l'information où régnent à nouveau les lois de la pensée sauvage)」「情報の世界が自然界の一部ないし一面であることの発見は、情報理論の成立のために確かに必要であった。(Pour qu'une théorie de l'information pût être élaborée, il était sans doute indispensable que l'on découvrît que l'univers de l'information était une partie, ou un aspect, du monde naturel.)」(大橋保夫訳)といったところです。
文脈としては、歴史学の哲学における特権的地位と弁証法から話を始め、進歩史観に対して疑義を挟みます。そして、文化人類学が歴史学を補完する地位にあるというのです。
そして、具体的な法則から積み上げていく自然科学と、抽象からはじめる野生の思考を対比した後に、近年発見された情報理論(1962年当時)も野生の思考と同じであると断じるのです。なので、この紀要論文においては、近代国家の法律家共同体が、野生の思考と同視される情報の世界の共同体の論理を発見するという話ですね。いやはや、ゲーデルの話が出てくる書いた本人も何を書いているのか分かっているのか分からないような文をコンテキスト無視して引用するとかアクセントとしていいじゃないですか。これがおしゃれフランス文化人の正しい使い方だと思いますね。
また、民法では、約款の有効性という話題があって、それとの類似の比較もありました。約款の問題だと、多分、例えば携帯電話サービスなどが想定されていて、大会社は寡占市場なので一方的に有利な状況にあり分厚い約款を突きつけて、読もうが読むまいが同意をせざるを得ない状況であり、実際に、誰も読んでいないし、後で、滅多に起きない状況になったとしても約款を盾に大企業が守られるのは適切か、という問題かと思います。一方で、企業が作って公開しているのだから、そんな変な内容ではないだろうという感じもあるわけです。
それに対して、こちらは刑法の問題なので、こういう国際的な仕様書を読みながらコードを書いている人たちがいて、そのコードの動作を使用者が知らないといったときに、どれくらいそのコードを書いた人を救うべきか、という話なので、ちょっと違うとは思います。
刑法38条3項の法の不知という話をはじめると、いろいろな法律家の皆様に怒られると思いますので、このあたりにいたします。いやね、優等生の背理法と個人的に呼んでいる理屈があるんですよ。「私は優れている。」「私はそれを知らない。」「よって、それは私のような優れた人物が知る必要のある内容ではない。」というものなんですけれども。
プログラミングコンテストと競技プログラミングの歴史
いやはや、競技プログラミングが、競技プログラミング同好会というサークルの名前に由来し、プログラミングコンテストからどう出てきたかが知られていないようなので、簡単にまとめてみようと思います。奇しくも、コインハイブ事件も、インターネットとウェブの歴史から規範を引き出そうという話でしたし、野生の思考は史学は特権的ではないって話でしたしね。
プログラミングコンテストの分類については、2012年に shinh さんが非常によくまとめています。
審査員が評価する系
面白いゲームを作るコンテスト (アスキーのやつとか)
綺麗なデモを作るコンテスト (demo scene, mega demo)
なんか役に立つソフト作ってこい (高校生とか向きでなんか国がやったりとか)
邪悪なコードを書いて来い (IOCCC)
善意を装って悪いことをするコードを書いてこい明確な評価軸がある系
速いコードを書け (cell/GPU challenge, topcoder marathon)
短いコードを書け (code golf, TLE)
なるべく速く正しいコードを書け (ICPC, topcoder algorithm, codejam)
強い AI を書け (imagine cup, robocode)
難しい問題に最適解になるべく近い解を出せ (topcoder marathon)
プログラムにまつわるパズルを解け (codepuzzle, python challenge)
数学的な問題を解きまくれ (project euler)
古くからあるプログラミングコンテストといえば、1980年から続く全国高校生プログラミングコンテストや1990年から続く全国高等専門学校プログラミングコンテストがあります。特に、後者のプログラミングコンテストには競技部門がありますが、これはロボコンのように長期間準備をしてAIを持ってきて戦わせる競技です。基本は「なんか役に立つソフト作ってこい」で、他に伝統的なところですと2002年から日本学生科学賞にソリューション部門(後に情報技術部門に改名)ができました。
日本における「なるべく速く正しいコードを書く」という意味での競技の嚆矢濫觴は、1994年から1997年まで続いた情報オリンピックと思われます。
http://www.f.waseda.jp/moriya/PUBLIC_HTML/joi/index.html
それ以前の学術系のオリンピックは、1990年からはじまった数学オリンピックと1992年からはじまった算数オリンピックがあります。
この時、日本は国際大会で4枚のメダルを獲得しています。余談ですが、うち3枚を獲得した2人は77年度生まれの筑駒生で、当時は、農芸部を中心として、文化系の部・同好会の連合を形成していて、学年の少なくない割合が、その中の複数のものを掛け持ちする人たちであったと聞いています。彼らが中学2年生の時に、フルアセンブルで PC98 と Towns の両方で使えるグラフィックライブラリ tcpl を作り、そこから10年間以上に渡り、パーソナルコンピュータ研究会というコンピュータの部活はその遺産で遊ぶことになります。このときの唯一の金メダリストは後に数学者になっており、現代数学ができて、システムが作れる人物は、この時代でもいたんですね。
もっと古くは、たとえばなんですが、河東教授 https://www.ms.u-tokyo.ac.jp/~yasuyuki/vitae2.htm 大島教授 https://www.ms.u-tokyo.ac.jp/~oshima/dviout/dvihist.html など、ソフトウェアを開発できる数学者というのは珍しくありませんでした。
この情報オリンピックメダリストの数学者が学生時代に初回の発表者になったのが2000年からはじまった「なんでもセミナー」です。当初は、代々木のK会でやっていたと記憶しています。
http://new.pya.jp/nandemo/
そして、2004年から「情報科学なんでもセミナー」がはじまります。
http://www.cs.toronto.edu/~kawamura/nandemo/old.html
なんでもセミナーは、レトロニムとして(情報科学のほうと区別するために)数学なんでもセミナーと呼ばれることがありました。数学なんでもセミナーは情報オリンピックのメダリスト、情報科学なんでもセミナーは数学オリンピックのメダリストが第一回発表者なのがちょっと面白いですね。この余談が挟まったのは、この時代のプログラムが書ける人たちは、他の分野にも興味を持って、広く交流を持っているのが普通であったという話をしたかったからです。
また、1995年から東工大主催で supercon (スパコン)が始まります。こちらは、「速いコードを書け」「難しい問題に最適解になるべく近い解を出せ」の系統です。
https://www.gsic.titech.ac.jp/supercon/main/attwiki/index.php
1998年に大学対抗のプログラミングコンテストである ACM-ICPC が日本国内で始まり、ここまで挙げてきたような高校生高専生向けのコンテストの出場者たちが ACM-ICPC に出るようになります。
名前がでているので、軽く見比べると、2002-2007のACM-ICPCの国際大会出場者のおおよそ半分が、情報オリンピックかスパコンに出場していたようです。また、数学オリンピックや算数オリンピックと共通して出ている人もいないわけではないようですね。もちろん、これはあくまでも、国際大会出場者の話であり、その他にはアジア大会の出場者や国内予選の出場者がおりました。また、そもそもの話として、こういった「大会に出る」ということは、あくまでもいろいろな遊びをするコミュニティーがあって、その遊びの一つとして行われていたということが大事かと思います。コミュニティーが先であって大会は後だったのです。
この頃、東京大学の出場者数が、2000年には6チーム、2001年には5チームであったのが、2002年10チーム、2003年9チームとなり、さらに2004年に20チーム、2005年に23チームと急に増えました。ACM-ICPC は、大学対抗で、大学ごとに地区予選や国際大会に出場できるチームが限られていますので、急激にチーム数が増えたことにより、国内予選は、東大だけ異常な難易度となり、陰では東大予選、とも呼ばれるようになりました。
この背景には東大の情報基盤センターと総合文化研究科の先生方の尽力もありました。東大では極めて多くの学生が「電源の付け方が分かりません」という質問をするため、それに答えるためだけに教職員が呼び出されてはたまらないということで、システム相談員という学生アルバイトを用意しており、質問のトリアージをする仕事をしておりました。そして、システム相談員を統括していた情報基盤センターの先生方は学生たちへの影響力がありました。特に、情報基盤センターの田中哲朗先生の研究室には出入りが自由で、田中先生は2003年から国内予選審判(出題委員)になりました。
https://lecture.ecc.u-tokyo.ac.jp/~ktanaka/programming04/kadai1116.html
https://lecture.ecc.u-tokyo.ac.jp/~ktanaka/is06/0117.html
また、遅くとも2002年から布教に努めていたようですが、増原英彦先生や金子知適先生が、2004年から駒場で ICPC に出ることを目的としたゼミを開くようになりました。
https://prg.is.titech.ac.jp/members/masuhara/classes/icpc2004/
金子先生の問題解決のためのプログラミング一巡り(2019年版)は、
https://github.com/tkaneko/icpcseminar/blob/master/all.pdf から読めます。
Aizu Online Judge (AOJ) http://judge.u-aizu.ac.jp
Peking University Judge Online for ACM/ICPC (POJ) http://poj.org
Codeforces http://www.codeforces.com/
szkopul https://szkopul.edu.pl (旧 http://main.edu.pl/en)
などを用いた練習を勧めております。(2019年度版)とありますが、2000年代の雰囲気をよく残していると思います。
少し話がずれますが、2003年からパソコン甲子園がはじまりました。これは、会津大学の主催する高校生と高等専門学校生向けのコンテストで、なるべく速く正しいコードを書けの系統の部門があります。また、綺麗なデモを作るコンテスト系のCG1枚絵を作る部門もあります。
このころプログラミングコンテストで活躍していた日本人として Shin Natori さんがいます。
2000年の IOCCC や 2005年のThe Underhanded C Contest で活躍をしたほか、2006年までの TopCoder SRM で活躍しました。
https://competitiveprogramming.info/topcoder/handle/natori
http://www.underhanded-c.org/_page_id_8.html
https://www.ioccc.org/winners.html#S
最近だと「医療や健康に関連する検索結果の改善について」名前が出てました。
https://webmaster-ja.googleblog.com/2017/12/for-more-reliable-health-search.html
また、2005年から2009年頃まで SRM で活躍した Hayato Ito さんがいます。
https://hayatoito.github.io/2017/faq/#google-hiring
https://hayatoito.github.io/2017/faq/#competitive-programming
時間は前後しますが、2012年から Endoh さんが IOCCC で入賞を繰り返しています。
https://www.ioccc.org/winners.html#E
2003年に ICPC で東京大学にはじめのメダルをもたらした kinaba さんは、2004年の ICFP と ICPC に出ようという記事を書いています。(国際大会への初出場は1998年の京都大学。初のメダルは京都大学の2000年です。)
http://www.kmonos.net/wlog/39.php#_2206040524
2004年からは、ICPCのOB/OG会が発足し活動を開始します。また、2005年前後には、ICPC 出場チーム GNC 主催の ICPC 練習会が行われていたと記憶しております。GNC は、まさにスパコンコンテストと学術オリンピック等の出場者からなりますね。
2004年度のISの雰囲気は下から
http://is.zng.info/archive/1112196863.html.sjis
ICPCとは,大学生を対象にした世界規模のプログラミングコンテストです.
ISの先輩方には世界大会に進んで活躍なさった方もいます(IS公式ページ参照)
.形式は,3人で1チームを作り,与えられた問題に対し,適切な出力をするプログ
ラムを書いて,運営側にメールで送るというものです.出題された問題のうち何
問を解けたかを競うわけです(なお,解いた問題数が同じ場合は早く解いたほう
が上位となります).なお,国内予選の上位26チームがチームがアジア地区予選に進むことができます
.しかし同じ大学からは3チームまでという制限があり,東大は例年とても強い
ので,実質的には東大内での戦いとなります.で,去年このような企画を教養学部の増原先生が立ち上げていらっしゃいました
.
http://www.graco.c.u-tokyo.ac.jp/icpc-challenge/
これを読んでいる人で参加していた人もいると思います.この企画と同様に,週に1-2題を課題に設定してその解答を考え,解法に使った
アルゴリズムやプログラミングテクニックについて議論する場を設け,ICPCで上
位を目指す(そして予選突破を目指す)企画をやりたいと思います.一緒に戦い
たい方の参加をお待ちしています.
Y.Matsumoto, Thu Mar 31 00:56:30 2005
当時は PKU JudgeOnline http://poj.org/ を使って練習をしていました。
2006年に情報オリンピックが復活。
そんな中、2007年の3月に作られたのが競技プログラミング同好会です。
競技プログラミング同好会は「ICPCの他国のレベルがあまりにも上がりすぎていて、このままでは日本が再びメダルを取ることはないだろう。世界大会で、再び日本がメダルを取れるようにするには、知識を受け継いでいく仕組みが必要だ」ということで競技プログラミングクラブとして活動します。なお、ymatsux は、競技プログラミングの名付け親であると同時に、ルシファー音頭のオリジナルでもあります。ymatsux は、昔、ドラえもんのオープニング曲の替え歌とともに謎の動きをしていました。ルシファー音頭は、その「あんな夢こんな夢いっぱいあるけど」の部分のオマージュです。いってみれば、ymatsux はルシファー音頭と競技プログラミングの親であり、ルシファー音頭と競技プログラミングは生き別れの兄弟なのです。
競技プログラミングは、当時は、とても違和感のある名称でした。
私も「競技プログラミング」という名前は @ymatsux さんが名付けたと認識していて、何その名称かっこよすぎうけるwみたいな会話を端末室でした記憶がある。私の世代までは「プロコン」と呼んでいたと思う https://t.co/lItacCmoH7
— Yuya Unno (@unnonouno) July 25, 2019
僕は @ymatsux からはじめて聞きました。地下室にみんなで集まって勉強会やってたタイミングなので2007年前後だったかと。
— inazz (@inazzzzzz) July 21, 2019
時間の記憶は曖昧ですが、はじめてその奇妙な単語を聞いたときの違和感は覚えてます。
ということで、@ymatsuxの発明? それとも誰かから聞いた? 思い出してー
ああ、この inazz も、りりあんさんを Google に叩き込んだ悪いやつです。どうかこの広告に憤る読者は inazz 君に非難を加えて下さい。
当時、OB/OG会などプログラミングコンテストのための勉強会はありましたが、複数チームが定期的に集まるサークルとしてできたのがこの競技プログラミングクラブです。そして、この競技プログラミングクラブは、定期的な勉強会が主な活動でしたが、もう一つの大きな活動が UTPC (東京大学プログラミングコンテスト)です。
翌年の2008年、第1回の東京大学プログラミングコンテストが開催されます。
https://www.utpc.jp/2008/
署名としては東京大学プログラミングコンテスト実行委員会とありますが、全員、競技プログラミングクラブの人たちによるものです。出場者も、多くが競技プログラミングクラブの人たちですが、東工大や京大の人の名前も見えます。
このように「競技プログラミング同好会(競技プログラミングクラブ)」が競技プログラミングの誕生した場所でした。
UTPC は、2008年から2014年まで続き、2020年に復活しています。2008年から2013年までの ICPC の国際大会の出場者は毎年最低一人は第1回 UTPC に参加していて、2014年から2018年までも、UTPC に出ている人がいるはずです。2019年以降は知りません。
また、この頃、2006年3月に ICPC の卒業生たちを含む人々が集まって、Preferred Infrastructure ができます。後に Preferred Networks とレトリバになります。Treasure Data もここからといっていいですかね。
他に当時の学生の作ったものとしては、2007年1月から shinh さんによる、Anarchy Golf という Code Golf のサイトがあります。
https://www.slideshare.net/shinh/code-golf
当時、Short Coding がとても流行り、「ショートコーディング 職人達の技法」が Ozy さんとやねうらおさんによって書かれました。
2009年の shinh さんと2010年の pure pure code ++ のICFP優勝しています。2013年以降は Team Unagi がよく優勝しています。
2009年に UAPC 会津大学プログラミングコンテストが開催されます。
https://jag-icpc.org/?plugin=attach&refer=2011%2FCoachWorkshop&openfile=5-en.pdf
UAPC という名前は UTPC に倣ったものとのことです。実は、2008年と2003年にも教員の手で学内でプログラミングコンテストが行われていたらしいのですが、2003年のコンテストは教員によるもので、2008年は2003年と同一問題セットに難易度調整のため tayama さんが手頃な2問を作題して追加したものとのことです。この経緯からレトロニムとして、2003年や2008年に行われたプログラミングコンテストを UAPC 200{3,8} などと呼ぶようです。
2009年から会津大学の Aizu Online Judge https://judge.u-aizu.ac.jp/onlinejudge/ が会津大学の外にも公開されます。2005年に作られたようですが、学外に公開されたのはこのときです。コンパイラにも任意コード実行のバグがあることがあり、セキュリティーなどいろいろ難しいでしょうからね。
また、quolc さんによる Imagine Cup の公式競技の Herbert をオンラインゲームにした Herbert Online Judge http://herbert.tealang.info/ が2011年に始まりました。
学生主催のプログラミングコンテストとして、2011年には、KUPC 京都大学プログラミングコンテスト、2012年には AtCoder が始まります。どちらも主催者の大半が UTPC 第2回からの参加者のはずです。
https://www.kupc.jp/#/2011/
https://atcoder.jp/
2011年の Google Code Jam Japan が開催されます。この大会は、ICPC OB/OG会やUTPCの初期メンバーなどによるものでした。
https://developers-jp.googleblog.com/2012/01/google-code-jam-japan.html
このあたりで、UTPC の初期メンバーが「なるべく速く正しいコードを書け」系の開催側から離れていくようですので、ここからのプログラミングコンテストと競技プログラミングの歴史について書くのは、他の方にお任せいたします。
過去の用例を調べていくと、まず初出の「東京大学競技プログラミングクラブ」のウェブページはもう消えています。
https://b.hatena.ne.jp/entry/inazz.jp/utokyocpc/
inazz の管理でしたね。
2008年6月に「東京大学競技プログラミングクラブの練習会」という文字が見えます。
https://wata-orz.hatenadiary.org/archive/2008/06/07
確認できた中で一番古い、一般名詞としての競技プログラミングの用例は、kinaba-san の2008年12月の「わりと競技プログラミング的なものに時間を使った年だったかもしれない。 」という一文です。
http://www.kmonos.net/wlog/92.html
この文中では「 Project Euler, Topcoder, ICFPc, Google Code Jam 」などを総称して使われています。この「的な」という箇所に一般名詞になりきれていない時代の匂いを感じますね。
また、2009年5月には、UTPC2009の主催者の nya-san による「UTPC2009のお誘い」の中で、競技プログラミングという単語が使われています。
https://nyaasan.hatenadiary.org/entry/20090518/p1
東大生・東大OBはもちろん,学外のみなさんも紹介があれば参加可能です.
普段は競技プログラミングに参加されていない方から,コンテストで活躍されている方まで,広い層に楽しんでもらえるような問題セットを用意しています.沢山の方に参加してもらえればと思います.
ただ、これが一般名詞としての用法なのか、自分たちのサークルを指す言葉なのかは解釈に余地がよく見るとありますね。
2008年の UTPC では少なかった学外者ですが、2009年5月の第2回からは、開成や筑駒の高校生なども含めた学外の人々も広くコンテストに参加するようになり、競技プログラミングの名前をそこから受け継いでいったのです。
https://www.utpc.jp/2009/standings.html
tanakhさんの「Scalaで競技プログラミングを行う際に気をつけることの列挙。」が2009年の9月です。
https://tanakh.hatenablog.com/entry/20090908/p1
mayah さん主催のYUHAの2010年夏 (C78)のコミックマーケットの「競技プログラミング2010」がはじめて競技プログラミングを扱った書籍のようです。
http://yuha.jp/books/
mayah さんの「競技プログラミングという言葉の誕生」によると「自分の体験談を少し振り返ると、私が YUHA で競技プログラミングに関連する同人誌的なものを書き始めた 2008 年夏 (C74) には、「競技プログラミング」という言葉はまだ広くは知られてはおらず、同人誌中でも競技プログラミングという言葉は使われていませんでした。2010 年夏 (C78) に発行した同人誌からタイトルに「競技プログラミング」という言葉が使われ始めています。この頃売り子も自分がやっていましたが、「競技プログラミング」という言葉は全く浸透しておらず、興味を持ってもらった人に「競技プログラミング」とは何かを一から説明するような状況でした。」「それであれば、自分は卒業しているため 2007 年にその言葉を知らず、一方後輩からその言葉を知ったおかげで広く知られる前から使い始めたということで、納得ができます。」
https://mayah.jp/posts/2019/07/competitive-programming/
https://twitter.com/search?q=競技プログラミング%20until%3A2008-12-31
このように競技プログラミングという言葉は2008年から2009年にかけて一般名詞化していったものと思われます。
ここまで見てきて分かったように、1980年代から、さまざまなプログラミングコンテストというものがあり、その周辺に境界の漠然とした大きなコミュニティーが存在しました。その中で、2007年3月に ymatsu の手によって競技プログラミング同好会(競技プログラミングクラブ)の名称が生まれ、そこからスピンアウトした UTPC が日本の初期の学生主催のプログラミングコンテストとして、プログラミングコンテストのコミュニティーに浸透します。こうして、サークルの名前でしかなかった「競技プログラミング」が、2年程度でなぜかサークル外でも使われるようになっていくのです。(なお、埼玉大学のプログラミングサークル Maximum は、おそくとも2003年から学生主催のプログラミングコンテストをしていましたので、UTPC は最初の学生主催のプログラミングコンテストではありません。Maximum 杯は、とにかく自然言語の読解とテストケースが恐ろしいことで有名でしたね。)
この理由は、はっきりとはしません。一つには、世代交代によって「何その名称かっこよすぎうける」という感覚や「はじめてその奇妙な単語を聞いたときの違和感」がなくなってしまったことがあると思われるのと、それと、私は、プログラミングコンテストは「出る」ものであったのが、競技プログラミングは「する」ものである、というのが一つの理由ではないかと思っています。「出る」から「する」になったことで「する人」「できる人」といった概念ができるようになったのです。
誕生日と専攻
本当は、この後にこれらの話がどのようにつながるかを話すところなのでしょうが、おそらく分量はさらに倍になるでしょうから、大学時代に調べていた未発表のデータについて、軽く書いて今回は終わりにします。
相対年齢効果というものが知られています。たとえば、小学校入学時に、誕生日の差で、ほぼ7歳とほぼ6歳がいます。成長していたほうが、野球やサッカーには有利で小さい方が脱落するため、野球選手やサッカー選手は4,5月生まれが多くなります。これを相対年齢効果によって、野球選手やサッカー選手は4,5月生まれが多い、という言い方をします。
当時、アウグスティヌスが告白の中で、親友フィルミヌスと同時に生まれた召使いの子がまったく異なる運命であったという話を引いて、星の位置や時刻で運命が決まるという議論を否定することを思い出して、では、人間の興味はどれくらい星の影響を受けるのか調べようと思い、興味と関係のあるであろう大学の専攻はどれくらい影響を受けているかを調べようと思ったのです。当時、日本である SNS が流行っており、そこには出身中学、高校、大学、学部ごとの集まる場所がありましたので、誕生日と専攻の相関を読むことができました。
結果、
- 大学よりも中学高校のほうが相対年齢効果が効く(4月(遅)生まれに比べ3月 (早)生まれが少ない)
- 中高一貫校は、2月3月生まれが、期待値よりも3割前後少ない
- 女性よりも男性のほうが効く
- これは男性の方が成長が遅いためとよくいわれる
- 商学部・法学部・経済学部、教育学部・文学部は相対年齢効果が大きく効く
- 1,2割程度
- 理数系・外語は比較的影響が少ない
- 芸術大学・音楽大学はほぼ差がない
ということが分かりました。多くの中高一貫校は、4-6月生まれと2-3月生まれを比較すると、人口比で正規化した後でも、倍くらい人数が違います。とはいえ、4月2日に近ければ近いほうが有利というわけでもないようです。
注意しておかなくてはいけないのは、これはあくまでも同窓的な場所の参加者であるというだけですので、本当にそこの同窓生であることを保証するものではありません。ただ、これはアンケート調査でも同じで、アンケート結果が直接意味するところは、ある箇所に印をつけた、ということであり、その反射的効果として、何かが分かる、ということです。これは、試験などでも同じですね。出題者と思考がどれくらい類似しているか適合しているか、というのが試験であり、その反射的効果として、何かが分かる、たとえば、大学における教育を受ける準備がどの程度できているか、など、ということです。
私は、これは、非常に興味深い結果だと思っています。身の回りにどのような人がいたか、そして相対的に自分が劣っていると感じたから、自信を失う割合が誕生日によって、わずかに違い、その影響は、大学入学時点まで引きずり、それは何に興味を持つかにさえ影響を与えるのです。もちろん、4月生まれでも自信を失うことがあるが、3月生まれのほうが多いというだけなのにも関わらず、その影響は「割」の単位で統計に表れるという話ですね。
逆に言えば、物事に対する見方や考え方、言い換えれば、メンタリティーとか、マインドセットとか、人間性とか、そういう精神的なところが、できることできないことを規定しています。そして、私は、このメンタリティーが人の能力のかなり本質的な部分だと思っております。
大抵の場合、現実を見ることは苦痛で、自己愛や保存本能から、思考が適当に逃げるので、そこを乗り越える必要があり、自分がなんとなく出来ないことを出来るようになるには、メタ認知能力を注入してもらうようなことをするのがいいのでしょう。
私のこの話の好きな点は、誰にでも誕生日はあり、誰でもその影響をかなり大きく受けているのだけれども、それについて意識しておらず、能力や実力で勝ち取ったと思っているものが、思っても見なかった下駄があったと分かるところですね。
最高裁判決へのコメント
ここまでの記事は、2020年の8月頃、いまだ最高裁の弁論が決まっていない時期に書かれたものです。
2022年1月20日に、最高裁第一小法廷は、反意図性を認め、不正性を否定する、判決を出しました。山口厚裁判長は、弁護士枠ではあるものの、もともと東大の刑法学の教授で、サイバー法についての著作もありました。そして、その当時、刑法学の助教をしていた人の一人が、共著者の西貝先生です。
今回の判決の内容は、共著者が法学セミナーでした議論と類似しており、当てはめもかなり近いものです。その意味では、反意図性についてはともかく、大枠では私の考えと大きく異なるものではありません。
ただ、結局のところ、反意図性についても不正性についても大まかな利益衡量に持ち込んでおり、結論の予測可能性がないものです。マイニングの社会的価値なんか計上しなくても無罪にできたと思われるところ、わざわざそうしていて射程が狭いものとなっています。条文の出来が悪いと私の考える不正指令電磁的記録に関する罪について、あまり本質的な手当てをしないまま、判例として法律解釈における規範を残したのではないか、と考えます。
すなわち、これは、近いうちに似たような事件がふたたび起きる可能性を示唆しており、そのときまで、本質的な法規範の定立を先延ばしすることになったものかと思います。
最高裁は、各々の裁判官が個別意見の書ける唯一の裁判所です。僭越ながら、最高裁に求められていることは、深みのある補足意見であり、切れ味の鋭い反対意見であり、凄みのある意見であり、それらが法廷意見の判旨や判例の射程を検討する上で私達を導くのです。しかし、私達に与えられたものは、全会一致による予測可能性のない利益衡量に過ぎなかったと残念に思います。
あえていえば、近く、事件を担当した最高裁判所調査官が判例を解説するはずです。その調査官解説を楽しみに待ちたいと思います。