こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Perl・Python・Rubyのどれがおすすめ?

小さいプログラムであればコンパイラ言語より簡単に作成できると聞いたので、インタプリタ言語を一つ習得しようと思っているのですが、Perl・Python・Rubyのうちどれを選ぼうか悩んでいます。

私は現在、情報系学科の大学生で、今までにPascal、CASLII、C、Perl、Javaを習いました。どれも課題をこなすために使った程度で、どれも1年以上継続して利用していません。

以下が、それぞれの言語に対する認識です。初心者の意見なので間違っていることが多いかもしれません。

[Perl]
-長所
・一度勉強しているため、勉強し始めやすい。
・習い始めるにあたり、一番初めに読もうと考えている「初めてのPerl 第5版」の評価が高い。
・参考となるものが多い。
-短所
・ソースが見にくいと聞いたことがある。

[Python]
-長所
・Perlより後にできた言語なので、Perlより洗練されてて高機能?
・Perlとは違い、同じことをするプログラムのソースは似ると聞いたことがあり、こっちの方が使い易い?
-短所
・Perl同様、Pythonを始めるなら一番最初に読もうと思う「初めてのPython 第3版」の訳が悪いという噂がある。また、「初めてのPerl」に比べると、ページ数が異常に多い。

Rubyについては聞いたことがある程度でほとんど知りません。

また、コンパイラ言語としてはC#を習得しようかと考えています。

以上から、Perl・Python・Rubyのうちどの言語を習得するのがいいと思いますか?個人的な意見でも構いません。理由を詳しく書いていただけると、選択の参考になるのでありがたいです。

できるだけたくさんの意見が聞きたいので、様々な回答をお願いします。

投稿日時 - 2009-12-09 19:32:47

QNo.5510315

困ってます

質問者が選んだベストアンサー

Perlの長所は、CPANという膨大なライブラリがあることと、ウェブ上に情報が多いことですね。逆に言うと、Python、Rubyに比べての長所はそれだけだと思います。

Pythonの長所はお書きの通りでしょう。日本語書籍は最近少し増えましたが、Perl/Rubyに比べるとまだ少ない。

Rubyの長所は、
>・Perlより後にできた言語なので、Perlより洗練されてて高機能?
と、オブジェクト指向を最初から考えてそれに徹底した言語ということでしょうか。
Railsというフレームワークがあるというのもありしたが、現在では他の言語でも類似のフレームワークが出てきている。
入門書としては「たのしいRuby」が定番です。 http://www.amazon.co.jp/dp/4797336617 入門した後は、「Ruby逆引きハンドブック」 http://www.amazon.co.jp/dp/4863540221 とか。あと「るびま」というウェブマガジンもあります。 http://jp.rubyist.net/magazine/
短所はPerl/Pythonに比べると全世界的には使われ所が少ない、例えば普通にLinuxをインストールするとPerl/Pythonは必須で入ることが多いと思いますが、Rubyは必須でない。あ、IPAが言語仕様のISO化を目指して動き出してますね。Perl/PythonはまだISO規格はないかと。http://sourceforge.jp/magazine/09/12/03/1045204

まとめると、PythonとRubyがライバルで、Perlはちょっと違う立ち位置ですね。元々オブジェクト指向と、後付けオブジェクト指向とか、JavaVM(Jython,JRuby)や.NET(IronPython,IronRuby)上で動くかどうかとか(Perlは動きません)。

また、どの言語も、現在多く使われているバージョンから次のバージョンに移行しようとしているところ(Perl6は未リリース)なので、最新バージョン(Python3,Ruby1.9)に対応した本やウェブ情報が少ないかと思います。

あと、日本語処理は、PerlやPythonだと事実上utf-8のみ。Rubyは日本発と言うこともあって、Shift_JISやEUC-JPにも対応しています。まあ、最初に全部utf-8に変換して処理すればいいので、文字コードが混在したデータを混在したまま処理したいとか言わなければ、あまりデメリットにはならないでしょう。

Rubyの情報が多くなってしまいましたが、PythonかRubyをお勧めします。

投稿日時 - 2009-12-09 22:00:10

お礼

やはり今から勉強するとなると、PerlよりもPythonやRubyがいいようですね。
日本語書籍が少ないのは言語を勉強するうえで致命的なので、Rubyにするのがよさそうですね。英語ができれば英語書籍でPythonを勉強するという手があるのかもしれませんが、英語は全くと言ってもいいほどできないので・・・。
紹介していただいた書籍は調べていましたが、「るびま」は知りませんでした。Rubyを選択することになったら参考にさせていただきます。
回答ありがとうございました。

投稿日時 - 2009-12-10 21:48:01

ANo.2

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

純粋に「プログラミング言語」として見ると、設計が新しい Ruby や Python に分がありますが、
「道具」として割り切るなら、Perl が強いと思います。

PerlにはCPANという非常に多彩なライブラリがありますので、「○○するプログラム」が欲しいというときに、「○○するライブラリ」がCPANに存在していて、プログラム本体は数行かせいぜい十数行だけ、といった簡単なことになる場合が多いです。

その代わり、「CPANから目的に見合ったライブラリを探す」という、プログラミングとは別のスキルが必要になりますし、
ドキュメントはほとんど英語ですから、ある程度の英語読解力は要ります。


あと、Ruby/Python/Perlは、どれも基本的にテキスト志向で、GUIなプログラムは不得手です。
GUIを扱うライブラリもあったりはしますが、どれもVisualC#なんかと比べると格段に貧弱。
一方Webアプリの分野では、「テキスト志向」の強みから、スクリプト言語がよく使われています。下手をすると、「PerlはCGI専用言語である」みたいな誤解が広まってるぐらいに…
そこで、スクリプト言語をWebアプリ用途で見た場合、まずは Ruby on Rails がおすすめです。「Ruby on Rails」は Ruby 用のとても強力なフレームワークで、まずはこれでWebアプリとはどういうものかを学習するのがいいかと。
下手にPerlでCGIを始めたりしたら、MVCごちゃまぜの良くない癖が染みついてしまいます。

投稿日時 - 2009-12-11 08:21:32

お礼

mtaka2さんの意見を含めた様々な意見を聞いて、インタプリタはまずRubyから勉強しようと決めました。
回答ありがとうございました。

投稿日時 - 2009-12-13 11:49:41

ANo.1

Javaの経験があるのであれば、Rubyが楽。

Perlは「モダンPerl」(オブジェクト指向)な組み方であれば良いけどね。

Pythonもオブジェクト指向でそれなりに需要はあるけど、日本ではあんまり流行ってない。

投稿日時 - 2009-12-09 21:43:51

お礼

Javaは本当にやったことがある程度なのでなんとも言えませんが、C#がJavaとかなり似ているので、C#の経験からもRubyがいいのかもしれませんね。

Pythonが日本で流行ってないというのは、書籍を見ているとよくわかる気がします。Pythonで作られた有名ソフトが多いのに不思議です。

回答ありがとうございました。

投稿日時 - 2009-12-10 21:42:30

あなたにオススメの質問