web-dev-qa-db-ja.com

Perlはまだ有用で実行可能な言語ですか?

以前に尋ねられたことがあるかもしれませんが、ここでは何も起こりません...

Perlはまだ有用と考えられるものでしょうか?誰かが新しいプログラマーであった場合(プログラミングにまったく新しいか、わずか数か月/年の経験のどちらか)、Perlは学ぶ価値があると考えられるものでしょうか?

Perlはまだ頻度で使用されていますか?それはまだ人気がありますか?

あるいは、PerlはPython、Ruby、PHP、ASP.NETなどの言語と比較して衰退していますか?

基本的にそれはこれに要約されます:

  • まだ使用されていますか/まだ頻繁に使用されていますか?はいの場合、それは死にかけていますか?いいえの場合、それは戻ってきますか?
  • 学ぶ価値があるものでしょうか?
  • Python人気と使いやすさ/実行可能性の両方で)需要の高い言語とどのように比較しますか?PythonまたはRuby = Perlの代替と見なされますか?

また、新しいバージョンのPerlは本当にPerlコミュニティに大きな改善をもたらし、おそらく他の言語と比較してPerlを舞台裏に戻すでしょうか?

編集:

さて、私はこれがより良い、言い換えられた質問だと思います:

Perlはまだ成長していますか、それとも「死にかけている」のですか?それはまだ学習して使用する価値のある言語ですか?他の言語と比較して、どのプロジェクトが本当に「素晴らしい」のでしょうか? Perlを選択するための言語は何ですか?基本的に、Perlは他の言語に比べて時代遅れになっていますか。もしそうであれば、変化すること、または継続することを期待していますか?

そして、これまでに答えてくださった皆さん、ありがとうございました。

77
Bob

まず第一に、常にdisambiguateを使用することをお勧めします。

企業はPerl 5について話しますが、遠く離れた遠くの土地では、(== --- ==)深い思考の島design-by-committee部族はまだPerl 6の多額のスラブを調理しています(そして、エンジンは次のように記述されています) Haskellと神の涙)を搭載

さて、それは言いました、今日はPerl 5は何に使用されていますか?

  • レガシーWebシステム/イントラウェブ-いくつかは死にません

  • データマイニング/統計分析-少し古くなったとしても、Perl regexエンジン、(PCRE、スピンオフされたライブラリ、可能な限りの方法で追加し、デフォルトのPHPエンジンです)簡単な分析に最適

  • NIXシステム管理-Perlは常にUNIXにインストールされます。
    Mac OS Xでもすぐに利用できることを期待できます。

  • ネットワークプロトタイピング-多くのコアネットワークエキスパートがPerlを大流行したときに学んだ。そして、彼らはまだそれを使って概念実証を行います。

  • security-多くのセキュリティ専門家も高速プロトタイピングを必要とします。 (そして高速自動修正)Perlはそれをカバーできますし、カバーします。

