見出し画像

Retro-gaming and so on

「汎用」はそこまで魅力がない

みんな、3DOって機械を覚えているだろうか。

3DOとはEA(Electronic Arts)関連の会社で、同時に、1993年(日本では1994年)に発売されたマルチメディア端末、ないしはその規格の事である。
当時の水準では非常に高レベルなグラフィック機能を備えたマシンだったのだが、後発のプレイステーションを相手に1995年頃失速する。非常に惜しいマシンだった。
何故3DOは失敗したのだろう?
色々と理由は考えられる。例えば「値段がバカ高かったから」とかね。
でもプレイステーションなんかは、特に3以降、どんどん高額になってる気がするんだけど、相変わらず良く売れてるようだ。不況だ、とか言ってるにも関わらず。
1995年前後だと日本もまだまだイケイケだったんで、当時の貨幣価値と今の貨幣価値を鑑みてみても、プレステ3以降が金銭的には安いけど3DOは高かったんだよ、って程でもない。多分今の貨幣価値でのプレステ3以降の方が割高なんじゃないか?
実は3DOは「ゲーム機」ではない。マルチメディア機とは言わば「なんでも出来るマシン」である。プレステはコンセプトが違う。「ゲームしか出来ない機械」だ。つまり汎用機3DOはゲーム機プレステに「ジャンルが違うのに」負けたわけだ。
これが示唆する事はなんだろう。それは、実は人って意外と「なんでも出来るモノ」には魅力を感じない、と言う事だ。逆に用途が限定されたものの方が人気が出る。勘違いだろうと何だろうと、「✗✗専用」の方に魅力を感じる。
どうやらそう言う事らしい。

なんでこんな話をしたか、と言うと、教えてgooの方で、「Pythonは人工知能用言語」って勘違いしてるような質問を見かけたから、だ。
一応、回答側としてはそーゆー勘違いは正しておかないとならない。ただし、本音として言うと、

「ああ、これでまたPython有利な状況が進むな。」

とある意味感心してしまった。
ある言語がますます人気が出るには、その言語が「特定方面専用」だと思われる、と言うか勘違いされた方がマシなのだ。
これは恐らく、プログラミング言語に詳しい人だと「ええ?」とか思うかもしれないけど、実はプログラミング言語に於いても、「✗✗専用」って勘違いされた方が普及に弾みが付く。これは間違いない事実である。特にニューカマーな人たちにとってはそうなのだ。

本屋に行ってプログラミング言語専門書のコーナーに行ってみよう。そこでテキトーな・・・マイナーなプログラミング言語の本(怒られるかもしれないけど、例えばErlangとか・笑)を開いてみる。そして前書きに目を通す。
大体、マイナーな言語を紹介したい、もっとポピュラーにしたい、って言う熱が入った著者達は

「この言語は✗✗に限らず汎用に使える言語で・・・」

って十中八九書く。でもそういう能書きが今まで効果があった例があるだろうか?無い。マイナーな言語は汎用であろうと、基本全滅である。いつまで経っても「知る人ぞ知る」プログラミング言語のままで、いつの間にか誰もそいつの事を口にしなくなる。
こういう言語は10を(書店で閲覧出来る限り)くだらないだろうけど、こいつらの共通点は何か。オブジェクト指向だとか関数型プログラミングだとか色々言えるけど、ここまで読んできた人ならもう答えは分かってるだろう。全部「汎用だと謳っている言語」である。つまり、事実上どうあれ、「汎用を謳った言語」は尽く負ける結果にある。これは偶然じゃないんじゃないか。

歴史を振り返ってみよう。ぶっちゃけ、素人まで巻き込んで、新規ユーザー数を獲得して、自発的に「プログラミング人口」のパイを広げたプログラミング言語は極論、今まで2つしかなかった。BASICとPerlだ。
BASICはおもちゃみたいで、ゲームを書くための言語、としか思われなかった。シリアスな言語たぁ捉えられてなかった。しかし、ゲームを書いてみたい人は山程いたので、結果「ゲーム専用言語」BASICは、ゲーム専用だ、と言うのが勘違いだろうと、その勘違いのお陰でユーザー数を増やしまくった。だからこそ「プログラミング人口」を創出したのだ。
Perlは?Web黎明期からちょっと経った頃、誰もかれもが自分の持つWebサイトに「掲示板」を付けたがった。ぶっちゃけ「掲示板を書く為の言語」って思われてたのがPerlだ。その結果、掲示板を書く為だけにPerlを覚えよう、って人があとを絶たず、結果「掲示板専用言語」Perlは、実態がどうあれ、またもや新規ユーザーをプログラミング界に呼び寄せたのだ。
この2つは「特定領域でしか使えない」と言う「誤解」のお陰でプログラミング人口のパイを広げた。つまり「汎用」だと思われてなかったからこそ人気が出たのだ。分かる?
他の言語は新規ユーザーを増やす事なく、お互い罵り合いつつ、「汎用」と言いながら既存のユーザーを取り合ってるだけ、なのに。その様相はまるで保険業界である。そして結局パイは広がらない。
つまり、マーケティング的思考で捉えると、「汎用」はちっとも武器にはならない。そうじゃなくって「特定領域にしか使えない」と勘違いされた言語の方が流行るし新規ユーザーを呼び寄せる、ってこった。これを、勝手に、3DO vs. プレイステーションになぞらえて「3DOの法則」って呼んでいる。新規ユーザーは「専門言語」の方が目的が(自分の作りたいものなので)明確なので好む。「実は専門じゃなかった・・・」って言い出すのは普及したあとからでも遅くはない。

