天動説と地動説(サーバーとクライアント)

例えば弁護士の世界でも法律の解釈だとか何とかでいろいろな考え方があってその中でも誰が優秀なんだかわからないっていう世界観ってあるんだと思うんですが、ITの世界でもそういうのは非常によくあるんです。ものすごい優秀なお馬鹿さんがいたりものすごくバカに見えるんだけどすごく優秀な人がいたり。そんでもって我々はある種の言語で会話をするのだけど、ITのエンジニアは概ね3種類の言葉を使うことになるんです。日本語と英語とプログラム言語です。日本語は業務で通常使う日本語ですが専門用語が多い。といってもその中にいる人間にとっては日常茶飯事で特に専門とも思っていない。変数からはじまって、配列だの連想配列だのハッシュだの正規表現だの、クラスだのオブジェクトだのプロパティーだのメソッドだのそういうのです。さすがに最近はポインタとか言う人いなくなりました。次に英語です。最新のドキュメントは英語ばっかりなので英語をかなり読みます。面倒なときはオライリーを読みますが英語の翻訳なのでかなり特殊な日本語になっています。最後にプログラムソースそのものを読みます。これは日本語でも英語でもなくある約束事に基づいた普遍的な言葉なので語弊を恐れずにいえば、プログラマーはここで会話します。if文が追加されていれば「おめー例外処理ここ抜けてるじゃねーか。」というメッセージだし、適当にその場をお茶を濁したコードを加筆すれば、後からアブストラクトクラスから引っ張ってきたメソッドに書き換えられていたりして「おめー適当に書いてんじゃねーよ。こういうことしているとバグるんですよ。」と言われているようなものだし。そういう会話がかわされるわけですが、全体としてとても難しい言葉がいくつかあります。それはサーバーとクライアントという言葉です。これ、プログラマーでもネットワークエンジニアでもそうだけど、わかる人にはわかる、わからない人にはわからない不思議な言葉です。そしてこれは何度説明してもわからないんです。
「サーバー」は単に供給側です。クライアントは単に「依頼人」です。依頼人が供給側にアクセスして何らかの情報を貰い受けるというだけです。たったこれだけのことなのですが、この事実がなかなか浸透しない。ものすごい優秀な方々がクライアントとは自分のPCだと思っているわけです。
優秀なプログラマーには自分のPCで作成し、FTPでサーバーにアップロードするというだけの方々がたくさんいます。こういう方々でもものすごい精巧なプログラムを書ける人がいるんです。しかし自分のPCをクライアントでアプロードする公開WEBサーバーがサーバーではお粗末過ぎます。「サーバー」は単に供給側です。クライアントは単に「依頼人」です。ここが難しいところです。
私自身、WEBコンテンツ(といえばいいのかWEBシステムといえばいいのか)は複雑きわまりなくなってくる傾向があるので、かならずProductサーバーとdevelopサーバーに分けます。これやらないと結構たいへんなことになる。ここでは便宜的にサーバーと言いましたが、実際は本番(product)環境と開発(develop)環境というだけの話しです。実際はどっちがサーバーでどっちがクライアントになるのかは、その時の動作によって決定するのです。ここが難しい。
開発環境で作ったものを本番環境へ転送する時、開発サーバーが共有側(つまりサーバー)で本番環境は受ける側(つまりクライアント)になります。実際にそういう仕組になるわけで、サーバーとサーバーが某の行動するのはおかしいことになります。勿論開発環境と本番環境の同期が何らかの理由でとれなくなってくると本番環境を最新のデータとして本番環境がサーバーとしてクライアントの開発サーバーに全データを転送して同期をかけるときもあります。このときはサーバーとクライアントの役目は逆転します。ここがわからないとGitとか使えない。リポジトリの置き場所はローカルの個人PCではなく、Linuxサーバー(ここでは便宜的に各種サーバー機能をもった外部ホストのコンピューター)に置くこともあるわけです。サーバーなのにクライアント環境になる!!ここはほんとに難しい。心病んだ方が精神カウンセリングに出向く際、病んだ方々はクライアントでお話を聞いてくれるのはカンセラーですが、もし仮にカウンセラーが心病んだら、同様にクライアントとしてもっと経験豊かなカウンセラーにお話しにいくことだってあるわけで、そのときクライアントの位置は変化するわけですよ。カウンセラーだからクライアントにならないってことはない。
たぶん、ここらのことがわからない人は相対性理論とかもわからないんだろうなと。きっとコペルニクスの地動説を否定するのかもわからないです。太陽が固定だと解釈が非常に楽だし簡単だし。たぶんその時代だって天動説を信じていた優秀な方々もいっぱいいたのだろうなと思います。でも真実とは違うのですよ。それは。