Ethic なきガジェット

no extension

大体おさまったかな。 今回の PHP 論争(?)は興味深く見させてもらった。 ここでは Tumblr に書きなぐったことをまとめてみる。 ちなみに私の主観を言わせてもらうと, PHP はあまり好きな言語ではない。 MS の ASP を連想させるデザインは, 私にかつてのトラウマをフラッシュバックさせるからだ。 だからといって仕事で PHP を使えと言われればやるけどね。

誰かが書いていたが, この手の話題は(形を変えつつも)長周期変光星のごとく定期的に再燃するものだが, 毎回いろいろな発見があって面白い。

今回の論争に加わった人の立場は大雑把に以下のみっつに分かれると思う。 ひとつ目は企業などに勤めてエンジニア(SE 等を含む)の立場にいる人。 私はそれを「職業エンジニア」と呼んでいる。 ちなみに私も職業エンジニアだ。 ふたつ目はハッカーやオープンソース・エンジニア, あるいは彼らにコミットする人たちだ。 面倒なので全部まとめて「オープンソース・エンジニア」と総称してしまおう。 みっつ目はそれ以外の立場でモノやサービスをカジュアルに作れてしまう人々。 これも面倒なので「ユーザ」と総称してしまう。 もちろんそれぞれの立場は可換で, しかも複数の立場を兼ねる人もいるだろう。 各立場を頂点とした三角の内部に無限の立場があることは承知しているが, 以降はこのみっつにデフォルメされたプレイヤーを想定して話を進める。

昔からある言語論争のプレイヤーは主に職業エンジニアとオープンソース・エンジニアだった。 両者は持っている倫理観というか気質が異なるためしばしば「宗教論争」になる。 職業エンジニアは企業倫理やエンジニアの社会的責任といったものを重視する(いわゆる「社畜」は除外ね)。 一方でオープンソース・エンジニアには Hacker Ethic と呼ばれるものがある。 しかし今回の論争では, 第3の立場であるユーザが加わっている点が面白い。

以前, 「『ウェブ時代をゆく』を読む?」への reblog で,

「理系(オープンソース)な運動では、そもそもコーディングができなければ参加できないという明確な閾値が存在した。パソコンでインターネットができる程度では全然ダメで、開発ツールがそれなりに使える程度のリテラシーがなければ参加はできないわけだ」

と返していただいたが, PHP 等の「初心者向け(?)」言語は確実にその閾値を下げている。 全くないわけではないが, ASP からレンタルサーバを借りて自前でコンテンツを構築できる人なら PHP 等で遊ぶことは難しくない。 彼らユーザは今までになかったプレイヤーで, 職業エンジニアやオープンソース・エンジニアにとっては想定外の集団だ。 しかもユーザは(職業エンジニアやオープンソース・エンジニアに比べて)量的なパワーを持っている。 ユーザは(職業エンジニアやオープンソース・エンジニアから見ると)初心者と混同されがちだが, そうではない。

ユーザにとって作ることは消費とイコールで他の2者のような Ethic を持たない。 ユーザの作るガジェットは数も多くバリエーションも豊かで, そして何より便利だ。 そして作られたガジェットを部品として新たなツールやサービスが組まれる。 まるで無限のピースを持つブロックで遊ぶような感覚だ。 一方で職業エンジニアやオープンソース・エンジニアからみると, 「Ethic なきガジェット」を量産し続けるユーザは非常に危なっかしい存在に見える。 これは以前「本当にヤバいのは「技術者」ではない人達だと思う」でも書いた。

「ソフトウェア開発における初心者」の内容は興味深いが, これは実は職業エンジニアの現場に限定される話で, しかも今ではさしたる問題ではなくなりつつあるように思える。 日本人を1人雇うお金で中国人を(現地で)3人雇うことができる(今はもうちょっと違うかな)。 英語堪能で優秀な SE が欲しければインドから調達すればよい。 「自称初心者の撲滅」と「顧客のソフトウェア開発に対する意識向上」を本気で考えるのなら話は簡単で, 日本人の職業エンジニアを一度全部切り落とせばよい。 そうすれば顧客は本気で自分の要求仕様と向き合わざるを得なくなるし(何故なら「空気」で仕事を進められなくなるから), 「自称初心者」が紛れ込む余地もなくなる。 もちろん「自称初心者」に合わせて初心者向けの言語を要件に入れる必要もなくなる。 要求仕様にあった(言語を含む)プラットフォームを選択し, そのプラットフォームに向いたエンジニアを調達すればいいのだ(実際, 開発部隊の中心をインドや中国に移す企業は増えている。 導入コストは思った以上にかかるけどね)。 私は, ゼネコン方式のおこぼれをもらうだけの開発企業と, 更にそこにぶら下がるだけの職業エンジニアはもはや黄昏時だと思う。 現在職業エンジニアの人は所属する企業への依存度を徐々に減らしていかないと, 近い将来本当に潰しが効かなくなる。

とまぁ, 余談はともかく, 以上の問題は「Ethic なきガジェット」を何によって担保するかという点に帰すると思う。 そして, これはもはや Ethic の問題ではなく Architecture の問題だとみんな気づいているはずだ。 そう考えると, 今回の論争の発端となった記事「Attacking PHP」に還るんだよね。

その他に参考になったもの: