• ベストアンサー

Perl, Ruby, Pythonどれを使えば良いか

ログの解析など、テキスト処理を中心とした処理を行いたいと考えております。これから始める場合、また手軽に使える処理系としては、Perl,Ruby,Pythonのどの言語を使用すべきでしょうか?それぞれのメリット、デメリットなどもあれば教えていただければと思います。

  • Perl
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

参考にでもなれば。 Perl メリット: 三者の中で最も古くから使われているものなので、 1. UNIXベースのシステムならまず間違いなく入っていることが期待できる。 (一部の商用システムを除く) 2. サンプルおよびモジュールがたくさんあるので 参考にできたり楽ができたりする 3. 多分三つの中で一番処理速度が早い 4. 参考書も一番出版されている(玉石混交ですが) デメリット: 1. 気をつけないと三ヶ月先の自分でも読めないスクリプトになってしまいがち 2. 歴史があることの裏返しで、ネット上にある情報の中には あまりにも古いものが残っていたりして 混乱することがあるかもしれない 3. 日本語テキストを扱うときのエンコーディング周りの ルールが複雑でわかりにくい Python: メリット: 1. Perlほどではないが、Linuxをつかったディストリビューションの パッケージ管理に使われるなどしているので 割と広く使われ始めている 2. Googleの公式言語(のひとつ)だぜぇと自慢できる(かもしれない) 3. Perlに比べると技巧的な記述がしづらいがそれによって読むのにはあまり苦労しないですむ 4. 公式マニュアルの日本語訳は質量ともに 素晴らしい デメリット 1. 日本語でかかれた本がまだ少ない(5冊くらい?) 2. ネット上でも日本語での情報は三者の中では多分一番少ない 3. ShiftJISやeuc-jpのテキストを処理するときに 一回Unicode化しなければいけないのでちょっと面倒 (でもこれはPerlも同じ) Ruby メリット 1. ShiftJISやeuc-jpのテキストを扱うには一番障害がない 2. ネット上の日本語での情報がそれなりにある 3.Perlには負けるかもしれないが書籍も結構出ている デメリット 1. インタプリタの処理速度が三者の中では多分一番遅い 2. ガーベジコレクタ絡みのバグにあたるとちょっとしんどい 3. Unicodeを(UTF-8以外で)扱うのはちょっと厳しい(不可能ではない) こんなところでしょうか。 わたしの見方ですので眉に唾つけて受け取ってください ;-)

lookingsun
質問者

お礼

ご回答ありがとうございました。 それぞれの処理系のメリット・デメリットを簡潔に説明していただき、 それぞれの特徴を理解するのに助かりました。 ポイントは日本語処理と書籍などの情報量の差、処理系の導入の しやすさになるような感じでしょうか? お陰様で大分、違いが明確になってきました。 本当にありがとうございました。

その他の回答 (1)

  • g_p_
  • ベストアンサー率53% (28/52)
回答No.1

こんにちは、回答が付かないみたいなので、あくまでも私の意見で。 ただ、Perl が好きだけど専門家じゃないという前提でお願いします。 >ログの解析など、テキスト処理を中心とした処理 私の知っているレベルでは、どの言語でもまず問題ないと思います。 >手軽に使える インタープリタであること自体が手軽だと思いますので、 これもどの言語でもまず問題ないと思いますが、 私の知っている少ない LINUX ディストリビューションには標準でPerlがインストールされています。 windows の場合 ActivePerl をインストールすることになりますが、 手軽な範囲だと思います。 >メリット、デメリット これはかなり難しい質問だと思いますが、Perlについてだけ… Perlの場合、”やり方は一つじゃない”って合言葉?があって、 それがメリットとも、デメリットともなっているようです。 RubyやPythonの様なオブジェクト指向な言語だと、 ある処理を行う場合にだいたい同じような書き方になって、 理解しやすく保守性が高くて良いと言われますし、 またオブジェクト指向によるコードの再利用しやすさも良い点だと思います。 Perlの場合、様々な書き方があるし、 オブジェクト指向プログラミングも書き方がいっぱいって感じで、 分かりにくくて保守性が悪いといわれがちな部分があると思います。 (Perlが好きな人はその辺が嫌いじゃないんだと思います。) でも、 ”簡単な事は簡単に、難しいことは少なくともできなくてはならない。” と言うPerlは、手軽にテキストの処理をしたいという使い方にはピッタリじゃないかなと思います。 また、豊富なモジュールもPerlのメリットだと思います。 最終的には、”お好みで”って事になっちゃうと思います。 なんか本当に参考にならない意見でしたね。

