web-dev-qa-db-ja.com

ほとんどのLinuxディストリビューションでデフォルトでPerlがインストールされるのはなぜですか?

ほとんどのLinuxディストリビューションでデフォルトでPerlがインストールされるのはなぜですか?

28
user23312

あなたの視点に応じて、答えはセクシーです/セクシーではありません。

Perlは非常に便利です。多くのシステムユーティリティはPerlで記述されているか、Perlに依存しています。 Perlがアンインストールされている場合、ほとんどのシステムは正しく動作しません。

数年前、FreeBSDはベースシステムの Perlを依存関係から削除 するためにlotの労力を費やしました。それは簡単な作業ではありませんでした。

29
bahamat

ラリーウォールの 元のPerl v1.0の投稿 から1987年12月18日のcomp.sources.miscニュースグループに、彼は言った:

通常、sed、awk、またはshを使用する問題があるが、その能力を超えているか、少し速く実行する必要があり、Cでばかげたことを書きたくない場合は、Perlが適しています。

ずっと後の解説 では、彼はもう少し詳しく説明しました:

しかし、Unix Shellプログラミングのフラストレーションが直接Perlの作成につながりました。しかし、本質的には、シェルスクリプトは、ほとんどの動詞がその制御下にないため、互いにほとんど一貫性がないという事実によって本質的に制限されていることがわかりました。そして、名詞は貧弱で、文字列とファイルに制限されており、誰が何を知っているかという類型が...

より破壊的なのは、それが1次元の宇宙であるという考え方でした。Cでプログラミングしたか、シェルでプログラミングしたかのどちらかです。なぜなら、これらは明らかにOne True Continuumの両端にあるからです。 Perlが登場したのは、スクリプトは必ずしもプログラミングの反対である必要はないが、単一の言語が両方に適していることに気付いたときです。それは巨大な生態学的ニッチを開いた。あなた方の多くは、私の古いクラムシェル図を見て、操作性と鞭性の2つの次元を持っています。

今日、Perlはシェルスクリプトとテキスト解析のニーズに対する標準の代替/代替であり、従来のツールよりもはるかに強力です。 Perlは非常に柔軟性があるため(一部は洗練されていないと言われています)、Perlは「 スクリプト言語のスイス軍チェーンソー 」と表現されています。多くの場合、Perlで解決すると、タスクは大幅に短く、簡単に、または拡張可能になります。多くの、多くのシステムツール、スクリプト、およびより大きなプログラムは、Perlで日常的に作成されています。したがって、最近のLinux環境では、Perlはもう1つの標準的なUnixツールであり、本当に不可欠です。

25
ire_and_curses
  1. Perlは、ツールが十分に強力ではなかったため、Unix用に開発されました。スポーツの場合、awkおよびsedを検索できます(Perl)。
  2. Perlは、(とりわけ)Unixシェル(およびC、Unixにとって非常に重要です-またはおそらくその逆)に触発されました。
  3. また、 PerlはGNUライセンス の下で配布できます。技術的な観点からは無関係であると考える人もいますが、混在しているようです。
  4. 私が考えることができる最後のものは、ネットワークの「ソフトウェアバンドル」であるLAMPです。 (Wikipediaで確認してください。PはPerlであり、少なくともPerlでした。LはLinuxです。)(ただし、この最後の点は少し「ニワトリまたは卵」です。)
4
Emanuel Berg

この質問に対する答えは、部分的には歴史的であり、部分的には実用的だと思います。

歴史に関して言えば、Perlは上品な言語です。 Python(PHPは言うまでもありません))よりも上品ですが、何が「より良い」かはわかりません(それが何らかの形で正式に分析できるとしたら、疑問です)。そして上品な人たちPerlを使用している(または使用している)人物は、通常、Linuxディストリビューションの一部とすべきものを決定します。

何が実用的かについては、Perl isでも多くのものの接着剤です:OSとWebは同じです(ここでも、LAMP、PythonまたはPHP)を忘れないでください) 。それでは、なぜ多くの目的に役立つものを含めないのですか?さらに、なぜremoveそこにあるもの(そして何の害もない)、and =便利ですか?

しかし、たまたま、The Linux Magazineの最新号(#151、2013年6月)にこれに関するメモがあります。どうやら、Linuxカーネルをコンパイルするために、いくつかの短くて単純なPerlスクリプトが使用されています。 (ここでも、OSにおけるPerlの「接着剤」の役割です。)現在、カーネル開発者の1人が、今回はPerlではなく、「Unixシェルスクリプト」(つまり、 sh?)。そうすれば、カーネルをコンパイルする人のためにPerlをインストールする必要がなくなります。しかし、そのパッチ(数回提出されたもの)はまだピックアップされていません。そして、その理由の1つは、寒さにさらされた後は、Perlが受け入れられない可能性が高いことです。Perlのような人々は、Perlを手放したくないのです。

おそらく非常に少数のLinuxユーザーがカーネルをコンパイルする可能性が高いため、これはこの質問の縁にのみ触れます。しかし、それはまた別のパズルのピースです(そして私はたくさんあると思います)。

1
Emanuel Berg