SSブログ

【 言語が違う その2 】 [コンピューター]

【 言語が違う その2 】

 

調べてみれば、最近はいろいろなプログラミング言語が百花繚乱のごとく存在します。

GoScalaPythonPHPKotlinTypescriptRRubySwiftPerlC++Javascript

この中で私が聞いたことがあるのは、CC++)ぐらいです。Rubyは日本人の天才が開発したもので、開発者は英雄視されているそうです。

・・・・・・

もはやVisual BASICTRONも過去の遺物(死語の世界)に入ってしまったようです。

ここで半可通の知ったかぶりを許して頂ければ、今から50年近く前に開発された言語smalltalkをきっかけに、オブジェクト指向という概念ができ、今から四半世紀ぐらい前からオブジェクト指向言語が次々と登場し、プログラム言語の世界はガラリと変化したようです。前述したPythonPHPC++も、オブジェクト指向言語です。ではオブジェクト指向とは何か?と言われると答えに窮します。

・・・・・・

ものの本には、データとそのデータを扱う手続きを一緒にして、ひとつのオブジェクトと考えるプログラミングの考え方・・と書かれていますが、自分でプログラムを書かない私にはよくわかりません。

具体的には、前に作ったオブジェクトをそのまま使えば、プログラミングの手間が省けるとか、データを変更した場合の影響範囲がオブジェクト内に限られるので、修正がしやすいとか、プログラムの行数が減るという具合に、プログラムを作成する人にありがたい特長を持った言語です。しかし問題もあります。

・・・・・・

今はオブジェクト指向言語が、爆発的に増えてしまいました。多くのプログラマーは自分の専門の言語が決まっていますから、プログラム言語毎に技術者を集めなければなりません。この為、膨大なプログラマーが必要になります。

・・・・・・

もともと、ソフトウェア開発の工数が大きくなりすぎる危機を回避する救世主だったはずのオブジェクト指向言語ですが、これでは皮肉なことに人手不足が増すばかりです。

人々が違う言葉を話すようになって、計画が頓挫したのは、あのバベルの塔ですが、プログラム作成も、早晩バベルの塔になりそうです。

・・・・・・

もう一つの問題は、オブジェクト指向以前のプログラム言語を学んだ人と、オブジェクト指向以降の言語を学んだ人の間で一種の断絶ができてしまうことです。オブジェクト指向以前にも、プログラムのモジュール化は重要な概念として存在し、FORTRANのサブルーチンもその一つと言えます。プログラムのクラス化や階層化ももちろんありました。しかし、今のオブジェクト指向とは別の存在です。FORTRANのサブルーチンはStatic Typingでデータの型式が厳しく規定されていましたが、PythonDynamic Typingで、コンパイル段階でデータの型式を厳密に決める必要はないようです。かなり感覚が違います。このジェネレーションギャップゆえに、もはや、コンピューターについて、昭和人間の私は愚息たちと語り合う事ができなくなりました。

・・・・・・

もっとも、親子間のコミュニケーションが断絶するのは、プログラム言語の問題だけではありませんが・・・。

・・・・・・

今、改めてコミュニケーションの難しさを感じるのはお隣の国の政府です。火器管制レーダーの照射という、これは悪戯レベルではない一種の犯罪についての、日本と韓国のやりとりを見ていると、両国間のコミュニケーションの難しさを改めて感じます。

・・・・・・

朝鮮語と日本語は似ている部分もありますが、言語の構造がそもそも違います。残念ながら日本語と類似した構造の言語はほとんどありません。かつて日本語はウラル・アルタイ語族とされ、中央アジアに類似した言語があるとされましたが、今は否定されているようです。

・・・・・・

いや、文法や発音などの技術的な問題以前に、絶対に非を認めない文化、もめごとがあれば相手を糾弾して謝罪を求める文化とは話が噛み合いません。プロトコルの違いと言いますが、これはもう言語が違う・・ということになります。FORTRANしか知らない私がJavascriptPythonの話を聞くようなものですが、もっと問題は深刻です。

・・・・・・

「やはり、言語とはその民族のすべてが反映されたもので複雑で難しいのさ」と40年前の教室で先生がニヤリと笑ったような気がしました。


nice!(1)  コメント(0) 

nice! 1

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。