blog.8-p.info

仕事のプログラミングには、人々の要求を取りまとめて、論理的なかたちにまとめる作業と、それをコンピュータに教え込んで動かす作業と、二つの要素があって、この配分は会社やチームによってだいぶばらつきがある。

私はいわゆるクラウドをつくる側にいるので、日々の仕事に前者の要素はあまりない。これは、作っているソフトウェアがそこまで新しくなく、何を作ればいいのかわからない段階は過ぎてしまっているというのもあるし、客になるような人々がコンピュータに詳しいというのもある。

後者の要素、Linux カーネルのバージョンがどうとか、コンテナランタイムがどうとか、そういうことはよくやっている。クラウドとか、サーバレスというのは、つまりは後者を他人に任せる仕事で、その他人というのが私だからだ。

結果として、ソフトウェア業界全体を見渡すと、前者の仕事はあまりなくならず、後者の仕事は徐々に減っているように思う。世界のどこかにやっている人はいるのだけど、集中と統合が進んで、特定少数の人々が、多数のアプリケーションを支える形になりつつある。クラウドの外をみても、例えば2000年代は、会社ごとの Web フレームワークというのがあったりしたけれど、最近はあまり見かけず、出来合いのオープンソースのものを使う場合が多い。

インターネットでは、それでも後者について語る人が多い。これは、頼まれもしないのにコンピュータについて語りたがるのは後者が好きな人が多いというのもあるし、前者は仕事につながりすぎていて話しにくく、話したとしても、共通の話題になりにくい、というもあるのかもしれない。

後者の仕事が減っているのは、全体としては良いことなのだと思う。なんでもできる人が前者に集中できることも、後者が苦手な人がソフトウェアを開発できるのも良いことだからだ。前者が苦手で後者が得意な人にはちょっと辛いけれど、これは昔からずっと進んでいる傾向で、例えば私の前の世代は「これからの世代はメモリ管理とか GC まかせなのだなあ」と、なんとなく寂しく思ったのかもしれない。