Perlの多様性と規律という考え方はなぜ人の心に優しいのか

Perlは多様性と規律という考え方があります。なぜこの考え方は人の心に優しいのでしょうか?

Perlの多様性の意味

Perlの多様性の意味について、いくつか例を書きます。

人間の多様性に配慮する

Perlのプログラミングの前提は、人には多様性があるということです。人が書いた文章は、コンピュータが生成したもののように、画一的ではありません。それぞの人に、癖があり、その癖は多様なので、Perlプログラムの方が、それを配慮します。

たとえば、数字の1を書く場合、半角の「1」を書く人と、全角の「1」を書く人がいたとしましょう。

これは、人の癖を考えた場合に、頻繁に起こることですが、コンピュータは画一的に扱いたいと思います。

Perlは、人間の側を配慮して、このような書き方に対して、すぐに対処して、コンピュータで扱いやすい形に変換できます。

# 全角の1を半角の1に変換する
$str =~ s/1/1/;

文法の多様性でよくあるパターンに対処する

次は、Perlの文法の多様性でよくあるパターンに対処するという例を紹介します。

改行区切りのを文字列コピペで扱いたいという場合です。

システム開発を行っていると、改行区切りの文字列というのは、頻繁に登場します。一つの例としては、Excelの縦の列として、入力されている場合です。

# 改行区切りの文字列
foo
bar
baz

実務では、これをすぐにプログラム上で、配列にしたいのです。

Perlには、二つの方法があります。文字列リスト演算子かDATAセクションを使う方法です。

# 文字列リストで配列にする
my $strs = qw(
foo
bar
baz
);

# DATAセクションを使ってファイル入出力のように扱う
while (my $line = <DATA>) {
  chomp $line;
  
  # 処理
}

__DATA__
foo
bar
baz

Perlには、画一性を好んで、一つの配列の構文が用意されているというわけではなく「改行区切りのを文字列コピペで扱いたい」という要望に対して、文字列リスト演算子とDATAセクションが用意されています。

これは、Perlの文法の多様性の一例ですが、この多様性には、価値や意味があります。

開発者やチームに規律が必要

Perlには、人の多様性に適応するために、文法の多様性があるので、ある程度開発者やチームに規律が必要です。

これは、コーディング規約のような固いものでなくてもよいですが、他の開発者、デザイナー、インフラエンジニアにとって、読みやすいように、配慮されている必要があります。

Perlが、あなたの書きやすいように配慮してくれるように、あなたは、他の開発者、デザイナー、インフラエンジニアに配慮する必要があります。また、開発者が変わった場合の未来のエンジニアに対して、このコードは、その人にとって、管理しやすいだろうかということを、考える必要があります。

多様性という価値を、画一性という価値と対比する価値がある

Perlには、人間を画一的に扱うという考え方が、存在していません。

多くの人が誤解していますが、この一つの方法を適用したり、この一つのやり方をさせれば、システム開発がうまくいくということは、まずありません。

開発者がわがままなので、組織のプロダクトマネージャーとしては、この人を、取り換え可能な、画一的な部品のように扱って、システム開発をうまく進めたいと思うでしょう。

ただし、現実には「人間は心を持っている」という、当たり前すぎる事実を忘れています。

特に、プロダクトを前向きに進めてくれる、クリエイティブな開発者は、画一的に扱われると、それに抵抗したり、価値を見出せなくなったり、失望したりします。

小さな失敗が許されること、自由な選択が可能なこと、自己規律を望むからです。

長期的に画一的に扱われることが続くと、鬱になる可能性もあります。

Perlの多様性と規律という考え方は、人の心に優しく、希望のある考え方です。

「Perlはどんな風にでも書けて、だれも読めない」という批判が、画一性の側から語られていますが、多様性と規律という考え方と、一度比較してみてください。

実際に、Perlが文化として語ってきたのは、以下の二つのメッセージです。

  • Perlの文法は人間の多様性に適用するためにある程度多様である必要がある
  • 後で読む人のことを考えて、規律を持ってコーディングする必要がある

関連情報