小さいプログラムであればコンパイラ言語より簡単に作成できると聞いたので、インタプリタ言語を一つ習得しようと思っているのですが、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のうちどの言語を習得するのがいいと思いますか?個人的な意見でも構いません。理由を詳しく書いていただけると、選択の参考になるのでありがたいです。
できるだけたくさんの意見が聞きたいので、様々な回答をお願いします。
No.2ベストアンサー
- 回答日時:
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をお勧めします。
やはり今から勉強するとなると、PerlよりもPythonやRubyがいいようですね。
日本語書籍が少ないのは言語を勉強するうえで致命的なので、Rubyにするのがよさそうですね。英語ができれば英語書籍でPythonを勉強するという手があるのかもしれませんが、英語は全くと言ってもいいほどできないので・・・。
紹介していただいた書籍は調べていましたが、「るびま」は知りませんでした。Rubyを選択することになったら参考にさせていただきます。
回答ありがとうございました。
No.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ごちゃまぜの良くない癖が染みついてしまいます。
mtaka2さんの意見を含めた様々な意見を聞いて、インタプリタはまずRubyから勉強しようと決めました。
回答ありがとうございました。
No.1
- 回答日時:
Javaの経験があるのであれば、Rubyが楽。
Perlは「モダンPerl」(オブジェクト指向)な組み方であれば良いけどね。
Pythonもオブジェクト指向でそれなりに需要はあるけど、日本ではあんまり流行ってない。
Javaは本当にやったことがある程度なのでなんとも言えませんが、C#がJavaとかなり似ているので、C#の経験からもRubyがいいのかもしれませんね。
Pythonが日本で流行ってないというのは、書籍を見ているとよくわかる気がします。Pythonで作られた有名ソフトが多いのに不思議です。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) HTMLを組み込むことができない言語 3 2022/05/21 10:05
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- 大学受験 大学受験 辛い 英語 読めない こんにちは。 現在大学受験をしてる者です。 色々あり浪人なんですけど 11 2022/09/06 12:03
- 予備校・塾・家庭教師 武田塾について。通信制高校3年です。 中学から含め全く勉強しませんでした。 高校は母も病気気味だった 2 2022/08/11 20:46
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
- Ruby プログラミング講師はまだ需要ありますでしょうか? 1 2022/11/07 19:43
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
質問失礼します。 プログラム言...
-
Pythonって何を意識した言語な...
-
C言語とhtmlの違いを どな...
-
最新のプログラム言語を学ぶに...
-
COBOLで文字タイプを数字...
-
プログラムに書かれる"%"記号の...
-
TO_CHARで小数点以下がある場合...
-
C++ ってなんて読む?
-
COBOLでのNOT = の AND条件
-
プログラミング言語の制作方法...
-
C#とC++のざっくりとした違いを...
-
UNITY Float型の接尾辞fって
-
VBSとWSHは読み方が違うだけで...
-
Solve()とは、なんですか?
-
C++における継続行
-
Excelの開発言語ってなんですか?
-
C言語って古いですか?
-
Int('1234') で、strをかんたん...
-
アプリ開発について 初心者です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
質問失礼します。 プログラム言...
-
最新のプログラム言語を学ぶに...
-
COBOLでのNOT = の AND条件
-
C言語って古いですか?
-
rpa化する言語としてら何があり...
-
UNITY Float型の接尾辞fって
-
TO_CHARで小数点以下がある場合...
-
プログラミング言語の制作方法...
-
COBOLで文字タイプを数字...
-
プログラムに書かれる"%"記号の...
-
C言語とhtmlの違いを どな...
-
Int('1234') で、strをかんたん...
-
C++ ってなんて読む?
-
Excel VBAで文字化けする (英語...
-
C言語 解答について。
-
VBSでDim、Private、Publicの違い
-
Excelの開発言語ってなんですか?
-
C# でソフト開発をした事のある...
-
C#とC++のざっくりとした違いを...
おすすめ情報