SSブログ

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

【 言語が違う その2 】

 

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

GoScalaPythonPHPKotlinTypescriptRRubySwiftPerlC++Javascript

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

・・・・・・

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

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

・・・・・・

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

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

・・・・・・

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

・・・・・・

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

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

・・・・・・

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

・・・・・・

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

・・・・・・

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

・・・・・・

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

・・・・・・

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

・・・・・・

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


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

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

【 言語が違う その1 】

 

私が学校に通っていた頃ですから、もう40年も前のことですが、ある人文科学の授業で、先生が突然こんなことを言われました。

「そもそも言語とは、その国、地域、民族の歴史・思想・文化・生活等を背景にしたもので、複雑で奥深いものだ。もっと言えば、その民族固有の財産あるいは民族の文化そのものとも言うべきものだ。それなのに、最近は電子計算機の指示命令のコード体系ごときを『言語』と呼ぶ人がいる。語彙と言うほどでもないわずかな単語を羅列するプログラムを言語と呼ぶのは不遜で、いかにも大袈裟だ。電子計算機を開発する人のおごりが感じられる」

・・・・・・

その授業を聞いていたのは工学部の学生で、コンピューターについて学び始めた人も多く混じっていました。聞いていた人は「実際には、『言語』と言っても、日本人が名付けた訳ではなく、Languageを直訳しただけなのに・・」と思っていたはずです。

・・・・・・

学生の一人が手を挙げて質問します。

「先生のおっしゃるのは分かりますが、先生は具体的にどのプログラミング言語を指して言われるのでしょうか? FORTRANですか?COBOLですか?ALGOLですか?先生は貶されましたが、私にとっては、プログラミングは決して易しいものではなく、研究する価値は大いにあると考えるのですが・・・」

・・・・・・

すると先生、少し慌てて「いや、特にどのプログラミング言語という訳ではなく、一般論として述べたものだ」とごまかしましたが、学生の多くは見破っていました。人文科学の先生は、コンピューターのことをほとんど知らずに、プログラミング言語を揶揄したのだと。

・・・・・・

その当時、私はFORTRANを学び始めたばかりでした。01を並べるだけのマシン語や、それを整理したアセンブラ語は、コンピューターを専門に学ぶ人のためのもので、コンピューターを使うだけの学生には、英語に近い表記を用いるソースプログラムのFORTRANが適していたからです。

・・・・・・

それにしても、FORTRANにしても、COBOLALGOLにしても、PL/Iにしても古い名前です。今は・・・使われていないのかな? 私がふとそう思ったのは、息子達とパソコンの話をした時です。 私の息子たちが研究に使うために、プログラミング言語を学ぶというので、何を学ぶのか尋ねるとPythonを勉強すると言うのです。

・・・・・・

「何だね?そのパイソンというのは?お父さんはスラップスティックのモンティ・パイソンしか知らないぞ」とボケの積りで答えると、息子は真面目な顔で「そうだよ。開発者がモンティ・パイソンのファンで、開発したプログラム言語にPythonと名付けたのさ」

・・・・・・

「科学技術計算ならFORTRANは使わないのかね?」

FORTRAN?知らないなぁ。それは何?」

やれやれ、どうやら「降る雪や昭和も遠くなりにけり」です。

 

以下、次号


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

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