最近気になっていること
データ転送主体の情報処理におけるアルゴリズムの役割(の小ささ)
メインフレームの場合はたとえば夜間バッチとかで途中でミスったらやり直す前提になっていて
日本の場合だと銀行が15時に窓口を閉めることでデータに大域ロックをかけれているわけだけど、例えば決済を24時間化することでバッチ処理でできないことが増えている、というより、オンライン処理というのはロックの間隔の極端に短いバッチ処理の連続としてとらえるべきなのだろう
想定しているのはメインフレーム上のCOBOLとか、最近のクラウド上のサーバレス(function as a service)とか関数型不変データ構造とかなんだけど、データの読み取りも書き出しも共有ストレージに対して行うことを強要されていて、冪等性がある、っていう要件の情報処理のパターンをひとつのクラスとして定義したいと思ってる
何が辛いって基本的にほとんど計算量の下限がO(n)になること
要するにローカルメモリ上で延々と破壊的変更をやる場合にだけ「アルゴリズム的思考」って有効なんじゃないか?という、その破壊的変更が並列化とか冪等性とか安全な冗長化と両立しないっぽい
冗長化って要するに並列処理して片方の結果を捨てることだから
追記:というか、自分が常々主張してる「余計算」(cocomputation)の例だと思うんだけど、直列なアルゴリズムを並列化すると情報インフラがアルゴリズムのグラフ表現に漸近して、最終的には回路図とか固有値とかで書かないといけなくなる
追記2:たとえばメモリのアドレッシングがO(1)なのって、ラッチを横に並べただけ並列処理できてるからだよね。。じゃあ、リニアなアドレス空間がなくなってJSON/YAML/XMLみたいな文脈自由言語のアドレスになったら並列性の恩恵が無いし、たとえばラッチに相当する1語分のメモリが1つのRESTのエンドポイントに対応するとなったら?これは冗談ではなくてそうなりかけてるクラウドアプリ屋さん絶対居るはず
通信村と金融村とアプリ村とゲーム村と制御村の温度差についての文化人類学的な何か
日本人は誇り高い部族主義者で、ソフトウェア産業はバルカン化されてる
自分は通信村しか見えてないので通信村の前提を整理したい、金融村に行くには自分は規範意識が弱すぎて無理だし、アプリやゲームや制御で要求される細かな知識もない
ひょっとすると日本の地形が険阻なせいで通信の役割が大きすぎるし、そのせいで発注者としての電話会社の地位が優越的すぎる