「API が違うからなのです」

「端末」「ターミナル」「コンソール」からの派生。

何読んだんだったかなぁ、確か何かゲームについてのことを説明してるサイトだったと思う。

「同じゲームでも、異なる機器で動作しているものは、全く異なるプログラムです。API が違うからなのです。」

こんな感じだったと思う。まぁ要するに当方と致しましては「大爆笑」させていただきました、つー話なんだけどね。

執筆者がいわゆるエンジニアなのかは知る由もないけれど、少なくとも「API」の意味をわかって使ってないよね、この説明。

読者を煙に巻くには「賢そうにみえる技術用語を使っとくのが一番である」つーことだろうな。して当人はどうやら API の意味を知らんらしい。

だいたいにして、説明はこれでよくね?

「同じゲームでも、異なる機器で動作しているものは、全く異なるプログラムです。機器が違うからなのです。」

つまりこういうことよ:

「同じタイヤでも、車と飛行機のものは、全く異なるタイヤです。大きさが違うからなのです。」

「機能や大きさ、中身が違うもの」(機種)に対する「立ち向かい方」(プログラム)が違う、ということ「だけ」が本質。

で、説明を API でしてること自体が阿呆である、てのはこれくらいにして、じゃぁ API って何さ? と。

そもそも「それ以前の問題として」、シンプルに英語としての interface の意味をちゃんと捕まえてないんだろうなぁ。「パソコン用語」だと思っちゃうと「インターフェイス」は深遠なものに感じちゃうのかもしらんが、例えば、地震を引き起こす断層面も「インターフェイス」言うたりするよ。英語の意味としてはだから単に「2つの何か断絶・層の境界面」があればそれをインターフェイスと言う。「接する面」ですよ、単に。

して、API とは。「アプリケーションプログラマにとっての境界面」てことなんだけれど、「境界面」という原義だと伝わりにくいんで、むしろ「受付窓口」を思い出すべし。これも「役所の役人たち」と「来客」という2層の境界面が受付窓口、だよね。一般には、「アプリケーション作成者にとってはインフラとなる便利機能群(ライブラリ)」の受付窓口のことを API と呼びならわす。

そして API の大事な側面として、「共通化」がある。「同じことをするものなら同じ顔をしていて欲しい」というわけだ。そのことによって、「機器をまたいだ同じプログラム記述が出来る」。これこそが API に求められる「大事な一側面」なわけだ。

「同じゲームでも、異なる機器で動作しているものは、全く異なるプログラムです。API が違うからなのです。」

こんな言い方したらインフラ開発者が泣いちゃうよ。当然あらゆる場所で API が違うのは事実だろうが、「出来るだけそうならないように」頑張っているインフラ担当の人々がいるのです。