10月
05
2006

RubyとPython

表題のRubyとPythonというのは、コンピューター言語のことである。

どうして、コンピューターの言語がいろいろできたのか、歴史を紐解いてみ
よう。

コンピューターを操るにはいろいろな言語がある。
コンピューター自体は、CPUが1秒間に数十億回の単純な命令を下して動い
ているわけである。よくCPUの速度が3GHzとかいうのは、CPUは3G = 30億の
周波数で動いている。その周波数の周期で命令を実行する。命令の種類に
よってその時間が代わり、1番単純な命令は1周期で実行するからだ。

その命令は、32bitや64bitの2進法の数字で表される。
32bitは、0から40億までの数字に該当する。PentiumやCoreシリーズの命令
は1番短いものが8bitで長いものは32bitになる(間違っているかも)ので、
ちょっと複雑。

その数字では複雑なので、その数字をわかりやすいようにしたアセンブリ言
語というのがある。ほぼ機械語=アセンブリ言語といってもいい。

そのアセンブリ言語と呼ばれるもので、40年ほどまではプログラムが作られ
ていた。今でも機械に近い部分(ドライバーソフト)や家電製品や自動車の
チップではそのアセンブリ言語が使われる。

それでは、プログラム開発に時間がかかりきちんと動くかどうかもテストす
るのが大変だ。そこで、科学技術計算がしやすいフォートランや、ビジネス
向きで10進演算やデータベース操作しやすいCOBOLという言語が普及した。

一方、UNIXとともにC言語が生まれた。C言語は当初上級アセンブリ言語と呼
ばれ、アセンブリ言語と同じようにCPUを細かく操作できる言語であるが、
よりわかりやすいアルゴリズムを書ける言語というので普及した。UNIXや今
ではLinuxのほとんど99%ぐらいはC言語でかかれている。

その後も、やりたいことをどのようにコンピューターに実行させるかという
ことで言語の進化は続く。

Perlは、そのUNIXでC言語を使うまでもないが、一通りの操作を簡単に記述
できるように生まれた言語だ。バッチ処理と呼ばれるのは、シェル言語と言
われる端末操作に基づいた言語であったが、それをわかりやすくしたのが
Perlといっていい。

その後、インターネットでのWebの発達に伴って、Perlもバージョンアップ
を重ねた。しかし、過去のバージョンを引きずり複雑になりすぎている。

PHPはPerlから派生して、WebのHTMLを動的に表現する言語として特化してきた。

PythonやRubyは、Perlとは別の流れで生まれた言語だが、Perlのように簡単
に実現できるが、もっと人間にとってわかりやすくするために生まれたと
言ってもいい。

つまり、目的を実現するためにできた言語と言っていい。

おっといい忘れた。Javaがあった。
JavaはC言語やオブジェクト指向への拡張であるC++によって、開発するプロ
グラムの多くがポインターという直接メモリを操作する部分でトラブルが多
いということに気づいて、それを無くし言語体系をオブジェクト指向にする
ために生まれた言語だ。

バージョンアップを重ねとても便利な環境になっている。
もともとJavaの中間言語をつかっていたために、CやC++言語で作られたもの
に比べると遅かったが、コンパイル技術の発達のおかげでその差は減りつつ
あり、いまやCPUの速度が上がったので全くその速度の差や中間言語を使う
ためにメモリーをたくさん使うというデメリットも感じさせない。FreeMind
も全てJavaで作られているが、普通のアプリケーションと違いは感じない。

ただ、何でもできる有利なJavaだが、ライブラリが多くなりすぎて(3000を
超える)、自分のやりたいことを簡単に表現するということが難しい。

それは現実に、中小規模なWebアプリケーションの多くがPHPで作られてい
て、PyhtonやRubyが徐々に使われ始めていることからわかる。

最後に、RubyとPythonの違いだが、好みの問題である。
私のPCには両方ともインストールされていてどちらでもいいようにしてあ
る。現段階では、Pythonの方が早くわかりやすく、海外ではPythonが普及し
ている。

Rubyはまつもとゆきひろ氏という日本人が作ったように日本語には完全対応
していて、日本人ユーザーが多く、だんだんと普及しつつある。

また、Ruby on RailsというすばやくWebアプリケーションができるプラット
フォームができたということで成長の可能性が高い。それだけだ。

RubyのプログラマーはPythonのプログラムをすぐに書けるようになると思う
し、その逆も真である。またPerlだって使えるようになるだろうし、PHPも
同様だ。Javaだって難しくない。

他のプログラムを書くと文法的な間違いを犯したり、若干の機能の違いで勘
違いをするだろう。問題はそれぞれの言語が持つ、膨大なライブラリであ
る。そのライブラリや他の人が作ったプログラムが資産となって、その言語
を選ぶのかもしれない。

論理的な言葉を語るにはドイツ語、愛を語るにはフランス語、、、なんて具
合にできればいいのだが、普通の言葉もいろいろなコンピューター言語を扱
うのも現実的には難しいのだが。

Written by in: 楽天日記 | タグ: ,

コメントはまだありません »


コメント&トラックバック




トラックバック URL

コメントのRSS feed