Old Brains

そろそろ歳も40近くなり、老いについて考えることが増えてきた。たとえば10ヶ月も続く在宅勤務の中で少しでも運動をサボると左膝がすぐに痛みだしたり、うっかり水分を摂り忘れたりすると頭痛がきたりする。もちろん体重は史上ピークを記録し続けている。身体の老いについては、まあそういうものであるし、特に外見などに気を遣って生きてきたわけでもないからそんなには気にしていない。しかしながら、人間の人間たる由来はその精神や振る舞いにあると思っているから、そちらでの老いの方が問題だ。

前職までは大抵、わたし自身は年齢が1番か2番めくらいに若い職場で仕事をしていることがほとんどであった。ほとんど同年代か、10から20くらい上であることが多かったように思う。単に物理的な年齢もあるが、職業経験も私より長い人たちばかりであったので、教わることの方が多かったから、物事の考え方が揃っていたことが心地よかったということには、後から気付いたのであった。親切な先輩ばかりであったから、自分が一番の下手であるような職場に慣れてしまっていた。Erlang/OTPがすごいんですよと話したら「昔○○という技術があってね…」と諭されたり、分散ファイルシステムの歴史をまとめた資料を作ろうとしたら「SunOSのファイルシステムは・・」と昔話を聞いたこともあった。SSDが市場に出てき始めた頃に「SSDをやりましょう」といったらICカードに組み込もうとしたフラッシュメモリの辛い話を聞いたりと、比較的歴史の浅いと言われているコンピュータ産業に限っても、私の知らない歴史を無限に教わることができた。Javaで知らないことを聞けばすぐに誰かが教えてくれた。

ところが現職になって多くのことが変わった。周囲の同僚は全員が私よりも年下で、職業経験もわたしより浅い。だからといって能力的に劣っているということは全くなく、Ph.Dを持っていたりそのキャリアで成功していたりするわけだし、分野が違うこともあって私の知らないことを多く知っている。というか、何なら同僚だけじゃなくて、インターネット上で観測される多くの人が VSCode をコンテナプラグインやover SSHで使っているし、 Dockerfile や docker-compose.yml なんかは息を吐くようにサラサラと書いたりする。もちろんシェルプロンプトは何か絵文字が沢山出ている、簡単なPythonは全部 Jupyter Notebook 上で書いていたりする。 peco や ghq やらを使いこなしているし、 AWSやGCPもお手のものだ。何か問題があると「それAWSの○○でできるよ」みたいな趣旨のことを言う(わたしは理解できていない)。フロントエンドの話になるともうSappariで Vue とか Flutter とか React とか…あれ、こないだまでTypeScriptの話してなかった?え???みたいな状態である。

f:id:kuenishi:20201214221059j:plain
若者と技術的な話をしているときの私

一方で若者たちと話をしていると、ウォーターフォール開発について知らなかったり、Plan9という単語を聞いたことがなかったり、Docker以前のコンテナ技術について何も知らなかったりということがあるので、そういうときは聞かれたら知る限りの歴史をかいつまんで答えるようにはしていた。うーん世代差…だからといって仕事でやることが特に変わるわけじゃないし、ホモソーシャルな空間で仕事をしたいというわけでもない。まして古いものを押し付けたりすることはないけど、新しいことに日々挑戦しなくなっているという実感があった。むしろ軽い危機感だった。新しい技術に飛びつくことがいいわけじゃないけど、全く関心を持たないのはよくないんじゃないかと悩んでいたのだ。

ところがある日、GVRの "Really I don't recommend Emacs to new developers. It just exists for old brain compatibility." という一言を見かけた。

わたしの中のEmacs教原理主義者なんかは「ホラ見ろ!!Emacsでいいんだよ!」と一瞬思ったけれども、日を追うごとに、わたしの中の穏健派はこれで救われたような気がしていった。別に新しいものに無理やり挑戦することはないんだ、互換(≒できることが変わらない)なら無理にやり方を変えることもない、というわけだ。だからEmacsも使い続けるし、1stでないとはいえ2年連続で国際会議に論文を通すことができてしまったし、会社からも悪くない賃金を得ている。今までなんとなく持っていたちょっとした功名心というか自己顕示欲のようなものは徐々に満たされつつ薄まってきて、現状に満足し始めてしまったのかもしれない。

こういう風に満足してしまった状態は直感的によくないと感じていて、知らないうちに増長して同僚たちに迷惑をかけてないかどうかが不安になってしまう。例えば何か新しい要素技術Xが登場してきて、それはやってみる価値があるかどうかという話になる。私は昔の技術Yに似ているという第一印象を持つが、概要だけだと何が違うのかよく分からない。そのときにすぐ「昔のYと何がちがうの?」みたいなことを悪しざまに言ってしまうと、これはいわゆる老害というやつで、Xに挑戦しようとする若者の足を引っ張ってしまうことになるわけだ。妙な偏見のない状態で実際にやってみれば成功するんじゃないか?わたしが変なことを言って偏見を植え付けてはいないか?となるのである。こういうとき、どういう風にリアクションするのがよいだろうか?

新しい技術や製品はどれも、この歳になると最初に聞いたときは脊髄反射で「それオモチャじゃね?」となってしまうわけだ。わたしはこの言葉をいろんな人から聞いたが、自分でもそう思うようになってしまった。例としては、

  • TCP/IPが登場したとき「電話(回線交換)に比べたらオモチャ」
  • オープン系システムが登場したとき「MFに比べたらオモチャじゃん」
  • Linux が登場したとき「Solarisに比べたらオモチャじゃん」
  • MySQL が登場したとき「トランザクションないじゃん」
  • MacOS 10 が登場したときの「Windowsじゃないと仕事では使えない」
  • Gitが登場したとき「Mercurialでいいじゃん」
  • OpenvSwitch をはじめとするホワイトボックススイッチが登場したとき「そんなのオモチャじゃん」
  • AWS が登場したとき「たけえじゃん自分たちで買えばよくない?」
  • Hadoop が登場したとき「GCのある処理系で高信頼なミドルなんて作れるわけないじゃん」
  • 深層学習が登場したとき「ネコ判別してどうすんの?」
  • Kubernetes が登場したとき「Mesosでよくね?」

などなど、キリがないわけである。どれも最初に登場したときはオモチャなのだけど、これを面白いと思った人たちが集まってエコシステムが成長してビジネスになり始めると、それはオモチャを卒業していくわけだ。実際に大切なのはオモチャかどうかよりも、可能性があるかどうか、人が集まるかどうかの方が大切なわけだ。オモチャかどうかというのは極論すると見る側の主観にすぎないし、既存の技術の焼き直しであるかどうかもどうでもいい。重要なのはリソースが投下される価値があるかどうか、人々の問題を解決するかどうかだ。

その価値を見極めるために、過去の歴史を知っておくことは副次的に必要だけど、もっと重要なのは現在の技術やソフトウェアで何ができないかを知っておくことだ。現代の人たちがどういう問題を抱えているかを何かのきっかけで知ったときに、それが技術的に解決できるかどうか、解決できるとしてどれくらいの手間がかかるのかを即座に偏見なしに判定できるようになっていると、勢いはなくてもオッサンとしての価値は下がらないんじゃないか。いやいや偏見なしって、そんなことが簡単にできるならそもそも悩んでない・・・と思って今日もゲームに励んでいる。

Splatoon 2 (スプラトゥーン2) - Switch

Splatoon 2 (スプラトゥーン2) - Switch

  • 発売日: 2017/07/21
  • メディア: Video Game

これじゃダメだ。互換性がなくなったらゴミなんだからもうちょっとなんか勉強しようよ。ホラあんなに積読たまってるよ。と私のなかの真面目君は主張するのだけど、私のなかの怠惰君は「えーでも今日も疲れたよ・・・ビール飲みたい・・・」と言う。不惑とは何だったのか。ねえ孔子さん何とかして。

f:id:kuenishi:20201221105326j:plain
nikuyoshiさん@フリー素材

いかがでしたか?

この記事は pyspa Advent Calendar 2020 - Adventar の21日めの記事として書かれました。

Hiroki Uchida on Twitter: "(この画像はフリー素材です… "