![これらの方法を使用して、Twitterでより多くのフォロワーを引き付けます!](/f/05133d03ab9315755b0f93be8097809e.jpg?width=100&height=100)
多くの場合、新しいプログラミング言語が導入されると、いくつかの人々の間で議論が始まります。 言語がすでにそのルーツを広めているものと比較される業界の天才精神。 ある種の話題はIT業界に広まることが多く、新しい話題はあらゆる面で比較されることがよくあります。 機能、構文、またはコアCPUとメモリの側面(GC時間など)であり、既存のものは 親切。
そのようなケースの多くの例は、間の議論を含め、過去から取り上げて調査することができます Java と NS#, C ++、 NS。 大きな注目を集めたそのような事例の1つは、短期間で次々と出てきた2つの言語間の議論でした。 Python と Perl.
一方 Python 当初はABC言語の後継として単に「趣味」彼の最大のスターのシリーズにちなんで名付けた作者のためのプログラミングプロジェクト(Unix / Cハッカーを引き付けるだろう) モンティ・パイソン.
推奨読書:LinuxでのPythonプログラミングとスクリプティング入門
Perl レポート処理を容易にすることを目的としたUnixスクリプト言語としては、約2年前のことです。 それは以下を含む多くの言語の組み合わせの混合物でした NS, awk, sed、 と シェルスクリプト.
注目に値するのは、異なる意図で進化したこれらの言語が 絶えず比較されているので、私はその理由を研究して理解することができました。その理由のいくつかがリストされています。 以下のように:
この議論を深く掘り下げて、これら2つの言語が互いに異なる全体的な側面を理解してみましょう。 また、業界で「Pythonは補助輪付きのPerlです" また "PythonはPerlに似ていますが、異なります」ということで、この終わりのない議論に対する正確な解決策を試して結論を出すことができます。
コードの可読性に関しては、PythonはPerlよりも大きな利点があります。 Pythonのコードは、何年も経ってコードを読んだ場合でも、Perlのコードよりもはるかに明確に理解できます。
コードのブロックを表すインデントと適切な構造化により、Pythonのコードははるかにクリーンになります。 一方、Perlは、次のようなさまざまなプログラミング言語から構文を借用しています。 NS, シェルスクリプト そしてさえ awk と sed 正規表現に関してはフィルターをかけます。
推奨読書:15日常のLinuxシステム管理タスクに役立つ「sed」コマンド
これとは別に、 '{' と '}'
コードのブロックと不必要な追加を表す ‘;’
各行の終わりで、Perlのコードは、醜いスクリプトが許可されているため、数か月または数年後に読んだ場合、理解するのに問題になる可能性があります。
Perl言語はその構文をから借りています NS およびその他 UNIX 次のようなコマンド sed, awk、 NS。 そのため、サードパーティのモジュールをインポートすることなく、非常に強力で組み込みの正規表現サポートを備えています。
また、 Perl 組み込み関数を使用してOS操作を処理できます。 一方で、 Python 両方の操作用のサードパーティライブラリがあります。 NS にとって 正規表現 およびos、sys for os操作は、そのような操作を実行する前に確認する必要があります。
Perlの正規表現操作には「sed’のような構文により、検索操作だけでなく、置換、置換、その他の操作も簡単になります。 文字列は、Pythonよりも簡単かつ迅速に実行できます。Pythonでは、人がに対応する関数を知って覚えておく必要があります。 必要。
例: 文字列内の数字を検索するプログラムを考えてみましょう Perlで と Python.
Python
再インポートします。 str = ‘hello0909there’ 結果= re.findall( ‘\ d +’、str) 結果を印刷します。
Perl
$ string = ‘hello0909there’; $ string = 〜m /(\ d +)/; 「$&\ n」を印刷.
の構文が表示されます Perl とても簡単で、 sedコマンド を利用する Pythonの サードパーティモジュールをインポートする構文 'NS'.
1つの機能 Python 影を落とす Perl その高度なです OO
プログラミング。 Python オブジェクトがクリーンで一貫性のある構文を備えた広範なオブジェクト指向プログラミングサポートを備えています OOP
NS Perl パッケージがクラスの代わりに使用されている場合は古くなっています。
また、書く OO
Perlのコードはコードをより複雑にし、最終的にコードを困難にします。 理解してください、Perlのサブルーチンでさえプログラムするのが非常に難しく、最終的には理解するのが難しいです 後で。
一方、Perlは、さまざまなタスクを実行するためのコマンドラインで使用できるワンライナーに最適です。 また、Perlコードは、最終的にPythonよりも少ないコード行でさまざまなタスクを実行できます。
より少ないLOCでより多くのことを行うPerlの能力を強調する両方の言語のショートコードの例:
Python
try:with open(“ data.csv”)as f:for line in f:print line、ただし、Exception as e:print "Ca n't open file-%s"%e。
Perl
open(FILE、”%lt; inp.txt」)または「ファイルを開けません」で終了します。 その間() { 「$ _」を印刷します。 }
このセクションでは、PythonとPerlの長所と短所について説明します。
OO
プログラミング、PythonでのスレッドプログラミングもPerlよりもはるかに優れています。‘@’
配列を識別し、 ‘%’
ハッシュを識別します。‘$`’
, ‘$&’
経験の浅いプログラマーにとっては、理解やプログラミングが難しいなどです。 また、Perlコードを読むときは、質の高い経験がない限り、理解するのが難しく複雑になります。上で見たように、両方の言語は、それらが対象とするアプリケーションに従って、それらの点で優れています。 Python 少し有利になります Perl クリーンで理解しやすいコードのため、初心者の最初の選択肢として、一方、PerlはPythonよりも優れています。 文字列操作操作や、OSなどのUNIX用の高度なワンライナーやその他のさまざまな操作が知られています。 にとって。
つまり、最終的には、ターゲットとする特定の領域にすべてがかかっています。 この記事に対するあなたのコメントはすべて歓迎されており、Pythonが勝つか、Perlが勝った場合は、このトピックについて意見を述べるように求められます。