ここから本文です

プログラミング言語を学ぼうと思います。 Perl PHP Ruby Python 等いろいろありま...

質問者

kirino54さん

2009/12/2111:27:46

プログラミング言語を学ぼうと思います。
Perl PHP Ruby Python 等いろいろありますが、違いがよく分かりません。
それぞれの特徴、得意なこと、学びやすさ、流行、汎用性、歴史、などを教えてください。

補足lotomangiatore様
ありがとうございます。
ただ質問に明記していないのですが、そのあたりで得られる情報は既に踏まえておりますので、実際に利用している方々からの活きた意見を参考にしたかったのが真意です。
与えられた環境によって状況が変化することももちろん承知しております。
数種の言語を、教育ではなく業務ベースで併用しておられる方は少ないと思いますが、引き続きよろしくお願いいたします。

閲覧数:
9,880
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

グレード

知恵袋マスター

abiko_tetuさん

編集あり2009/12/2505:39:45

[前置き]


Perl や PHP は、高機能なので、スクリプト言語関係では、どちらかを使えば十分だと思います。
よって、業務ベースでの利用での質問と言う事ですが、Perl や PHP のベテランのプログラマーは、まだ、Ruby や Python に手を出していない人も多い気がします。
逆にRuby や Python は、新規に始められる方が多い気がします。
(全てという意味では無く、もちろん、新規に始めるのに、Perl や PHP を利用する方いれば、4言語を使いこなせるベテランもいると思います)


ちなみに私は、Windows系のサーバーには、ASP.NETを使い、UNIX系のサーバーでは、JSPを使っています。
JSP や ASP.NET も、高機能ですので、Perl や PHP には手を出していません(面白そうな記事を見付けたら、試してみる程度)。
よって、Perl 関連を新規に始める者として、 Python や Ruby に興味があり、 Python は、実用レベルで徐々に開始しています。



よって、Python を中心にして、質問の補足の件を回答します。

その前に、私が JSP や ASP.NET を利用している理由を簡単に説明します。
ASP.NET は、マイクロソフト系開発環境での VC++.NET や VC♯.NET や VB.NET と組み合わせるのに、相性が良いからです。
JSP は、Java との相性が良いからです。





[ < Perl / PHP > と < Python / Ruby > との違いについて ]


Python や Ruby は、Perl に影響されている言語で、 Perl にオブジェクト指向を取り入れた言語です。
object を訳すと対象物です。
オブジェクト指向を簡単に説明すると、プログラムをグループ化するという手法です。
オブジェクト指向登場以前から、関数(メソッド)と言うグループがありましたが、オブジェクト指向のクラスというグループは、より人間の考え方に近いグループ化です。
そもそもプログラミング言語は、マシンと人間の中間の位置にある言語ですが、オブジェクト指向を取り入れることによって、人間の考え方に近いプログラミングを可能にします。
この事によって、プログラミングをやり易くするのはもちろん、プログラム部品の再利用にも役立っています。


オブジェクト指向は、スクリプト関係よりも、非スクリプトで活用されています。
C言語に、オブジェクト指向関連の機能を付け足したC++という言語が誕生。
C++以降に誕生したJavaやC♯等の各種言語もオブジェクト指向を取り入れています。
VBも、VB6.0までは、「オブジェクト指向も使える」という程度でしたが、VB.NET以降は、完全にオブジェクト指向対応です。

スクリプトは、現時点では、オブジェクト指向はそれ程重要ではありません。
しかし、今後は、ネット経由で、オブジェクト指向を取り入れた様々な言語とリンクするのに、スクリプトもオブジェクト指向が重要になると思います。



[Python]


Pythonは、簡単で分かりやすいと耳にしていました。
実際に使ってみると、Pythonは、(比較的)新しい言語で、過去から引きずっている仕様が無いせいか、綺麗にまとまった言語仕様という印象を受けました。
そういった特長から、Google や Yahoo! では、Pythonが採用されました。
Google や Yahoo! では、PythonでAPI(自身の機能を外部公開した機能群)を公開しています。

自分もこの辺が興味があって、Pythonに接するようになりました。
マクロ言語を備え付ける必要のあるアプリの開発の際に、独自言語にするよりも、Pythonを使ったほうが良いと思ったからです。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1232070252

上記参照先に書きました通り、本家の開発環境だけではなく、マイクロソフトの開発環境や IBMの開発環境でも利用可能なのも魅力的です。





[動的言語]

Python や Ruby の特長は、オブジェクト指向だけではありません。
動的言語という特長があります。

http://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E8%A8%80%E8%AA%9E

現在大半のプログラムが、コンパイル時(プログラムをプログラマーが作成した時)に、処理構成が決まります。
しかし、実行時にユーザーの操作内容に応じて、柔軟に処理構成が決めたい事もあります。
それが、動的処理といいます。
他の多くの言語でも、動的な機能がありますが、Python や Ruby は、言語その物として、動的処理に対応しています。
ところで、将来の未来SF的なシステムは、必要なPGが必要に応じて、次から次へと自動起動されるイメージです。
そういったシステムに近付くには、Python や Ruby といった言語が活躍するのだと思います。

質問した人からのコメント

2009/12/28 00:17:40

最初に回答をいただいた方が、非常に残念な方でしたので助かりました。
社会での経験に基づいた意見で、たいへん参考になりました。

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する