- ベストアンサー
Perl, Ruby, Pythonどれを使えば良いか
ログの解析など、テキスト処理を中心とした処理を行いたいと考えております。これから始める場合、また手軽に使える処理系としては、Perl,Ruby,Pythonのどの言語を使用すべきでしょうか?それぞれのメリット、デメリットなどもあれば教えていただければと思います。
- みんなの回答 (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以外で)扱うのはちょっと厳しい(不可能ではない) こんなところでしょうか。 わたしの見方ですので眉に唾つけて受け取ってください ;-)
その他の回答 (1)
- g_p_
- ベストアンサー率53% (28/52)
こんにちは、回答が付かないみたいなので、あくまでも私の意見で。 ただ、Perl が好きだけど専門家じゃないという前提でお願いします。 >ログの解析など、テキスト処理を中心とした処理 私の知っているレベルでは、どの言語でもまず問題ないと思います。 >手軽に使える インタープリタであること自体が手軽だと思いますので、 これもどの言語でもまず問題ないと思いますが、 私の知っている少ない LINUX ディストリビューションには標準でPerlがインストールされています。 windows の場合 ActivePerl をインストールすることになりますが、 手軽な範囲だと思います。 >メリット、デメリット これはかなり難しい質問だと思いますが、Perlについてだけ… Perlの場合、”やり方は一つじゃない”って合言葉?があって、 それがメリットとも、デメリットともなっているようです。 RubyやPythonの様なオブジェクト指向な言語だと、 ある処理を行う場合にだいたい同じような書き方になって、 理解しやすく保守性が高くて良いと言われますし、 またオブジェクト指向によるコードの再利用しやすさも良い点だと思います。 Perlの場合、様々な書き方があるし、 オブジェクト指向プログラミングも書き方がいっぱいって感じで、 分かりにくくて保守性が悪いといわれがちな部分があると思います。 (Perlが好きな人はその辺が嫌いじゃないんだと思います。) でも、 ”簡単な事は簡単に、難しいことは少なくともできなくてはならない。” と言うPerlは、手軽にテキストの処理をしたいという使い方にはピッタリじゃないかなと思います。 また、豊富なモジュールもPerlのメリットだと思います。 最終的には、”お好みで”って事になっちゃうと思います。 なんか本当に参考にならない意見でしたね。
お礼
ご回答ありがとうございました。 >Perlは、手軽にテキストの処理をしたいという使い方にはピッタリじゃないかなと思います。 ツールとして使いたいので、使いたいときに手軽に使えるというのは 私にとっては大きなメリットになります。 豊富なモジュール群のあるというのはPerlは魅力的ですね。 ご意見を参考にさせていただきまして、私なりにもう少し調べて みたいと思います。ありがとうございました。
お礼
ご回答ありがとうございました。 それぞれの処理系のメリット・デメリットを簡潔に説明していただき、 それぞれの特徴を理解するのに助かりました。 ポイントは日本語処理と書籍などの情報量の差、処理系の導入の しやすさになるような感じでしょうか? お陰様で大分、違いが明確になってきました。 本当にありがとうございました。