プロトタイプを扱う場合、広範な[〜#〜] cpan [〜#〜]コレクションは非常に便利です。
(バッテリーは含まれていない場合があります(しかし、まだ棚にあります

ただし、drawbacksを覚えておいてください。

  • Perlでのオブジェクトのサポートsucks hard、参照を祝福し、オブジェクトの名前に不誠実なことをしてから、なぜあなたはそもそもすべてのトラブル。
  • 他の人のPerlを読むことは、単なる技術ではありませんそれは科学です、そして痛みを伴うも。
  • Perlは気の利いた、気の利いたものを考えさせ、気の利いた気分にさせ、programming rockstarになります。さあ、起きてロックスターでいっぱいのオフィスで仕事に行くことを考えてください:これは「揺れるボート」ですハード。激しい変動が予想されます。
60
ZJR

私の意見では、Perlを数年間使用しなかった後で再びPerlを使用した後は、これまでになく優れています。 Perl 5は、OOを今すぐ行うことができます。CPANにはすばらしい機能があります。(Modern Perl を見てください)

Perl 5は完全に死んではいません。いくつかのPerl WebサイトとCPANを見てください。そして、地平線上にはまったく新しい言語-Perl 6があります。

Web、ブログ、プレゼンテーションに多くのリソースがあり、なぜそれが悪くないのか、そしてなぜ評判が良くないのかを理解するためにそれらを見てください。

23
Nornagest

Perlが今でも行っている主なことは [〜#〜] cpan [〜#〜] -事前に作成されたモジュールが非常に多いため、必要なものを見つけるのは非常に簡単です。

そうは言っても、私はPerlを学ばないでしょう。 Perlは(私のように)すでに知っている人にとっては素晴らしい言語ですが、 Python は(私の部外者の観点から)一種の迅速で汚いファイルやテキストの構文解析を行うためのより良い言語のようですPerlは「頼れる」言語でした。

22
Paul Tomblin

数年前に第一言語としてPerlを学ぶことを決心したとき、私の決断を導いたいくつかの要因がありました。

  • 言語に関する良い参考資料はたくさんありますか?
  • 質問のヘルプを簡単に見つけることができますか?
  • その言語は、多種多様な人口によって活発に使用されていますか?
  • 私の目標に役立つアクティブなプロジェクトはありますか?

私にとって答えはイエスでした。私はグラフィックデザイナーです。私は何年も前にHTMLとCSSを学びましたが、クライアントがWebサイトからより多くを求めた後、私のスキルをアップグレードする必要がありました。プログラミングを実際に学ぶためのバグを与えるさまざまなphpフレームワークを使用していました。私は多くの調査を行い、テンプレートツールキットのようなよくサポートされたプロジェクトだけでなく、Perl DancerやMojoliciousのような新しいプロジェクトも見つけました。 Perlに付属するドキュメントは、出版物のライブラリと同様に非常に役立ちました。

私は、Perlのメーリングリストを、初心者にとってもフレンドリーでアクティブなものにしています。 PerlMonksでは、世界中の人々がさまざまなアプリケーションに関する質問と回答を提供しています。いくつかのアクティブなPerlニュースサイト、ブログ、およびストリームがあります。これらのリソースは、Perlとプログラミングについて多くのことを教えてくれました。

確かに、それは私の経験です。これらのサイトにログオンしたり、メーリングリストに登録したり、Perlを使用してWebアプリケーションを構築したりする人数は正確にはわかりません。また、最初に別の言語を選択した場合、私の経験がどれほど良くも悪くもなったであろうことについてコメントすることはできません。他の言語のコミュニティーでも同じような肯定的な側面がたくさん見つかることは間違いありません。私が選んだ選択にまだ満足していると言えます。

19
luis.roca

言語の人気は、その実行可能性またはユーザビリティとはほとんど関係がありません。 Perlはまだ非常に使いやすい言語です。初心者に不親切であるというその名声は、結局のところ、彼らがそれを助けることができれば誰もそれを学ぶことは誰もできないことを意味しました。私がこれをもう使用しない唯一の理由は、私が知っているだれもそれをも​​う使用していないということです。

16
Karl Bielefeldt

私はPythonのレイアウトに惹かれました-ブロック構造は「あなたが見るものはあなたが得るものです」です-そしてこれに延期される人々がいる理由を理解していません。私は思うそれは今も今も、いい考えです。

しかし、私はPerlに戻りました。実用的なツールとして考えたほうがいいようです。コンピュータサイエンス理論では、PythonおよびRubyの方が「優れています」。しかし、私は現実の世界で働いています。

RubyとPythonは、大学を卒業したばかりの子供の間でよりファッショナブルです。Facebookにいるほとんどのプログラマーは、現在のファッションに従って、RubyまたはPythonを使用します。元の投稿はこれを示しています。「それは価値があるか」と「まだ人気があるか?」

私は、PerlがFacebookの世界で「人気がある」かどうかも知りません。それはおそらく、多くのことを成し遂げる人々の間で最も広く使用されているスクリプト言語であり、非常に異なることです。自分の好きな言語はCPANに匹敵するリソースを持っていると考える一部のコメンターは、CPANがどれほど広くて深いかについて何も知りません。

12
user83421

記録として、私は約15年間Perl 5でプログラミングしてきたので、少し偏っています。そうは言っても、私は本当にPerlが好きです。反対意見に耳を傾けないでください。また、その年齢が何らかの形で保存期間を示しているとは考えないでください。 Perlを見る最善の方法は、他の言語と比較してそれを見ることです:

  • [〜#〜] php [〜#〜]-PHPはかなり良いWebプログラミング言語です。誤解しないでください。しかし、それはのみ Webプログラミング言語。Webアプリケーションでさえ、プロセスをクリーンアップするためにcronjobsが必要であり、そのためには奇妙なことを行う必要があります。UNIX管理者用の簡単なスクリプトを記述したり、テキストを解析したりする必要はありません。さらに、PHPにはCPANがありません。

  • Ruby-言語が新しすぎて、私の好みには「スクリプトキディ」。 Rubyは、Rails上のRuby=です。Perlには、MVCフレームワークとして)CatalystとDancerがありますが、これらはMVCのすごいMVCですが、言語の土台です。求人の要件として「Ruby」をすぐに見つけることはありません(もしあれば)。さらに、RubyにはCPANがありません。

  • Python-Larry Wallの言葉では、Pythonは単なるヘビ油です。Pythonは、空白と私が使用した最後の言語に関心がありますホワイトスペースを考慮したのはBASICでした。また、BASICと同様に、基本的に使いやすい初心者の言語になるように設計されています。最後に、CPANはありません。

  • Java-Javaは問題のある子言語です。コンセプトは、この仮想マシンを任意のプラットフォームで実行できるようにすることでしたが、大学での言語の人気が非常に高いためです。コースでは、Javaアプリケーションが存在するはずのない場所にすべてのアプリケーションが表示されます。たとえば、社内のサーバーベースのWebアプリケーションは存在すべきではありません。これは、仕様they定義すると、別のVMにラップされます。Javaは肥大化し、彼らはCPANを持っていません。

  • C#-私は実際にこの言語をかなり使用していますが、私はそれと愛/憎しみの関係を築いているようです。異なるパラメーターを持つメソッドをオーバーロードできることは、クールで楽しいことです。しかし、型キャストに関するコードのすべての行でビックになる言語が必要な場合は、C#が適しています。私の神、それはあなたがどこにでも明示的なキャストを置くことを望んでいます!クラスを作ることは楽しいですが、実際のコードを実際に書くよりも、いまいましい言語を機能させるためにクラスを作ることに多くの時間を費やしていることに突然気づきます。

    また、C#には.NETがありません。これは、非常に優れた拡張機能です。ただし、独自のモジュールを作成して、バグまたは設計上の欠陥について作成者に不満を言うことができるので、私はCPANがより好きです。そして、それらはすべて無料です。加えて、Perlは将来的にPerl.NETに向けて取り組んでいるため、Windowsアプリケーションを設計する可能性があります。

Perlは次のような優れた言語です。

  • Regular Expressions-Perlがうまくできることの1つがテキスト操作です。はい、多くの言語には正規表現がありますが、Perlはそれらをほぼ発明しました。grepが「Perl正規表現」モードを備えている理由、またはOracleに「Oracle正規表現でのPerlの影響を受ける拡張機能」に関するセクションがあるのには理由があります。それは組み込みであり、モジュールを必要としません。

  • 柔軟性-スカラー、配列、ハッシュの3つの基本的な変数タイプがあります。それでおしまい。それで十分です。あなたはint、byte、string、またはそのようながらくたを持っていません。 Perlはそれをうまく理解します。また、メモリリークを心配したり、PC全体をクラッシュさせることなく、必要なすべての参照を使用できます。言語が機能するだけです。

  • Portability-PerlはWeb上で適切に動作します。 UNIXでうまく動作します。 Windowsでもかなりうまく機能します。それは単一の機能へのハト穴ではありません。それはすべてのトレードのジャックですが、(ほとんど)すべてのマスターでもあります。

  • 小さなコードで多くのことを行うのは簡単です-1Kの空のファイルを提供してください。そのスペースであらゆる種類の物を書くことができます。 Perlのワンライナーでさえ、コマンドラインパイプに追加するのに最適です。

  • [〜#〜] cpan [〜#〜]-何かに必要なものを見つけるのがどれほど良いか強調できません。 「何でも」とは?さて、OracleからiPod、CSV、Adabas、Yaswiに至るまで、あらゆるデータベースや想像できることについてDBモジュールはどうでしょうか。いくつかのフル機能のWebサーバーはどうですか? Excelファイルリーダー、SNMPモジュール、デバッグ行のコメントを読み取るモジュール、またはプログラムの高速化に役立つモジュールはどうですか?私が今行っているプロジェクトは、Games :: RolePlay :: MapGenと呼ばれる既存のモジュールを拡張して、動的なTerrariaマップジェネレーターを作成しています。 .NETにはそのようなものは決してありません。

    さらに、CPAN経由でモジュールをインストールするのも簡単です。 Debianから入手してください。 CPANから直接インストールします。依存関係の解決にはapt-getと同じくらいうまくいきます。 XモジュールをCPANからインストールするようにsysadminに指示しても問題はありません。これは、単純な1行のコマンドだからです。

はい、それはその欠陥を持っています、そして、はい、私はそれに偏っていますが、おそらくあなたはすでに否定を何度も聞いたことがあるでしょう。ロングショットではなく、ポジティブを上回るものではありません。

12
Brendan Byrd

パフォーマンスは、Perlを選択する主な理由の1つです。 Pythonと比較すると、RubyまたはJVMベースのスクリプト言語のいずれかが非常に高速です。

これが、データマイニングスペースで置き換えられなかった理由です。他のすべての(無料の)言語は、大量のデータを処理する際に遅くなります。

12
James Anderson

Perlがその位置を占めています。その「悪い評判」は、通常、実際に別のツールで実行する必要があることを実行するための優れた柔軟性を可能にするためです。

「私は何を達成しようとしているのでしょうか。そして、これを実現するための適切なツールはありますか?」その後、あなたはそこへの道の一部です。

簡単なスクリプトを作成している場合は、スクリプト言語を使用するのが理にかなっています。複雑なアプリケーションを作成したい場合は、Perlで「書く」ことができますが、おそらくそうするべきではありません。

しかし、あなたの質問は新しいプログラマーに関連しているので、今のところPerlを放っておくことをお勧めします。柔軟性の低い言語から学習する悪い習慣が少なくなるからです。

12
Michael Shaw

Perlは使い捨てツールを書くための言語です。 Perlが多かれ少なかれ永続的で便利な他のさまざまなアプリケーションがありますが、奇妙なことをするためのシェルコマンドがない場合、奇妙なソケットからデータを取得するスタブが必要な場合、ログファイルまたはサーバーからいくつかの画像をプルする必要がある場合、またはWebページテンプレートにすべて同じタイプのミスが含まれていて、それらすべてを修正したい場合-SQLの範囲外の方法で一部のコンテンツを抽出する必要がある-ホイッピング10分のPerlスクリプトを作成するのがよいでしょう。

Shellで同じことを書くことはおそらく可能ですが、Shell構文の奇妙な警告のために、時間がかかり、はるかに困難になる可能性があります。 C++、C#、Javaなどの「専門的な」言語でこれを書くと、比較するとおよそ1時間かかります。これをPython、Ruby、PHPなどの競合するスクリプト言語で書くことは実行可能な代替手段であり、書くのに最大20%長くかかる可能性があります。

はい、他の言語のプログラムはより保守しやすく、読みやすくなります。しかし、今すぐソリューションが必要な場合は、Perlが最適です。

10
SF.

「CPANへの最近のアップロード」- ページ を確認してください。毎日20を超える新しいモジュールまたは更新されたモジュールがアップロードされています。 1日あたりの平均アップロード数はゆっくりではありますが、着実に増加しています。この活動は、死にかけている言語のしるしですか?番号!

これは、いくつかの重要なモジュール(たとえば、Webプログラミング、またはRDBMSドライバーへのインターフェース)が長年にわたってどのように維持および改良されているかを常に印象づけます。多くの場合、元の作者、または新しいメンテナーによって。多くの場合、これにより非常に成熟したコードが作成されます。

モジュールをCPANに組み込むには、プラットフォームの独立性だけでなく、(古いPerl 5バージョンとの)下位互換性を維持するために非常に長い道のりを進むことが推奨されます。インスタンスを参照してください http://matrix.cpantesters.org/?dist=DBI (DBI =データベースインターフェイス、抽象化レイヤー)

また、言語自体:5.10、5、12。、5.14以降、言語に含まれているすべての新機能に少し戸惑っています。私は新しい機能を利用することを学びませんでした。 Perlはあまりにも速く進化しています。

8
knb

5.8と5.10のリリースの間に長い遅延を引き起こしたPerl6に焦点を合わせたため、しばらくの間Perl5の開発は停滞しました。それ以来、コミュニティは本当にPerl5とPerl6が異なる言語であることに気づき始め、最近非常に定期的に新しいリリースがありました。

最近、Perlが Catalystを使用したWebアプリコンペティションで優勝 (私は Mojolicious を好みますが)、新しいモダンPerlプラクティスのいくつかは、よりクリーンなOOアイデアをもたらしますMooseのようなものでPerlに。

私の意見では、Perlの開発者として、Perlには大きなレガシーがあり、企業ネットワークをまとめるダクトテープであるだけでなく、Webアプリケーションの新しい熱さの中での明るい未来もあります。

7
AFresh1

90年代にシステム管理を行っているときに、Perl 4と5を学びました。今日、私はJavaプログラミング(Perlを呼び出すことは通常望ましくない場合)を行いますが、開発用コンピュータでたまにPerlを時々使用します。これは通常、ログファイルのデータマイニングを行うためだけですPerlの正規表現と、Perlのonelinersをテキスト解析するための足場により、コマンドラインでの実行が非常に簡単になります。

本質的に私はステロイドのawkとして今日それを使用します。このため、それは素晴らしいです。

Perlの機能の1つは、ほとんどすべてを実行する方法が複数あることです。これにより、自分の考え方に合ったものを選択できます。これは、1つまたは2つのライナーを一緒にハッキングするだけの場合は優れていますが、他の人のPerlコードを理解する必要がある場合は通常、他の方法で行うため、それほど優れていません。 theirの考え方に適合します。

私は、Perlを非常に便利なツールだと考えています。これは、テキストファイルをふるいにかけるために正規表現で何ができるかに焦点を当てている場合に、知りたいと思うかもしれません。オブジェクトに関係することは何もしないでください。

7
user1249

Perlを知っている場合は、MicrosoftのPowershellを学ぶ方が簡単です。 PowerShellの構文に関しては、Perlはありませんrootsですが、Powershellは言語Perlから多くの機能と概念を取り入れています。たとえば、頭上から$ _変数、配列の前に@と$を使用した文字列/スカラー値、モジュールの名前付けと保存に関するファイルの規則、およびいくつかの方法では、いくつかの名前の自動読み込み。

そのため、Perlを知っていると便利です。Powershellを学ぶのも、Powershellの考え方を理解するのも、Powershellのイディオムを長期記憶に留めておくのも少し簡単です。 Perlの背景なしでPowershellに出会うことは、おそらく少し奇妙です。ただ言って。

もちろん、Powershell言語は新しいもの、特に.NETの使いやすさを追加し、UNIXコマンドラインツールとの「下位互換性」を提供するPerlの関数/演算子を継続しませんでした。

3
knb

私はエキスパートプログラマではありません。しかし、Perlは非常に簡単に習得でき(私はラクダ本を使用しました)、常に楽しみでした。また、PerlMonksは、プログラミングランドで最もフレンドリーなヘルプコミュニティです。 Perlは、RubyおよびPythonへの採用という点で、その性的魅力を失ったようですが、特定の業界(特にWeb)でのみです。

3
isomorphismes

Grant McLean アップロードするだけ 短い映画mapofcpan.org の進化に基づいており、マップスタイルのビジュアルでCPANが時間とともに進化する方法を示しています仕方。コミュニティの活気については一目瞭然です。死にません。

Perlは確かに評判が悪いことに苦しんでいます。それは、多くの伝説があり、コミュニティーがそれを「世界で最もヒップなプログラミング言語」にしたくないし、そうしようとしないためです。なぜこれほど多くの人々がそれが恐ろしい言語であると絶対に確信しているのかを理解することは非常に困難です。どの言語でも気味の悪いコードを書くことができます。 Perlは他の言語と同じようにベストプラクティスを得ました。それを行う複数の方法基本理念にそれを実装する必要があるだけです。

私はこの悪い評判の非常に悲しい理由を見ることができます:長い間、PerlコミュニティのWebサイトは非常に醜いUIデザイン(たとえば perlmonks.org のように)を取得していました。個人的に、私は本当にこれを気にしません、多分私はこの理由のためにPerlに来るかもしれません:ファッショナブルなウェブサイトUIの多くはありませんが、あなたはそれがより美しくなろうとしないので、ツールとコミュニティをはるかに信頼してコミュニティを信頼できます。ただし、高品質のツールは、外観に焦点を当てるべきではないという意味ではなく、外観を管理しないのは結局一種の間違いです。

たとえば、私の友人(よりファッショナブルな言語が好き)は、 現在のPerl6ロゴ は恐ろしいものであり、若い肉体をPerlに引きつけるのは問題になると言っています。 明るい石 や他の よくデザインされたロゴ の場合よりもはるかに問題があります。

私はそれが不人気の非常に悲しい理由だと信じていますが、それが世界を支配しているものです。

2
smonff

Perlは絶対に死にません。他のいくつかの言語のように宣伝されたことはありません。

確かに、Perl自体は古い言語ですが、活気に満ちた非常に生産的なコミュニティがあり、その価値はCPANライブラリにあります。どの言語にも、CPANほど広範で包括的なライブラリはないと思います。近づくことすらありません。 CPANには何千ものモジュールとフレームワークがあり、想像できるすべてのことを実行できます。 Webサーバーが必要ですか? HTTP :: Serverがあります。スタンドアロンデータベースが必要ですか? Muldis :: DBがあります。ニーズが何であれ、通常はニーズを満たすいくつかのモジュールが見つかります。アプリに最適なモジュールを選択するだけです。

Rubyに関しては、Pythonと他の競合他社と同様に、健全な競争はPerlに多大な利益をもたらしたと思います。他の言語が得たものは何でも、PerlコミュニティはPerlで書き直しました。たとえば、Ruby Railsの成功を手にして、PerlはDancerを手に入れました。これは、Railsよりも多くの点で優れています。

Perlは確実に死んでいませんし、死んでもいません。周りに派手なことは何もありません。Perlを宣伝することで利益を得られる会社はありません。そのため、メディアの注目を集めることはなく、すべての子供がPerlを知っているわけではないため、その話はあまりありません。

元の投稿から6か月以上経過しています。それでもまだ決まっていない場合は、自分でPerlを学んでください。

1
Rox

私は90年代からWebゲーム開発にPerlを使用しており、3年間の休憩の後、以前のポスターに同意します。私は戻ってきて、それが私が去った場所を超えてそしてそれを超えて進化した方法を見つけます。

死にかけていますか?チャンスではない。

役に立ちましたか?それなしでは迷ってしまいます。多分それは私だけかもしれませんが、他の反応から、それは非常に活発な生き物だと思います。

0
Guruchild