やり方は一つじゃない - TMTOWTDI
Perlのスローガンに「やり方は一つじゃない」というものがあります。
英語では
There's More Than One Way To Do It.
と書き「TMTOWTDI」と略されることがあります。
Perlは多様性に寛容な言語
Perlの「やり方は一つじゃない」というスローガンは「良い方法はひとつ」という考え方のアンチテーゼです。
複数人の人がいて、複数人のチームがあったときに、良い方法を探したときに、その良い方法は、複数ある。
たった一つの良い方法ではなくって、複数の良いやり方がある。
複数の良いやり方に対して、どちらも認めてしまおう。複数の良いやり方の多様性を認めよう。
そういう考え方です。
Perlは、言語自体が、多様性に対して寛容な言語です。
多様性は尊重すべき価値なのだろうか?
多様性は、尊重すべき価値なのでしょうか?
プロジェクトにおいては、目標のために、画一性を定めて、人を管理して、生産効率を徹底的に高めたほうがよいのではないでしょうか。
そういう考え方が、一方にはあります。
しかし、一方で、この考え方は、格差、差別、階級を生み出してきた考え方でもあります。
ひとつの最悪の例は、一方の人種が、一方の人種を、物のように所有する奴隷貿易です。
一方の人種が富も権力も独占して、他方の人種を、奴隷として扱います。
売られた奴隷は、船に詰められ、自分の国から、違う国へ産業の担い手として、移動させられます。
人類は、最初から愚かだったのでしょうか?
いいえ、そうではありません。最初から差別を生み出そうと企画する人々がいるのではなく、多くの人々の誤った判断から始まって、ある段階を超えると、そこから戻ることができなくなります。
歴史を後から振り返って、間違いだったといえる人がたくさんいても、その時代に飲み込まれている間は、倫理観が働きません。
また、言語多様性と生物多様性は、人類の善意によって、急速に失われてきています。
一つの防衛策は、多様性、そのものに対して、価値を見出すということ考え方です。
Perlの「やり方は一つじゃない」というスローガンは、多様性自体に対して価値を見出すという点で、優れたスローガンです。
「やり方は一つじゃない」というPerlのスローガンは誤解されてきた
「やり方は一つじゃない」というPerlのスローガンは、もっとも誤解されてきたPerlの考え方の一つです。
Perlの多様性を尊重する優れた考え方は
「Perlで書くと人によって違うコードになる」
「大規模開発に向かない」
「ライトオンリー言語になる」
「3日前に書いたコードは読めない」
など批判されてきました。
Perlに対する偏見は強いですが、事実は異なるのです。
1年前に書いたコードも読める
実際は、1年前に書いたPerlのコードは読めます。
Perlのソースコードを見た時に、最初はわからないても、1ヶ月程度、Perlについて学べば、ある程度、ソースコードの編集方法がわかってきます。
現代的な方法で、うまく構成されたソースコードは、何年経っても、読みやすいです。
ソースコードの可読性は、プログラミング言語というよりも、書き手に大きく依存します。
そして、これは、Perlに限ったことではありません。
Perlは、多様性を尊重するというスローガンのために、その分だけ、書き手の書き方に依存するというのは、本当ですが、それによって、まったく修正できなくなるなどのような、ひどい結果になることは、ありません。
あなたの実力を高めれば、上手なリファクタリングによって、保守性と可読性の高いソースコードになります。
大規模開発は可能
Perlに対する誤解は「1000行を超えるとソースコードが読めなくなる」というものです。
けれども、実際のPerlのプロジェクトは、モジュールの数が、100を超えるようなものが、普通にあります。
ソースコードの行数が、10万行を超えるプロジェクトもあります。
Perlで実際に、大規模開発が、可能なので、このような規模のプロジェクトが存在しています。
Perlには、パッケージと呼ばれる名前空間を定義する機能があり、プロジェクトの規模が大きくなると、機能を別のモジュールに分割することもできます。
現代的プログラミングが持っている大規模なシステム開発に耐える言語機能をPerlも持っています。
大量のテキスト処理を扱うWeb開発を、少ないコストで開発したい。こういう場合にも、Perlは、ピッタリです。