ここから本文です

解決済みのQ&A

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

kirino54さん

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

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

違反報告

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

abiko_tetuさん

[前置き]


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/25 05:39:45
  • 回答日時:2009/12/25 05:27:36

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

  • 最初に回答をいただいた方が、非常に残念な方でしたので助かりました。
    社会での経験に基づいた意見で、たいへん参考になりました。
  • コメント日時:2009/12/28 00:17:40

グレード

このQ&Aはまだナイス!されていません。
役に立ったと思った回答に、ナイス!してみよう!

あなたにおすすめの解決済みの質問

プログラミング言語現在、プログラムの勉強をしている高校一年生です。 c言語 c++ java basic この四つ...
オブジェクト指向に概念は不要なのか?最近いろいろなスレッドを見て疑問に思うのですが、概念モデルを否...
vbなどのオブジェクト指向の説明についてvbなどにある、オブジェクト指向という考え方を初心者に説明す...

あなたにおすすめの知恵ノート

[ASP.NET]SendMailの使えない環境でメールを送信する
asp.net(VB) 変数を使ってコントロールを指定する
VB.NET にて、フォームをスクリーンサイズに合わせてスケーリング <ステップ2>

知恵コレに追加する

閉じる

知恵コレクションをするID/ニックネームを選択し、「追加する」ボタンを押してください。
※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

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