なくならなかった仕事
自分は Android プログラマで、我ながら将来性のない仕事をしているなとぼんやり思っている。将来性がないというのは、つまりあと 5-10 年くらいしたらこの仕事はなくなりそうだな、ということ。
これは妥当な見通しだろうか。
20 年前には Windows プログラマという仕事が普通にあって、VB とかを書いていた。Windows のネイティブアプリを書くそんな仕事は、今はなくなった。すくなくとも近似的には。たぶん 10-15 年前くらいにはもうなかった気がする。Windows の仕事は Web (および Electron) に取って代わられた。
一方で、無くなりそうでなくならなかった仕事もある。モバイルファーストが騒がれていた 十数年前、もうウェブプログラマの仕事はなくなりそうな気配があった。広い合意ではなく、まだいけるというウェブプログラマもたくさんいた。とはいえモバイルのネイティブアプリにやられると思っている人も多かった。
けれど、それは起こらなかった。今やウェブの求人はモバイル求人より多いくらいである。何が起きたのか。あるいは起こらなかったのか。
まず、Web の主戦場たるデスクトップにモバイル OS はやってこなかった。そして人々は Windows や Mac といったデスクトップ(ラップトップ)を使い続けている。特にエンタープライズの世界ではいまだにデスクトップが中心である。
なぜモバイルプラットフォーム (iOS, Android) へのシフトが起きなかったのだろうかというと、プラットフォーム業者のやる気がなかったからだろうね。Apple は Mac を急いで殺す必要がなかったし、Android は Windows を倒せる器ではなかった。
やる気がなかったというと語弊があって、どちらのプラットフォームもWindows が築きあげたデスクトップ環境のロングテール的複雑さを取り込むよりは自分の得意な市場を広げる方を選んだ。なぜならモバイルの市場はデスクトップの市場よりずっとデカいからである。
モバイルのウェブがネイティブにやられることもなかった。ソーシャルメディア、チャットや動画など、人類が時間の多くを溶かす少数のアプリはネイティブが担っている。けれどコンテンツを冷やかしてそのリンクを回覧する行為は、動画やソーシャルメディアを除きだいたいウェブのままである。そうしたロングテールのコンテンツにとって、アプリは補助的な存在にとどまった。アプリとウェブのどちらが補助的なのかは議論の余地があるが、どちらも必要なのはたしかでしょう。
URLでリンクできてインストールも不要というウェブの性質をネイティブアプリは克服できなかった。ウェブの方が相対的に安く作れるのも助けになっている。
昔は「新しいプラットフォーム(たとえばウェブ)が古いプラットフォーム(たとえば Windows)を駆逐する」という歴史観があった。が、モバイルの時代にウェブは生き残った。新しきが古きを殺すパターンは繰り返されなかった。
新旧交代史観とは別に「オープンなプラットフォーム(たとえばウェブ)がクローズなプラットフォーム(たとえば Windows)を駆逐する」という歴史観もある。
ではクローズなプラットフォームである Android や iOS が何かオープンなプラットフォームにやられそうかというと、今のところ決定打は見えていない。Web (PWA) はそれなりにがんばっているがメインストリームには来ていないし、React Native も流行りそうで流行り切っておらず、最近はむしろ下火ですらある。Flutter, Xamarin はほっておく。
そんなかんじで、Android や iOS はウェブという古いプラットフォームを駆逐はしなかったし、一方でオープンな何かに駆逐されることもなく今日に至っている。
次世代のプラットフォームも、今のところ登場の兆しはない。Apple Vision Pro みたいなのは兆しなのかもしれないけど、フォームファクターからしてデスクトップはともかくモバイルを駆逐するとは思えない。
プラットフォームとしてのネイティブモバイルがもつ将来性は、当初の印象ほど悲観的でない。
とはいえ技術としてのコモディティ化は進んでいる。モバイルアプリをつくるのは、今やそれほど難しくない。ハードウェアも速くなって、開発環境も整備されて、変化も昔ほどは速くない。資料も豊富で、その気になれば誰でも始められる。誰もが日々使っているものなので、アプリの仕様もわりかし無理なく理解できる。
作るものはだいたいがクラウド(ポップカルチャー的用法)にあるデータのフロントエンドなので、仕事に高い専門性を要求されることは少ない。だからオフショアとかに発注されがち。かつて WordPress などの CMS が「ウェブ制作」の敷居を下げ専門家が居場所を失ったように、モバイルの専門家も今は若干肩身が狭い。
求人を眺めていても、リーダーシップ的でないモバイル開発者に景気よく給料を払ってくれそうなのは Meta と TikTok くらいである。人類の時間を溶かしたいソーシャルメディアがモバイルの専門家を必要としているのはわかるけど、そういう職種は限られてるよね。人類の可処分時間は飽和しているので。エンタープライズの世界でクラウド技術者が DX だのなんだのと湯水のように採用されているのとは対照的である。
こう書いてみると、モバイル開発者の景気の悪さは人類の可処分時間、電話の画面を見つめている時間の飽和が理由の一つだと言えるだろう。
ウェブのフロントエンドには同じ閉塞感を感じないのだが、なぜだろうね。というと、一つにはエンタープライズのフロントエンドは別に可処分時間を奪い合ってはいないからだろう。長い時間使ってほしいわけではない。さっと用が済むならその方が良い。本質的に色々なことを自動化したいわけだから。
あとウェブ開発者の需要は随分前、それこそ 10 年以上前から飽和しているので、今更悲壮感はないのかもしえない。均衡しているというか。モバイル開発需要の飽和は、ここ 5 年くらいの話だよねたぶん。だから傾きを感じやすいのだろう。(なお、ここでいう飽和は相対的なものである。モバイルもウェブも何らかの求人はあるからね。)
そんな煮え切らない立場の Android プログラマはどう将来を思い描いているのだろうか。
まず仕事を頑張って専門家として出世していく路線がある。Growing as a Mobile Engineer という本はそんな話で、モバイルプログラマの出世を議論している。出世できるならそれに越したことはないことでしょう。
モバイルには見切りをつけて他のことをやる人も多い。2010-2015 頃にモバイルをやっていたけれど今は全然違うことをやってる人は沢山いる。今日もモバイルから出ていく人は多いだろう。ただそういう舵切りは、ある程度若くないと難しいよね。(なおここでいう若さは可処分時間の多さや金銭的責任の小ささの代替指標である。)
若くもなく出世もできない人、というのは自分のことですが、はどうするのか。というと・・・そういうプログラマの先行きの難しさはモバイルに限った話ではないので、ここで議論しても仕方ないな。
まとめると:
- モバイルの仕事は特にすぐなくなりそうではない。ただし需要は飽和し、技術も徐々にコモディティ化している。
- つまり年寄り Android プログラマの抱える不安はプラットフォームの消滅ではなく安い労働力との競争である。
- したがってモバイルプログラマがキャリアを重ねるには、がんばって偉くなるか若いうちに他の好景気分野に避難するのが良い。
- ただし居残ってもすぐに失業するほどの危機は今のところ迫っていない。
補遺: Apple Ecosystem
自分が Android 開発者なので iOS については議論していないが、大まかな位置づけは同じかなとぼんやりおもっている。
ただ、たとえば iPad のような大画面端末がよく売れていたり、Catalyst のようなモバイルによるデスクトップ殺しが一応は機能していたり、モバイルほどのインパクトはないとはいえ Watch や Vision Pro のような新しいフォームファクターを開拓していたり、エコシステムが開発者としての守備範囲を広げてくれているのはいいなと思う。
Android も Auto や TV などで割と普及しているので、総体としては似たようなものなのかもしれないが、これらはアプリ開発者より AOSP 開発者の土俵なのだよね。