読者です 読者をやめる 読者になる 読者になる

或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

PerlとPython学び易さ比較 #Python #Perl

実際にどっちもやってみればわかると思うけど、どっちもかじってみたものとしての意見。

開発環境

Perlは上級者向け

Perlは開発環境構築がちょっと知識がいるかな。プラットフォームごとの開発環境、実行環境とか。

Pythonは初級者~上級者向け

PythonはWinユーザーでも、インストーラを実行すればすぐに実行出来る環境が整う。プラットフォームに依存しないインタープリタと、IDLEというIDEが敷居を低くしてくれている。

書籍

プログラミング関連の書籍は大きく分けて、4つくらいに分類出来る。

  • 入門書、基本書
  • クックブック
  • リファレンス
  • 応用

それぞれ簡単ながら、挙げて見る。

Perl

入門書、基本書

初めてのPerl 第6版

初めてのPerl 第6版

続・初めてのPerl 改訂版

続・初めてのPerl 改訂版

プログラミングPerl〈VOLUME1〉

プログラミングPerl〈VOLUME1〉

プログラミングPerl〈VOLUME2〉

プログラミングPerl〈VOLUME2〉

ご覧のように、シリーズは分冊になっていて、同じオライリーからでも2種類ほど出ている。それぞれ良い書籍なんだが、分量が多すぎ。多様なスタイルを身につけたり、多くの知識を身につけるには良いが、初学者は選び方に迷うだろう。。。

クックブック

Perlクックブック〈VOLUME1〉

Perlクックブック〈VOLUME1〉

Perlクックブック〈VOLUME2〉

Perlクックブック〈VOLUME2〉

これもものすごい分量。ある問題を解決するのに、解決方法は一つである必要はない。やり方はひとつではないというモットーがあるPerlなら、やり方の多様性は推奨される。が、書籍にすると分量が多すぎる。そして、定石はどれ?というところで悩んでしまう。どれでも解決出来ることは出来るんだけど、アプリケーション全体として、トータルでどうしていいか、多様過ぎる。

リファレンス

Perl逆引きクイックリファレンス―Perl5.8対応

Perl逆引きクイックリファレンス―Perl5.8対応

和書でPerlのリファレンスは多くは無い。洋書だとちらほらあるんだけれども。Perlの場合は、リファレンスの重要性は低い。なぜなら、標準モジュールっていうものが少ないから・・・。CPANというサードパーティモジュールを管理する仕組みがある。Perlでプログラムを組む際は、CPANのお世話になることが多い。その場合、実際にインストールしてみて、動きを確認してだとか、粒度のまちまちなドキュメントを読む必要がある。要は、まともなリファレンスは無いと言っても過言ではない。

応用

Perl Hacks ―プロが教えるテクニック & ツール101選

Perl Hacks ―プロが教えるテクニック & ツール101選

Perlデータマンジング―データ加工のテクニック集

Perlデータマンジング―データ加工のテクニック集

数多くありすぎるので、省略。入門書、基本書、クックブックの類が多いことからもわかるように、応用にも多数の書籍がある。自分が何をやりたいのかに合わせて購入すると良いとは思う。が、これだけ数が豊富でいろいろ出来ると、目的意識がある人でないと選びづらいのではないか?なので、初学者が学びやすいとは決して言えない。

Python

入門書、基本書

初めてのPython 第3版

初めてのPython 第3版

基本的な言語仕様や、使い方はこれ一冊で十分。決して初学者向けとは言えないが、覚える量としてはPerlと比較すれば、断然少なくて済む。

クックブック

Python クックブック 第2版

Python クックブック 第2版

クックブックも、これで十分な量があるかと言われるとまた微妙だが、クックの類は調べればキリがないため、これとネット上の情報だけで事足りるのではないか?それはPerlでも同じ条件。やはり、知識の量がコンパクトで、覚えやすいんではないかと思う。

リファレンス

Python ポケットリファレンス (Pocket Reference)

Python ポケットリファレンス (Pocket Reference)

けっこうまともなリファレンス。Pythonの標準モジュールが上手い具合にまとまっている。PythonにもCPANと似たような仕組みはあるが、Pythonの場合は、基本的には組み込みモジュールと、パッケージ化された標準モジュールでプログラムを組む。その点で、統一感があって保守性の高い、粒度の整ったコードが書かれるような仕様になっている。

まとめ

好みの問題にはなってしまうが、PerlPythonかで言うと、Pythonのほうが学びやすいと思う。私の場合C/C++などでのプログラミング経験が3年くらいあってPerlを学び始めたが、それでもPerlの勉強をしていると消化不良になった。覚える量で言うと、C/C++も非常にコンパクトで、ミニマムな設計なので、Perlのような多様性のあるプログラミング言語を学ぶには、免疫が無かったからだろう。いずれ、Perlの良さもわかってくるかもしれないが、Pythonのほうが肌に合っているかなと思っている。

あくまでも、私見ですよ。