じゃあ、C言語はどうなんだろう?実のとこ、C言語の普及に於いては、どっちかっつーと説教染みた「これを学習すればコンピュータの動作が分かる」と言う大嘘と共に普及してる。んなこたぁねぇんだけどな。結果、別に学習者が「自発的に選ぶ」言語でもないのだ。
アメリカの大学で、C言語を教え始めたのは元々、別にC言語が「凄く素晴らしい言語だから」教えてたわけではない。Cはそもそも、(ある時点から)UNIXを書くのに使われだして、中古ミニコン上で実際に動いてる「教材(ソースコード含む)」を使って、オペレーティング・システムの書き方を説明するのに都合が良かったから教えられだしたに過ぎない。もし、「OSの作り方とその理論」を必要としなかったら、覚えなくても良かった言語なのだ。
そしてもう一つ、Cなんかはハイプで広がった言語である。ハイプとは何か?ある会社が宣伝に宣伝を重ねてユーザーに強制的に選ばせる言語。ぶっちゃけ、マイクロソフトがCに肩入れしなければどうなってたかは分からない。マイクロソフトがCを勝利に導いた。これが事実である。それで言うと「UNIXは全く関係ない」。
実際、90年代初頭辺りだと、PCの「実用的」プログラミング言語はCとPascalで二分されてて、決着が付いてなかった。勝ったのはマイクロソフトがテコ入れしたC(とC++)。PascalはどっちかっつーとAppleが応援してたんだけど、「マイクロソフトに選ばれなかった」Pascalは結果負けた。そして大体Appleが推す、ないしは作った言語は結果いまだ成功した例もない(半ダースくらいは負け続けだ)。
Javaもハイプだし、この辺は「自発的に人々を巻き込んだ」わけでもない。だから「汎用」って言っても構わない。そっちは重要じゃなくって、ケツ持ちしてる大企業がどれだけ宣伝費をつぎ込むか、で結果が決まる。そして今はそっちの話をしているわけじゃあないのだ。

実際問題、ハイプで広がったプログラミング言語にはいつもエクスキューズが付きまとう。「何か書きたいものがあって」それがモティベーションとなって学んだ言語じゃないからだ。曰く、「コンピュータの動作が理解出来るから」「学校で教えるから」「就職に役立つから」etc...。必ず「説教染みた何か」が枕詞に付いている。それは、その言語そのものに別に魅力があるわけじゃなく、学習のモティベーションは常に外部要因だからだ。
一方、BASICはシンプルに「ゲームが作れるから」だし、Perlは「掲示板が作れるから」だった。言語そのものが「学ぶべき理由」であり、外部には要因が存在しない。後者の強みはそれである。汎用なんかクソ喰らえ、と言う叫びが聞こえてこないか。

かつては人工知能と言えば、「何だか良く分からんマニアックなもの」だった。と言うのも「眼の前で実際に動く人工知能」なんて殆どの人が見たこともないモノだったからだ。それが理由で、当時の人工知能用言語だったLispやPrologはあまり人気が無かった。
しかし今は様相が変わった。眼の前で動く人工知能がそこらじゅうに溢れ始めてる。このタイミングでPythonが「人工知能用」として認知されだしたのは、またさらなる普及に向けて大きく一歩を踏み出した、と言う事だろう。
いずれにせよ、プログラミング言語の宣伝を考えてる人は考え直した方がいい。プログラミング言語で「汎用」を謳ってもそれは普及には何の手助けにもならない、って事を。必要なのは「特定領域専用」と勘違いされる事なのだ。
「汎用」と言う言葉はクソの役にも立たない。


  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事