技術の古典化
世の中には「終わってしまった技術」というのがあって、そういう技術相手にはなるべく時間を使いたくない。ただ「終わってしまった」にもバリエーションがあり、完全には無視できないこともあるなと思う。
無視してよいものについて先に考えると「死んでしまった技術」はもう放っておいて良い。わかりやすいところだと WebOS とか、要素技術でいうと prototype.js とか。厳密には死んでしまったわけではないが行き止まりになった技術もある。仕事はどこかにはあるだろうし何かしら変化はしているだろうが、いま縁がないならこの先も無視してよいようなもの。たとえば COBOL のようなメインフレーム技術や、多くの人にとっては Windows アプリ開発も「行き止まり技術」だろう。
一方で、終わってしまったが死んでもいなければ行き止まりになってもいない技術もある。
筆頭は UNIX. 終わったとか言うと怒られそうだけど、ユーザとして最新動向を気にする必要性は感じない。一方でコマンドラインでなんかするとかファイルシステムの構造とかルート権限がどうとかの典型的な使い方と基本的な概念は知っていないと不自由する。
Web も似たところがある。アプリケーションプラットフォームの Web というアイデアの落とし所はだいたい見えて、今や Web 標準の動向を真面目に追いかける必要は感じない。フレームワークの流行り廃りも、Web 開発者でない限りは無視して良い気がする。一方で、たとえばデータサイエンティストが Web を scrape するにしろ無名の若者が売名ブログを書くにしろ HTTP(S) と HTML と CSS くらいは軽く理解していた方がよいし、簡単なウェブアプリも作れる方がプログラマとして小回りがきく。
UNIX や Web は古典、あるいは教養になったと言ってもいい。
従来、情報産業の古典や教養はいわゆる CS の教科書みたいなもので賄われていた。UNIX や Web はあまり computer "science" というかんじじゃない。でも実務者にとっては同じくらい重要だし、割と長い歴史を持ってもいる。自分が学生だった 20 年前は Windows が花盛りだったせいもあって UNIX はそれほど foundamental という印象はなかったし、Web は目新しいものだった。
Unix や Web が真の古典としての普遍性を持っている気は(まだ)しないけれども、他の技術にくらべ長生きだし安定しているし他のものの基盤になっている点は評価されてよい。特に新しい技術がその上に積み重ねられている点は、他の「終わってしまった技術」にはない強さに思える。いまこれらを「教養」と感じるのは産業の成熟なのか、自分の老化なのか、どっちだろうね。
自分が学ぶべき「終わってしまった技術」あるいは「古典」はなんだろうと考える。
ぱっと頭にうかぶのは信号処理と確率。これは従来の意味での「古典」だけれども、たとえば Matlab ... はともかく NumPy や SciPy でさっと画像処理とかできたら守備範囲も広がるのにと思うことはある。同じく確率を真面目にやれば NN も Bayasien も今より恐怖を感じずにすむかもしれないという淡い期待がある。
あとは RDB と SQL ... を終わってしまった技術よわばりするのは若干抵抗があるけど、クールファクターがないという意味で終わってはいる。しかしもうちょっと触れたらいい気はしている。
自分がこうした古典を勉強して穴埋めする日は永遠に来ないかもしれない。残念なことだが、致命傷とも思わない。これは「古典」についてあまり語られない事実を物語ってもいる。つまり、古典は知っているに越したことはないが、すごく重要とは限らない。古典を学ぶ豊かさは尊いけれど、知らないなら知らないなりの人生がある。