なぜJavascriptはシングルスレッドかつ非同期通信なのか

http://indori.blog32.fc2.com/blog-entry-1298.html
同じ理由でJavascriptもシングルスレッドなのだと思う。

シングルスレッドだとファイルの読み込みなどの重い処理をしたときに次の処理まで長い待ち時間が発生しうる。
それだと使い者にならないので、そのような処理は処理を投げる(ファイル読み込みの場合はhttpリクエストをブラウザに投げる)ことだけをまず行い、イベントループにでぶち込んで他の処理を行う(他の処理も同じようにイベントループにぶちこむ)。

イベントループを監視してる最中に、その処理が終わっていたらFIFOでコールバック関数を実行する。
これが現実的な解決方法であり、非同期処理そのものだ。

SAOでファイルアップロードの際の注意

ページ遷移せずに2回目のファイルアップロードをしようとした場合、ブラウザによっては失敗することがある。

これは、input タグのvalue に既に値が入っていることが問題なので、以下のようにリセットすれば正常に動作する。

document.getElementById(“target_id”).value = “”;

jQueryなら以下。

$(“#target_id”).val(“”);

任天堂は、倒れたままなのか?

ポケモンGOが大変流行っており、ついに日本のゲーム業界が世界的にヒットするスマートフォンゲームをリリースしたかのように思える。しかし実態はそうでない。ポケモンGOにより任天堂は本格的にIP管理会社としての道を着実に歩み始めた。

そもそもポケモンGOの開発・販売は任天堂でなくNianticという法人が行っており、任天堂は同社の株を10%程度しか保有していない(2016年7月時点)。このため、任天堂の株価はポケモンGOリリース時に急騰したが、その後下落した。つまり任天堂は、インターネット上でのゲーム配信プラットフォーム(STEAMのような)を取ることを放棄したばかりか、スマートフォンゲーム開発の為の組織を作ることも放棄したと取れる。

私は数カ月前、任天堂の社員と「今後任天堂はどのような戦略を取っていくべきか」というテーマで語り合った。私は「ゲームコンソールに依存し続けるべきではない。まずはスマートフォンプラットフォームでゲームを開発・販売できる体制を整え、並行してSTEAMのような配信プラットフォームを作る。そうやって任天堂はインターネット上のプラットフォームを握るべきだ」という意見をした。しかし実際は、任天堂は自社のプラットフォームを作らず、版権をライセンスする道を選んだ。これは、任天堂が自社だけではプラットフォームを作りきれないという弱さを露呈したものと私は考える。任天堂は弱くなった。

注:ポケモンは株式会社ポケモンの著作物であり、任天堂は同社の株を1/3程度しか保有していないが、任天堂がポケモンに初期から現在まで多大な影響力を有していることを考慮し、この記事では主語を任天堂として記載した。

ブロックチェーンはバブルである

ビットコイン等の仮想通貨の根幹技術であるブロックチェーンが今注目されている。確かにビットコインは極めて有用な技術であり、非効率的な既存の金融サービスを劇的に改善するだろう。その根幹技術であるブロックチェーンも、BlockStreamをはじめ様々な応用例がアカデミック・ビジネスの両方から提示されている。

しかし私は、現状のブロックチェーンの盛り上がりはバブルと見ている。多くの人が過度な期待を抱いているからだ。

第一に、貨幣以外の財産について、ブロックチェーンは自律的に自己の正当性を証明できない。これは致命的な欠点であり、「ブロックチェーンで全ての財産権が適切に処理できる」という考えに対する単純な反証である。

第二に、ブロックチェーンを用いたシステムはいずれ容量の問題に達する。これはプライベート・チェーンを用いる等、分散度合いを限定するという回避方法はある。しかしこの記事が言う通り、この手の限定した分散ネットワークにはCDN等様々な既存技術があり、ブロックチェーンに置き換えた方がよい領域はそれほど多くない。

第三に、ビットコイン等仮想通貨に限定して言えば、国家はそれを野放しにしておくことは好まないだろう。それを許せば、タックスヘイブンがいくらでも作れてしまう国家公認の仮想通貨が生まれる可能性もあるが、その場合国家が中央組織としての役割をある程度果たさざるを得ない。もちろんブロックチェーンの定義を拡張したり、解釈によってそれもブロックチェーンに含ませることもできるだろうが、それは単なる言葉遊びだ。

ブロックチェーンは間違いなく有用だ。だが、往々にしてこのようなフレーズは一人歩きし、定義が肥大化し、そこに有り余った大量のカネが流れこむ。今のうち予言しておくと、マウントゴックスのような経営破綻や詐欺による未払いは今後も何度か起こるだろう(海外では既に幾つも未払いが発生してる)。多くの人に対して真に有用なブロックチェーンサービスは1割程度しか産まれず、後は全て淘汰されるだろう。もっともそれがベンチャーであると言い切ってしまえば、反論しがたいところではあるが。

フィンテックはタックスヘイブンの夢を見るか

ビットコイン等の仮想通貨(以下、単に「ビットコイン」)によるフィンテックビジネスが大きく成長している。その一方、ビットコインによる投資ビジネスも盛んとなっている。以前はビットコインその物への投資が多かった。これは、単純に将来の値上がりを予想したものだ。しかしその通貨がそれなりに流通してくると、価格の上昇が緩やかとなり収益は減少する。

そこで最近は、ビットコインを用いて投資するビジネスが増えている。パターンはいくつかあるが、基本的にはビットコインによって何かの金融商品や事業に投資をし、配当はビットコインで受け取る形だ。大量のビットコインが必要になるので、運営者はファンドを設立することになる。

これだけ聞くと、現存通貨(例えば日本円)を投資家から集めてファンドを作って運用し、配当を支払うのと何ら変わらない。現存通貨のそれとの最大の違いは、「出資及び配当に関する法規制がない」ということだ。これを投資家向けに言い換えると、「資金の流れが当局にバレませんよ」「配当に税金がかかりませんよ」となる。こうなると飛びつかない理由はない。

このように、ビットコインとテクノロジーを組み合わせることによって、サイバー空間にタックスヘイブンが作り出せる。もちろん当局も馬鹿ではないので、このような税金逃れを防ぐために順次法律を制定している。日本でもビットコインの扱いに関する法案が成立した。今後投資を規制する法律も成立するだろう。

しかし法律は基本的にその国でしか機能しないので、規制がない国に組織を移転されると抑止できない。これは、タックスヘイブン国家に対して他国が干渉できないのと同種の構造である。

加えて、大企業や富裕層は過度の規制に反対するだろう。彼らはタックスヘイブンの存在を求めているからだ。もちろん彼らは正直にそんなことを言うはずもなく、代わりに「プライバシーの侵害」「国民の財産が国家に管理される」「ビットコインに依存し過ぎるといずれ処理しきれなくなる」等のレトリックで理論武装するだろう(実際にそれを主張するのはロビイストだ)。そして多くの個人事業主や中小企業のオーナーもこの意見に乗るだろう。「当局に知られない資産」に彼らが並々ならぬ興味を示すことは、社会人経験のある者なら容易に想像できる。

上記のような理由で、国家公認の仮想通貨ができる未来は来ないかもしれない。BlockStream 等の試みによって仮想通貨の普及率は上がるだろうが、最終的にはそのほとんどはデリバティブに使われるようになる可能性がある(参考:2015年12月時点の割合)。

リーガルテックにおいては、中央集権システムのとの組み合わせで国家公認の公平なシステムが構築できる。しかしフィンテックにおいては、ビットコインを用いたタックスヘイブンの運営が最大のビジネスになる可能性がある。フィンテックによって、大きな価値が世の中に新たに生まれているが、その果実のほとんどは富裕層が最終的に独占するのかもしれない。