lookingsun
質問者

お礼

ご回答ありがとうございました。 >Perlは、手軽にテキストの処理をしたいという使い方にはピッタリじゃないかなと思います。 ツールとして使いたいので、使いたいときに手軽に使えるというのは 私にとっては大きなメリットになります。 豊富なモジュール群のあるというのはPerlは魅力的ですね。 ご意見を参考にさせていただきまして、私なりにもう少し調べて みたいと思います。ありがとうございました。

関連するQ&A

  • Perl, Ruby, Pythonいずれかの習得

    私は普段、 C, C++, nasm を使ってプログラミングしています。 最近(主にテキスト等の処理のために)スクリプト言語を習得しようと思いたち(C++のboostでもいいんだけど)、どれがいいかと悩んだ結果、タイトル通り Perl, Ruby, Python のどれかがいいという考えに至りました。 一つ一つの言語としてのメリット、デメリットはあると思いますが、この3つに関しては至るところで議論されていますし、五十歩百歩というのが結論のようです。 そこでこれらの言語をお使いの方々から現在 CやC++ を主に使っている人間が最も習得しやすいとおもわれる言語はこの3つのうちどれかについてご意見賜りたくおもいます。 よろしくお願いします。

  • 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のうちどの言語を習得するのがいいと思いますか?個人的な意見でも構いません。理由を詳しく書いていただけると、選択の参考になるのでありがたいです。 できるだけたくさんの意見が聞きたいので、様々な回答をお願いします。

  • PHPとかperlとかrubyとか

    質問させていただきます。 プログラミング言語を学ぼうと思っています。 ありがちな質問ですが、言語の特徴などを伺いたいと思います。 PHPはWEBに特化した言語だと聞きました。 あとperlはテキスト処理だけでどうも、、、って話も。 rubyはまだプログラムの話で出てこないことも多い。 やりたいことがあっての言語なのは承知しています。 WEBやデータベース、スタンドアロン?の簡単なソフト開発とか、いろいろやりたいことは多いです。 最初に目をつけた敷居が低いとされるWEBに特化したPHPはソフト開発には向かないらしいし、偏ったものもどうかと思ってます。 でも次の言語にJAVAを考えていて(JAVAは習得が難しいと聞きましたので)、PHPはJAVAに多少似ているってどっかのサイトで見ました。たぶん賛否両論はあるでしょうが。 別にWEBプログラムだからってperlでもrubyでもできるんですよね?だったら偏ったPHPよりperl、rubyの方が書いていて楽しいような気がします。rubyの需要はまだ少なそうですし、perlのテキスト処理だけってのもどうなんだろうと思いますが。そこらへんも聞きたいです。 簡単なゲームとか、顧客管理ソフトとか、WEBとかデータベースとか、できれば敷居が低く楽しめる言語があればと思ってます。

  • PythonとRubyどちらを選ぶべきでしょう?

    こんにちは。 今、PythonとRubyどちらをメインで学ぶべきかを考えており良かったら皆様の意見を参考にしたく思います。 現状 Ruby 7ヶ月 Python 1ヶ月 ほどの経験があります。(プログラミングはまだ初心者です。) Rubyの方が慣れているのですが、以下のような考えからPythonをメインで使った方がいいのか考えています。 以下、僕の考え 今後、Ruby on Railsがどんどん使われだして、現在のPHPのような形でRubyが使われるんじゃないか。 とすると、Rubyを使っても他の人と全く差別化出来ない取り替えの効いてしまうプログラマにしかなれないのでは。 Pythonの場合は、まだ日本でのユーザー数が少ないこともあり、Ruby,PHPに比べれば自分を差別化することにつなげられるのではないか。 とすれば、Pythonを使った方がいいか? ちなみにコレ以外に今思っていることとして、 Pythonはモジュールをインポートすることが前提とされているため、モジュールを効率的に利用する方法が学びやすい。そのため、プログラミングの学習には向いている。 PythonにもturbogearsやDjangoがあるので、Railsが無くてもいいのでは? Google app engineの登場で、Python学習に都合の良い場所が出来た。 といったことです。 これらの考え方について皆様はどのように思われますか?逆にPythonやRubyよりもCやPerlをやった方がいいんじゃないかといった意見もありましたら頂けると嬉しいです。よろしくお願いします。 (追記)ちなみに僕は今学生で、就職先ではきっとPHPを使うことになります。(ホントはあまり使いたくないのですが)

  • Pythonの利点は?

    こんにちは。高校生のぴぷりんです。 僕はJava/JavaScriptを中心にやっています。 オブジェクト指向の言語にはいろいろありますが、 そのなかでPythonなるものがあります。 PerlやRubyは書籍も多く知名度が高いのですが、 Pythonあまり見かけることがありません。 そこでPythonをやっている人に質問です! Pythonの利点・欠点を教えてください。

  • RubyとPython覚えるならどっち?

    PHPを覚えてきたので、次にRubyかPythonのどちらかを勉強しようと思っています。本当は両方勉強した方がいいんでしょうけど、一気に勉強するのは大変なので、どちらか片方をやりたいと思っています。いろんなサイトで比較をされていますが、RubyはPythonに比べて実行速度が遅いとか、世界的なシェアではPythonの方が上、しかしRubyは国産でマニュアルも沢山ある。うーん、どっちを選択したらいいか迷います。たぶん、どちらもやれることは余りかわらないような気がします。ただ実行速度は少し気になります。 使う目的は今は特に決まっていません。もう一つくらい言語を取得したいというくらいの気持ちです。よろしくお願いします!

  • Perl > Pyrhon || Ruby

     Perlユーザーですが、PythonかRubyに乗り換えようかと考えています。  あの有名なPerlのプログラミング哲学(怠慢、短気、傲慢)は好きなのですが、最近はPerlは怠慢が足りないのではないか(笑)と思ってきています。  無駄にカッコが多いこと、サブルーチンに参照渡しするときに「\」をいちいち要求する、変数の前に記号をつけないといけない、構文の最後にセミコロンが要求される、また日付データが配列ではなくてはいけない、などの不満によって段々と短気になってきました。  CPANモジュールも大好きだったのですが、モジュールの作者によって変数の名前のつけかたが違ったりするのが(大文字で始まるものや小文字で始まるものが混じっている)統一性がなかたりする点は、無駄に頭を使わなくてはいけない気がします。Pythonライブラリをざっくり見るかぎりですと、さすが禁欲僧と言われているだけあって  例外処理に柔軟性がある点もすばらしいです。  プログラミングをしたころはPerlの自由さが好きだったのですが、最近は整合性や読みやすさなどを重視するようになってしまって、その点はPythonやRubyのほうが優れている気がします。速度の点ではPerlに分があるようですが、人間が書く速度という点ではPythonやRubyのほうがよい気がします。  特に「怠慢」という点からコメントをいただけないでしょうか。  もしも、ますます「怠慢」ができるのであれば、必要となる勉強時間も惜しまないつもりです。

  • 日曜プログラマならRubyとPythonどちらを?

    本職ではない日曜プログラマならばRubyとPythonのどちらを学ぶべきでしょうか? 前提として、英語はできるのでそちらの情報も読み解けますが、やはり日本語の方が楽です。 また、何か(Webアプリとテキスト・ファイル処理)を作るにしても基本一人です。 コードを書くのが楽しいと聞くので、チームではないことからもRubyを選びたいのですが、 GoogleとAmazonはクラウドベースでPythonを使うと聞きます。実際にどのように利用してよいのか未勉強ですが、この点は見逃せないように思います。 現在のスキルはVBAとSQL程度です。RubyとPython両方学べばよいのでしょうが、日曜プログラマですのでそこまでの時間がありません。また、これで食べていこうとかいうのではありません。 アドバイスよろしくお願いいたします。

    • ベストアンサー
    • Ruby
  • Ruby ,Python,Pearl について

    Ruby ,Python,Pearl この中でひとつだけ覚えるとします。 覚えていない二つの言語のソースコードでも読むのに一番苦にならない言語はどれですか。 興味のある参考書はだいたいこの3つの言語のどれかで書かれているのですがそれは本によって異なってます。 ですので、まず始めにどの言語を学べばよいか教えていただけないでしょうか。 それとも3者とも毛色が全く違う言語なのでしょうか? よろしくお願い致します。

  • PythonかRubyにするか悩んでいます.

    このようなやりとりは調べている中でたくさんありましたが, 未だに自分の中で決着がつかずにいます. みなさんの力を借りれればと思います. 現在のPC環境は Windows7 64bit に仮想でUbuntu12.04 を導入しています. Ubuntu上でEmacsを利用し,言語処理と画像出力を考えています. 今まではC言語を勉強してきました. 後はJava,Basic,Lispをかじった程度です. (自分自身ではプログラムに未だ苦手意識があります) 音声認識等も専門なので,のちにここで学んだ知識を生かせれば・・と横着なことを考えています. PythonまたはRuby,どちらの言語の方が良いでしょうか. もしこの二つに限らずおすすめの方法がありましたら教えてください. よろしくお願いします.