Ist Perl immer noch eine nützliche und tragfähige Sprache? [geschlossen]

77

Ich weiß, es wurde vielleicht schon einmal gefragt, aber hier geht nichts ...

Ist Perl immer noch etwas, das als nützlich erachtet wird? Wenn jemand ein neuer Programmierer wäre (entweder völlig neu in der Programmierung oder nur ein paar Monate / Jahre Erfahrung), wäre Perl etwas, das es sich zu lernen lohnt?

Wird Perl immer noch mit Frequenz verwendet? Ist es immer noch beliebt?

Oder stirbt Perl im Vergleich zu Sprachen wie Python, Ruby, PHP, ASP.NET usw. aus?

Im Grunde läuft es so ab:

  • Wird es noch verwendet / wird es noch häufig verwendet? Wenn ja, stirbt es? Wenn nein, kommt es dann wieder?
  • Ist es etwas, das es wert wäre, gelernt zu werden?
  • Wie lässt sich die Nachfrage im Vergleich zu Sprachen wie Python in Bezug auf Popularität und Benutzerfreundlichkeit / Lebensfähigkeit vergleichen? Können Sprachen wie Python oder Ruby als Ersatz für Perl angesehen werden?

Werden neuere Versionen von Perl der Perl-Community wirklich eine große Verbesserung bringen und Perl möglicherweise im Vergleich zu anderen Sprachen wieder in den Mittelpunkt rücken?

BEARBEITEN:

Okay, ich nehme an, hier ist eine bessere, umformulierte Frage:

Wächst Perl noch oder "stirbt" es? Lohnt es sich immer noch, eine Sprache zu lernen und zu benutzen? In welchen Projekten "glänzt" es wirklich im Vergleich zu anderen Sprachen? Was macht Perl zu einer Sprache für Sie? Im Wesentlichen: Wird Perl im Vergleich zu anderen Sprachen veraltet, und wenn ja, erwarten Sie, dass sich dies ändern oder fortsetzen wird?

Und vielen Dank an alle, die bisher geantwortet haben, die Diskussion war wirklich interessant!

Bob
quelle
12
Lassen Sie uns nicht die Perspektive verlieren, laut TIOBE ist es immer noch unter den Top Ten, vor Ruby und sogar JavaScript.
Daniel

Antworten:

60

Zunächst einmal, es ist immer besser Mehrdeutigkeiten .

Unternehmen sprechen über Perl 5, wenn sie über Perl sprechen, aber auf einem weit entfernten Land, jenseits der tief denkenden Insel , kocht der Stamm der design by committee immer noch eine kräftige Perl 6- Platte (und es ist fast fertig, mit einer eingeschriebenen Engine Haskell und versorgt die Tränen der Götter )

Ok, das heißt, wofür wird Perl 5 heute verwendet?

  • Legacy-Web-Systeme / Intrawebs - einige werden einfach nicht sterben

  • Data Mining / statistische Analyse - Die Perl-Regex-Engine (auch wenn sie etwas veraltet ist) ( PCREeine abgespaltene Bibliothek füllt sie auf jede mögliche Weise auf und ist die Standard- PHPEngine) eignet sich weiterhin für einfache Analysen

  • UNIX-Systemadministration - Perl muss immer unter UNIX installiert sein.
    Sie können sich darauf verlassen, dass es auch unter Mac OS X verfügbar ist.

  • Netzwerk-Prototyping - viele Kernnetzwerk-Experten lernten Perl, als es ganz im Trend lag. und sie machen immer noch ihre Proof-of-Concept damit.

  • Sicherheit - Auch viele Sicherheitsexperten benötigen ein schnelles Prototyping . (und schnelle automatisierte Korrekturen) Perl kann und kann dies abdecken.

Die umfangreiche CPAN- Sammlung ist sehr praktisch , wenn es um Prototypen geht.
(Batterien sind möglicherweise nicht im Lieferumfang enthalten, sie befinden sich jedoch immer noch direkt im Regal. )

Denken Sie jedoch an die Nachteile :

  • Die Objektunterstützung in Perl ist zum Kotzen , Sie segnen Referenzen und tun unheilige Dinge im Namen von Objekten. Dann fragen Sie sich, warum Sie sich überhaupt die Mühe gemacht haben.
  • Das Perl anderer Leute zu lesen ist mehr als ein Handwerk, es ist eine Wissenschaft und auch eine schmerzhafte .
  • Perl ist geschickt, man denkt geschickt, man fühlt sich geschickt, man wird ein Programmier-Rockstar . Jetzt überlegen Sie sich, ob Sie aufstehen und in einem Büro voller Rockstars arbeiten wollen : Es ist ein "Boot, das hart rockt" . Erwarten Sie wilde Schwankungen.
ZJR
quelle
19
@WorldEngineer stimmte zu, aber das Schlimmste daran ist, dass Ruby von Perl kommt und sich überhaupt nicht gut anfühlt: Es fühlt sich einfach wie eine heruntergekommene, leistungsschwache Version von Perl an.
ZJR
12
Ich sehe dort nur einen Nachteil. Persönlich mag ich es, meine Referenzen zu segnen, aber für diejenigen, die das nicht tun, gibt es Moose (auf CPAN), ein Objektsystem, das gut genug ist, dass andere Sprachen es kopieren. Und obwohl ich schick liebe, habe ich in der Perl-Welt nicht so viele selbstbesessene Rockstars getroffen. In der Perl-Community gibt es weitaus mehr seriöse, disziplinierte Entwickler (die in ihrer Freizeit gerne rocken) als Rockstars. (Ich bestreite ausdrücklich, ein Rockstar-Programmierer zu sein, bis Frauen anfangen, mir ihr Höschen
zuzuwerfen
3
@ Johannes muss sich noch mit dem Van Rossum-Gesetz auseinandersetzen: "Whenever you find a python executable preinstalled, it's the wrong version""sometimes the right version is available, but it has the wrong name"
Fazit
2
Perl ist auch im Bereich der Bioinformatik noch recht groß.
Dietbuddha
3
+1 für die Systemadministration. Ich habe noch nie ein Unix-basiertes Betriebssystem ohne Perl gesehen. Ich habe es sogar in einigen eingebetteten Linux-Betriebssystemen gesehen, die Busybox für ihre Benutzer verwendeten
Earlz
23

Meiner Meinung nach ist es besser als je zuvor, nachdem ich nach ein paar Jahren, in denen Perl fast nicht verwendet wurde, wieder mit Perl zusammengearbeitet habe. Perl 5 hat eine Menge Awesomeness in CPAN, sogar OO kann jetzt gemacht werden. (Schauen Sie sich Modern Perl an )

Perl 5 ist alles andere als tot. Werfen Sie einen Blick auf einige Perl-Websites und CPAN, und am Horizont ist eine völlig neue Sprache zu sehen - Perl 6.

Im Internet, in Blogs und in Präsentationen gibt es viele Quellen, in denen es darum geht, warum es nicht schlecht ist und warum es einen schlechten Ruf hat, den es nicht verdient - schauen Sie sich diese an, um sich ein Bild zu machen.

Nornagest
quelle
7
Meiner Meinung nach ist CPAN großartig, wenn Sie ein Rad in irgendeiner Form benötigen, aber weniger großartig, wenn Sie eine Autofabrik benötigen.
@ ThorbjørnRavnAndersen CPAN ist ideal, wenn Sie ein Rad mit einer beliebigen Form benötigen. Das Problem ist, dass shape($wheel) == 'round' ? available_in_cpan($wheel) : false;es sich nicht um einen gültigen Filter handelt.
Jason Lewis
Nur weil OO in Perl existiert, heißt das noch lange nicht, dass es wirklich gut ist.
kirbyfan64sos
22

Die Hauptsache, die Perl noch hat, ist CPAN - es gibt so viele vorab geschriebene Module, dass es sehr einfach ist, etwas zu finden, das Sie brauchen.

Das heißt, ich würde Perl nicht lernen. Perl ist eine großartige Sprache für Leute, die es bereits kennen (wie ich), aber Python scheint (aus der Sicht meines Außenseiters) eine bessere Sprache für die schnelle und schmutzige Analyse von Dateien und Texten zu sein, die Perl früher verwendet hat. " go-to "Sprache für.

Peter Mortensen
quelle
Und denkst du, dass es eine Überhand gegen andere Sprachen gibt? Oder bringt das es einfach gleich mit anderen Sprachen. Zum Beispiel scheint das .NET Framework auch mit verschiedenen nützlichen Methoden und Klassen gepackt zu sein.
Bob
6
@ Paul Tomblin - Das ist eine ziemlich grobe Art, es auszudrücken. "Die Hauptsache Perl hat immer noch Spaß daran ..." <- Die Hauptsache, die C / C ++ für sie bereit hält, ist, dass noch viel Software in ihnen geschrieben ist. Abgesehen davon sind sie Müll.
Turm
Einverstanden mit Idigas, da man das gleiche von Java mit vielen Paketen sagen könnte ...
Izkata
1
Die Frage war nicht "Ist C ++ oder Java eine gute Sprache". Die Frage war, ob Perl noch lebensfähig ist. Und es gibt zwei Gründe, warum ich meine Web-Apps immer noch in Perl schreibe: CPAN und ich haben eine Menge Code, den ich bereits geschrieben habe.
Paul Tomblin
7
Wenn ich jetzt anfangen würde, würde ich wahrscheinlich Python verwenden. Aber ich benutze Perl, weil ich gut in Perl bin.
Paul Tomblin
19

Als ich mich vor einigen Jahren entschied, Perl als meine erste Sprache zu lernen, gab es eine Reihe von Faktoren, die meine Entscheidung bestimmten:

  • Gibt es viele gute Nachschlagewerke zu dieser Sprache?
  • kann ich leicht Hilfe bei meinen Fragen finden?
  • wird die sprache von einer großen vielschichtigen bevölkerung aktiv verwendet?
  • Gibt es aktive Projekte, die mir bei meinen Zielen helfen?

Für mich war die Antwort ja. Ich bin Grafikdesigner. Ich habe vor Jahren HTML und CSS gelernt, musste aber meine Fähigkeiten verbessern, nachdem Kunden mehr von ihren Websites wollten. Ich hatte verschiedene PHP-Frameworks verwendet, die mir den Fehler brachten, wirklich zu lernen, wie man programmiert. Ich habe viel recherchiert und gut unterstützte Projekte wie Template Toolkit sowie neue Projekte wie Perl Dancer und Mojolicious gefunden. Die mit Perl gelieferte Dokumentation und die Bibliothek mit Veröffentlichungen waren sehr hilfreich.

Ich fand die Perl-Mailinglisten ziemlich anfängerfreundlich und aktiv. Auf PerlMonks kommen Menschen aus aller Welt mit Fragen und Antworten für eine Vielzahl von Anwendungen. Es gibt mehrere aktive Perl-Nachrichtenseiten, Blogs und Streams. Diese Ressourcen haben mir viel über Perl und Programmierung beigebracht.

Zugegeben, das ist MEINE Erfahrung. Ich weiß nicht genau, wie viele Personen sich auf diesen Websites anmelden, die Mailinglisten abonnieren oder ihre Webanwendungen beispielsweise mit Perl erstellen. Ich kann mich auch nicht dazu äußern, wie viel besser oder schlechter meine Erfahrung gewesen wäre, wenn ich eine andere Sprache gewählt hätte. Ich bezweifle nicht, dass ich viele der gleichen positiven Aspekte in den Gemeinschaften anderer Sprachen finden konnte. Ich kann sagen, dass ich mit meiner Entscheidung immer noch zufrieden bin.

luis.roca
quelle
1996 lernte ich Perl als meine erste Sprache, weil ich gerade von Windows auf Linux umgestiegen war. Perl war nie eine großartige Web-Sprache (obwohl PHP die reine Destillation aller bösen Perl-Programme ist), aber es ist fantastisch als Ersatz für Bash-Skripte. Das Problem tritt auf, wenn die Leute so tun, als gäbe es eine Silberkugel.
Jason Lewis
16

Die Popularität einer Sprache hat sehr wenig mit ihrer Lebensfähigkeit oder Verwendbarkeit zu tun. Perl ist immer noch eine sehr nützliche Sprache. Sein Ruf, ob verdient oder nicht, als unfreundlich für Neulinge bedeutete schließlich, dass niemand Neues es lernen würde, wenn sie ihm helfen könnten. Der einzige Grund, warum ich es nicht mehr benutze, ist, dass niemand, den ich kenne, es mehr benutzt.

Karl Bielefeldt
quelle
5
Zeigt die Aussage "Der einzige Grund, warum ich es nicht mehr benutze, ist, dass niemand, den ich kenne, es mehr benutzt" nicht an, dass die Popularität vielleicht etwas mit seiner Lebensfähigkeit oder Benutzbarkeit zu tun hat? Wie auch immer, das ist nicht der Punkt meiner Frage, was ich wirklich wissen möchte, ist Perl immer noch nützlich? Wann wählst du es vor anderen Sprachen (wie in, wann strahlt es wirklich)?
Bob
1
Sprachen existieren als Ausdrucksmittel für andere Menschen. Es ist meiner Meinung nach unbegründet, wie beliebt eine Sprache für den Wert ist, den sie darstellt.
Fehler
4
Dies ist sehr umweltbasiert ... Wenn Sie ein * nix-Systemadministrator sind, beschränken sich Ihre Entscheidungen zur Erledigung gängiger Aufgaben auf Perl vs. sed + awk + grep + bash ... und Perl ist im Allgemeinen einfacher, als sich 4 Syntaxen für a zu merken einmaliges Skript.
Jason Lewis
12

Ich habe ungefähr 15 Jahre lang in Perl 5 programmiert, also bin ich ein bisschen voreingenommen. Trotzdem mag ich Perl sehr. Hören Sie nicht auf die Neinsager und denken Sie nicht, dass sein Alter irgendwie ein Indikator für sein Leben ist. Perl lässt sich am besten im Vergleich zu anderen Sprachen betrachten:

  • PHP - PHP ist eine ziemlich gute Web-Programmiersprache. Versteh mich nicht falsch. Aber es ist nur eine Web-Programmiersprache. Sogar Webanwendungen benötigen ihre Cronjobs, um Bereinigungsprozesse durchzuführen, und Sie müssen einige seltsame Dinge tun, um dies zu erreichen. Es macht nichts aus, ein schnelles Skript für den UNIX-Administrator zu schreiben oder eine Textdatei zu analysieren. Außerdem hat PHP kein CPAN.

  • Ruby - Die Sprache ist zu neu und "Script Kiddie" für meinen Geschmack. Das einzige, was ich über Ruby höre, ist Ruby on Rails. Perl hat Catalyst und Dancer (als MVC-Frameworks), verdammt gute MVCs, aber es ist nicht der Eckpfeiler der Sprache. Sie werden "Ruby" nicht in naher Zukunft (wenn überhaupt) in Stellenangeboten finden. Außerdem hat Ruby kein CPAN.

  • Python - In den Worten von Larry Wall ist Python nur Schlangenöl. Python kümmert sich um Whitespace, und die letzte Sprache, die mich um Whitespace kümmerte, war BASIC. Ebenso wie BASIC wurde es im Wesentlichen als benutzerfreundliche Anfängersprache konzipiert. Endlich kein CPAN hier.

  • Java - Java ist eine problematische Kindersprache. Das Konzept bestand darin, diese virtuelle Maschine auf jeder Plattform laufen zu lassen, aber aufgrund der großen Beliebtheit der Sprache in Universitätskursen sieht man Java-Anwendungen überall dort, wo sie nicht sein sollten. Zum Beispiel sollten interne serverbasierte Webanwendungen nicht vorhanden sein. Es ist ein einzelner Server mit specs sie definieren und es wird in einer separaten VM mit einem begrenzten Speicherbedarf gewickelt. Java ist aufgebläht und sie haben kein CPAN.

  • Tatsächlich habe ich diese Sprache jetzt ziemlich oft benutzt und es schien, als hätte ich eine Liebes- / Hass-Beziehung dazu aufgebaut. Es ist cool und macht Spaß, Methoden mit verschiedenen Parametern zu überladen. Aber wenn Sie eine Sprache wollen, die sich in jeder Codezeile über Typumwandlung auskennt , dann ist C # genau das Richtige für Sie. Mein Gott, es möchte, dass du ÜBERALL explizites Casting ausführst! Das Erstellen von Klassen macht Spaß, aber plötzlich merkt man, dass man mehr Zeit damit verbringt, Klassen zu erstellen, um die verdammte Sprache zum Funktionieren zu bringen, als echten Code zu schreiben.

    Außerdem hat C # nicht ... okay, es hat .NET, was wirklich gut und umfangreich ist. Ich mag CPAN jedoch immer noch besser, da Sie immer noch Ihre eigenen Module schreiben und sich beim Autor über einen Fehler oder einen Designfehler beschweren können. Und sie sind alle frei. Außerdem arbeitet Perl in Zukunft an Perl.NET, sodass wir möglicherweise in Kürze Windows-Anwendungen entwerfen werden.

Perl ist eine großartige Sprache mit:

  • Reguläre Ausdrücke - Wenn es eine Sache ist, die Perl gut kann, dann ist es die Textmanipulation. Ja, viele Sprachen haben reguläre Ausdrücke, aber Perl hat sie fast erfunden, und es gibt einen Grund, warum grep einen "Perl Regular Expression" -Modus hat, oder warum Oracle einen Abschnitt über "Perl-beeinflusste Erweiterungen in Oracle Regular Expressions" hat. Es ist eingebaut und benötigt keine Module.

  • Flexibilität - Sie haben drei grundlegende Variablentypen: Skalare, Arrays und Hashes. Das ist es. Das ist alles was du brauchst. Sie haben kein Int, Byte, String oder irgendetwas davon. Perl findet es ganz gut heraus. Und Sie können alle gewünschten Referenzen verwenden, ohne sich vor Speicherverlusten zu fürchten oder den gesamten PC zum Absturz zu bringen. Die Sprache funktioniert einfach.

  • Portabilität - Perl funktioniert hervorragend im Web. Es funktioniert hervorragend unter UNIX. Es funktioniert sogar ziemlich gut in Windows. Es ist nicht an eine einzige Funktion gebunden. Es ist ein Alleskönner, aber auch ein Meister (meistens) von allem.

  • Mit ein wenig Code ist es einfach, eine Menge zu tun. Geben Sie mir eine 1K-leere Datei und ich kann mit diesem Platz alle möglichen Dinge schreiben. Sogar ein Perl-Einzeiler eignet sich hervorragend zum Hinzufügen in eine Befehlszeilenpipe.

  • CPAN - Ich kann nicht betonen, wie gut es ist, fast alles zu finden, was man für etwas braucht. Was ist "irgendetwas"? Wie wäre es mit DB-Modulen für jede denkbare Datenbank, von Oracle über iPod bis CSV, von Adabas bis Yaswi? Wie wäre es mit mehreren voll ausgestatteten Webservern? Wie wäre es mit einem Excel-Dateireader oder einem SNMP-Modul oder einem Modul, das Kommentare für Debug-Zeilen liest, oder mit Modulen, mit denen Sie schneller programmieren können? Ein Projekt, das ich gerade mache, ist das Schreiben eines dynamischen Terraria-Kartengenerators, der aus einem vorhandenen Modul namens Games :: RolePlay :: MapGen erweitert wird. .NET würde so etwas niemals haben.

    Außerdem ist die Installation eines Moduls über CPAN ein Kinderspiel. Erhalten Sie es von Debian. Installieren Sie es direkt von CPAN. Es leistet bei der Lösung von Abhängigkeiten die bestmögliche Arbeit. Ich habe kein Problem damit, meinem Sysadmin mitzuteilen, dass er das X-Modul von CPAN installieren soll, da es sich nur um einen einfachen einzeiligen Befehl handelt.

Ja, es hat seine Mängel, und ja, ich bin voreingenommen, aber Sie haben die Negative wahrscheinlich schon zu oft gehört. Sie überwiegen bei weitem nicht die positiven Aspekte.

Brendan Byrd
quelle
14
-1 hauptsächlich, weil nicht erkannt wurde, dass andere Sprachen Werkzeuge haben, die genauso gut, wenn nicht besser als CPAN sind. Maven Central für Java zum Beispiel? Es hat mehr Artefakte als CPAN und es ist ein 0-Liner, um Maven-Artefakte zu installieren, da sie durch die Abhängigkeitsanalyse des Projektobjektmodells automatisch identifiziert werden. Ich habe auch weniger Erfahrung mit Ruby Gems, aber ich glaube, sie entsprechen in etwa CPAN.
Mikera
8
PHP hat PEAR. Und es ist nicht nur eine Web-Programmiersprache.
MattBianco
25
Ich würde nicht sagen, dass Sie ein bisschen voreingenommen sind. Sie sind eindeutig voreingenommen. Ich kann nicht glauben, dass Sie Python nur deshalb abschwächen können, weil es signifikante Leerzeichen enthält und weil Larry (hier sicherlich keine objektive Quelle) den Ausdruck Schlangenöl verwendet hat. Und es gibt überhaupt keine Stellenangebote für Ruby? Wann haben Sie den Arbeitsmarkt zuletzt gesehen? Versuchen Sie zumindest, die Anmeldeinformationen von Perl zu ermitteln.
Muhammad Alkarouri
6
-1 für eine eindeutig voreingenommene und unerforschte Perspektive auf andere Sprachen. Ich stimme zu, dass Python Schlangenöl ist, aber Ruby == "script kiddie" ist absurd. Ich habe noch nie einen Ruby-basierten Angriffsversuch auf einem der von mir verwalteten Server gesehen. Es ist meistens Python. PHP ist in irgendeiner Hinsicht eine akzeptable Programmiersprache? Shenanigans. Ihre Kommentare zu C # zeigen eine erstaunliche Naivität in Bezug auf Typisierung und / oder Objektorientierung. Bleib bei Perl, Kumpel. Im Ernst, ich werde Perl immer lieben, weil es meine erste "echte" Programmiersprache war und für Sysadmin-Aufgaben brillant ist, aber diese Antwort ist schlimmer als schlecht.
Jason Lewis
8
+1 Für das Deaktivieren jeder Sprache, die ich jemals geliebt (oder gehasst) habe - außer natürlich Perl. :-)
jpaugh
12

Die Leistung ist einer der Hauptgründe, warum Sie sich für Perl entscheiden sollten. Verglichen mit Python, Ruby oder einer der JVM-basierten Skriptsprachen ist es blitzschnell.

Aus diesem Grund wurde es im Data-Mining-Bereich nie ersetzt. Alle anderen (Freebie-) Sprachen sind langsamer, wenn es darum geht, große Datenmengen zu verarbeiten.

James Anderson
quelle
6
Können Sie Support / Benchmarks für diese Behauptung bereitstellen? IT scheint mir die letzten Benchmarks zu sein, die ich für Perl vs. Ruby / Python gesehen habe. unter Einbeziehung alternativer Implementierungen der letzteren.
Jason Lewis
2
Alle Anmerkungen zur Leistung müssen eine Verallgemeinerung sein, es sei denn, bestimmte Releases und Umgebungen werden angegeben. Viele Benchmarks da draußen - hentenaar.com/serendipity/index.php?/archives/… onlyjob.blogspot.com/2011/03/… sind ziemlich typisch. Sie haben Recht, die neuesten Versionen von Ruby sind ziemlich schnell, aber Perl hat regelmäßige "Performance Enhancement" -Versionen und sollte daher kein Problem damit haben, Schritt zu halten. LUA schlägt alles.
James Anderson
Lua ist ziemlich heiß.
Jason Lewis
12

Perl hat seinen Platz. Der "schlechte Ruf" ist im Allgemeinen darauf zurückzuführen, dass Sie sehr flexibel Dinge tun können, die wirklich mit einem anderen Tool erledigt werden sollten.

Wenn Sie sich die Frage stellen: "Was versuche ich zu erreichen? Und gibt es geeignete Werkzeuge, um dies zu erreichen?" dann bist du ein teil des weges dorthin.

Wenn Sie ein schnelles Skript schreiben, ist die Verwendung einer Skriptsprache sinnvoll. Wenn Sie eine komplexe Anwendung erstellen möchten, können Sie sie in Perl "schreiben", aber das sollten Sie wahrscheinlich nicht.

Da sich Ihre Frage jedoch auf einen neuen Programmierer bezieht, kann ich vorschlagen, Perl vorerst in Ruhe zu lassen. Ganz einfach, weil Sie mit einer weniger flexiblen Sprache weniger schlechte Gewohnheiten lernen.

Ptolemäus
quelle
3
In Ordnung, aber Python ist eine durchaus praktikable Option zum Erstellen eines schnellen Skripts. Sie können es aber auch dehnen, um größere Programme zu erstellen. Gilt das auch nicht für Perl? Macht das Python besser als Perl?
Bob
@Bob: Ich denke, es ist hauptsächlich das, woran du gewöhnt bist und dein Geschmack. Manchmal gibt es auch eine praktische Perl-Bibliothek, die Sie in Python nicht haben und umgekehrt.
dagnelies
1
@ Bob: Ich würde ihm empfehlen, zuerst Python zu probieren, es ist eher noob-freundlich. Dann würde ich ihm sagen, dass er eine ganz andere Sprache als die zweite Sprache wählen soll, wie Scheme.
dagnelies
1
@Bob: Das gesamte .NET Framework ist nur unter Windows verfügbar. Im Unix / Linux-Bereich ist Perl eine großartige Sprache zum Ersetzen von Shell-Skripten, für die Systemadministration und für alles, was viel Textverarbeitung und nicht viel anderes erfordert. Es macht Dinge direkt, für die Python ein bisschen Struktur brauchte. Dies macht Perl im Allgemeinen zu einer schlechteren allgemeinen Programmiersprache, aber besser für seine spezialisierteren Anwendungen.
David Thornley
1
@ Bob Eigentlich ist das ein interessanter Punkt. Perl ist sehr praktisch, wenn Sie ein Shell-Skript haben, das die Grenzen von bash übersteigt. Perl kann es ziemlich einfach verarbeiten, da Sie die meisten Befehle nur mit Backticks umgehen können und es trotzdem funktioniert.
Stephen Gross
12

Ich war von Python durch sein Layout angezogen - die Blockstruktur ist "was Sie sehen, ist was Sie bekommen" - und verstehe nicht, warum es Leute gibt, die davon abgeschreckt sind. Ich denke, es war und ist eine gute Idee.

Ich ging jedoch zurück zu Perl. Es scheint einfach besser als praktisches Werkzeug gedacht zu sein. In der Informatiktheorie sind Python und Ruby "besser". Aber ich arbeite in der realen Welt.

Ruby und Python sind bei Kindern, die gerade das College beendet haben, modischer. Die meisten Programmierer, die auf Facebook sind, werden der aktuellen Mode folgen und sich für Ruby oder Python entscheiden. Der ursprüngliche Post illustriert dies: Es verschmilzt "Lohnt es sich" mit "Ist es immer noch beliebt?"

Es ist mir egal, ob Perl in einer Facebook-Welt "beliebt" ist. Es ist wahrscheinlich die am häufigsten verwendete Skriptsprache unter Menschen, die viel leisten, was etwas ganz anderes ist. Einige der Kommentatoren, die glauben, dass ihre Lieblingssprache eine mit CPAN vergleichbare Ressource hat, wissen nicht, wie umfassend und tiefgreifend CPAN ist.

user83421
quelle
5
Signifikantes Leerzeichen ist eine schreckliche Idee. Immer war, wird immer sein. Davon abgesehen, obwohl ich Ruby überall dort verwende, wo es Sinn macht, habe ich immer noch ein paar Perl-Skripte für Sysadmin-Aufgaben, die ich in Ruby nicht umschreiben musste. Warum? Sie funktionieren einwandfrei und sind Perls Liebling. Warum mehr Arbeit schaffen?
Jason Lewis
1
Menschen zum richtigen Einrücken zu zwingen, ist unabhängig von der Sprache eine gute Idee. Bessere Sprachen (wie Python) wenden lediglich mehr Kraft an.
Brendan
10

Perl ist DIE Sprache zum Schreiben von Einwegwerkzeugen. Es gibt verschiedene andere Anwendungen, in denen Perl mehr oder weniger beständig und nützlich ist. Wenn Ihnen jedoch ein Shell-Befehl fehlt, um etwas Seltsames zu tun, wenn Sie einen Stub zum Abrufen einiger Daten von einem ungeraden Socket benötigen, wenn Sie eine Protokolldatei oder eine haben Sie müssen einige Inhalte auf eine Weise extrahieren, die außerhalb der Reichweite von SQL liegt, wenn Sie einige Bilder vom Server ziehen müssen oder wenn Ihre Webseitenvorlagen alle die gleiche Art von Fehlern enthalten und sie alle beheben möchten - Auspeitschen Ein 10-minütiges Perl-Skript ist der richtige Weg.

Dasselbe in Shell zu schreiben, wäre wahrscheinlich möglich, aber aufgrund seltsamer Einschränkungen der Shell-Syntax wird es länger dauern und kann viel schwieriger sein. Das Schreiben in einer "professionellen" Sprache wie C ++, C #, Java usw. dauert im Vergleich dazu ungefähr eine Stunde. Das Schreiben in einer konkurrierenden Skriptsprache wie Python, Ruby oder PHP ist eine praktikable Alternative und wird wahrscheinlich bis zu 20% länger dauern.

Ja, Programme in anderen Sprachen sind leichter zu warten und leichter zu lesen. Wenn Sie jedoch JETZT eine Lösung benötigen, ist Perl der richtige Weg.

SF.
quelle
8

Schauen Sie sich die "Recent Uploads to CPAN" - Seite an . Täglich werden mehr als 20 neue oder aktualisierte Module hochgeladen. Ich denke, die durchschnittliche Anzahl der täglichen Uploads ist langsam aber stetig gestiegen. Ist diese Aktivität ein Zeichen für eine Sprache, die im Sterben liegt? Nein!

Es beeindruckt mich immer wieder, wie einige wichtige Module (zum Beispiel für die Webprogrammierung oder Schnittstellen zu RDBMS-Treibern) über viele Jahre gewartet und weiterentwickelt wurden. Oft vom ursprünglichen Autor oder von neuen Betreuern. Oft hat dies sehr ausgereiften Code erstellt.

Um ein Modul in CPAN zu integrieren, sollten Autoren einen sehr langen Weg gehen, um die Abwärtskompatibilität (mit älteren Perl 5-Versionen) sowie die Plattformunabhängigkeit zu gewährleisten. Siehe zum Beispiel http://matrix.cpantesters.org/?dist=DBI (DBI = Datenbankschnittstelle, Abstraktionsschicht)

Auch die Sprache selbst: Ich bin ein bisschen verwundert über die neuen Funktionen, die seit 5.10, 5,12, 5.14 in der Sprache enthalten sind. Ich habe nicht gelernt, die neuen Funktionen zu nutzen. Perl hat sich für mich zu schnell entwickelt!

knb
quelle
7

Ich habe Perl 4 und 5 während der Systemadministration in den 90ern gelernt. Heute programmiere ich Java (wo das Aufrufen von Perl normalerweise nicht wünschenswert ist) und benutze Perl immer noch ab und zu auf meinem Entwicklungscomputer. Dies ist in der Regel nur für die Datenerfassung in Protokolldateien vorgesehen, bei denen die regulären Ausdrücke in Perl und das Gerüst für das Parsen von Texten in Perl die Ausführung in einer Befehlszeile sehr einfach machen.

Im Wesentlichen benutze ich es heute als awk auf Steroiden. Dafür ist es genial.

Eines der Merkmale von Perl ist, dass es mehr als eine Möglichkeit gibt, fast alles zu tun. Auf diese Weise können Sie diejenige auswählen, die zu Ihrer Denkweise passt - was großartig ist, wenn Sie nur einen oder zwei Oneliner hacken, aber nicht so großartig, wenn Sie den Perl-Code anderer Leute verstehen müssen, da diese normalerweise eine andere Methode wählen, um dies zu tun passt zu ihrer Denkweise.

Ich würde Perl als ein sehr nützliches Tool betrachten, das Sie vielleicht erlernen möchten, wenn Sie sich nur auf die Funktionen der regulären Ausdrücke konzentrieren, die Sie beim Durchsuchen Ihrer Textdateien unterstützen. Halten Sie sich von allem fern, was mit Gegenständen zu tun hat.

user1249
quelle
Sie würden sagen, es ist am nützlichsten für schnelle Skripte, um mit Text umzugehen?
Bob
Meiner Meinung nach ja, dann ist es wirklich sehr, sehr gut. Es kann auch andere Dinge tun, aber diese sind nicht so gut gebacken.
1
Perl ist zwar sehr gut darin, Text mit regulären Ausdrücken zu verarbeiten, es ist jedoch nicht erforderlich, sie durchzuarbeiten, wenn Sie Python oder Ruby (oder vielleicht PHP) kennen, da sie auch sehr gut mit regulären Ausdrücken umgehen können. Python ist zwar etwas ausführlicher, aber auf jeden Fall auch sauberer.
Eric O Lebigot
@EOL, aber weder Python noch Ruby oder PHP können das Gerüst für das Parsen von Texten auf Onelinern übersteigen. Siehe zB die Option "-i".
@ ThorbjørnRavnAndersen: Einverstanden, für einen Liner: Pythons Oneliners (Option -c) sind in der Tat länger. :)
Eric O Lebigot
7

Für eine Weile stagnierte die Entwicklung von Perl5, da der Fokus auf Perl6 lag, was zu einer langen Verzögerung zwischen der Veröffentlichung von 5.8 und 5.10 führte. Seitdem hat die Community wirklich gemerkt, dass Perl5 und Perl6 verschiedene Sprachen sind und es in letzter Zeit sehr regelmäßig neue Versionen gab.

Perl gewann kürzlich einen Web-App-Wettbewerb mit Catalyst (obwohl ich Mojolicious bevorzuge ) und einige der neuen modernen Perl-Praktiken bringen Perl eine Menge sauberer OO-Ideen mit Dingen wie Moose.

Als Perl-Entwickler hat Perl meiner Meinung nach ein großes Erbe und eine glänzende Zukunft, da es nicht nur das Klebeband ist, das Unternehmensnetzwerke zusammenhält, sondern auch einen Platz in der neuen Aktualität von Webanwendungen einnimmt.

AFresh1
quelle
3

Ich bin kein erfahrener Programmierer. Aber ich fand Perl ziemlich einfach zu lernen (ich habe das Kamelbuch benutzt), es war mir immer ein Vergnügen, und PerlMonks war die freundlichste Hilfegemeinschaft im Programmierland. Perl scheint seinen Sexappeal im Hinblick auf die Einstellung von Mitarbeitern bei Ruby und Python verloren zu haben, allerdings nur in bestimmten Branchen (insbesondere im Internet).

Isomorphismen
quelle
3

Wenn Sie Perl kennen, ist es einfacher, Microsoft PowerShell zu erlernen. In Bezug auf die Powershell-Syntax gibt es keine Perl- Wurzeln , aber Powershell hat viele Funktionen und Konzepte aus der Sprache Perl übernommen, z. Dateikonventionen zum Benennen und Speichern von Modulen und in gewisser Weise zum automatischen Laden, um nur einige zu nennen.

Wenn Sie Perl kennen, ist es praktisch und es ist ein bisschen einfacher, Powershell zu lernen, die Denkweise von Powershell zu verstehen oder die Powershell-Redewendung in Ihrem Langzeitgedächtnis zu behalten. Die Begegnung mit Powershell ohne Perl-Hintergrund ist wahrscheinlich etwas seltsamer. Ich sage nur.

Natürlich hat die Sprache Powershell neue Funktionen hinzugefügt, insbesondere die .NET-Freundlichkeit, und keine der Perl-Funktionen / Operatoren fortgesetzt, die "Abwärtskompatibilität" mit den Unix-Befehlszeilentools bieten.

knb
quelle
2

Grant McLean hat gerade einen kurzen Film hochgeladen , der auf der Entwicklung von mapofcpan.org basiert und zeigt, wie sich der CPAN im Laufe der Zeit mit einer visuellen Art und Weise im Kartenstil entwickelt. Es ist ziemlich selbsterklärend über die Lebendigkeit der Gemeinschaft. Nicht sterben.

Perl leidet sicherlich unter seinem schlechten Ruf, weil es viele Legenden gibt und weil die Community nicht will und nicht versucht, es zur angesagtesten Programmiersprache der Welt zu machen. Es ist sehr schwer zu verstehen, warum so viele Menschen absolut davon überzeugt sind, dass es eine schreckliche Sprache ist. Sie können gruseligen Code in jeder Sprache schreiben. Perl verfügt wie jede andere Sprache über Best Practices. Sie müssen es nur auf mehr als eine Weise implementieren, um die Basisphilosophie zu verwirklichen .

Ich kann einen sehr traurigen Grund für diesen schlechten Ruf sehen: Perl-Communitys-Websites erhielten lange Zeit sehr hässliche UI-Designs (wie zum Beispiel perlmonks.org ). Persönlich interessiert mich das wirklich nicht , vielleicht komme ich sogar zu Perl, weil aus diesem Grund: nicht viele modische Webseiten-Benutzeroberflächen, aber Sie können den Tools vertrauen, der Community mit viel mehr Vertrauen, weil sie es nicht versucht sei schöner als es ist. Qualitätswerkzeuge bedeuten jedoch nicht, dass Sie sich nicht auf das Erscheinungsbild konzentrieren sollten, und es ist schließlich eine Art Fehler, sich nicht um das Aussehen zu kümmern.

Ein Freund von mir (der modischere Sprachen mag) sagte mir zum Beispiel, dass das aktuelle Perl6-Logo schrecklich ist und es ein Problem sein wird, junges Fleisch für Perl zu gewinnen. Viel mehr ein Problem als mit einem hellen Stein oder einem anderen gut gestalteten Logo .

Ich glaube, es ist ein sehr trauriger Grund für die Unbeliebtheit, aber das ist es, was die Welt regiert.

Sebf
quelle
Wenn Sie auf Ihrem Logo nicht auf Details achten, warum sollte ich dann davon ausgehen, dass Sie in den tieferen Details Ihrer Sprache auf Details achten? Es ist nicht nur so, dass das Logo schlecht aussieht, es ist auch so, dass sich das schlechte Logo symptomatisch für eine Kultur anfühlt, die die Darstellung der Dinge nicht
schätzt
Ich habe von Leuten gehört, die an dem schlechten Ruf arbeiten. Diese Leute sind Befürworter des modernen Perl und der testgetriebenen Entwicklung. Websites wie builtinperl.com und questub.io ändern die Art und Weise, wie wir den Fall Perl betrachten sollten. Duck Duck Go ist auch ein großer Erfolg, niemand kann sagen, dass es ihm egal ist, wie die Dinge präsentiert werden. Sogar metacpan.org war eine Möglichkeit, dem CPAN-Benutzer (der Hauptstärke von Perl) eine neue Erfahrung zu bieten, indem Code-, Dokumentations- und Suchmodule mit einer schönen Benutzeroberfläche angezeigt wurden. Ich glaube nicht an Sprachenlogos: Hat C ein Logo? Eine Sprache ist keine Marke.
Smonff
1

Perl stirbt definitiv nicht. Es war noch nie so aufgeregt wie in einigen anderen Sprachen.

Perl selbst ist zwar eine alte Sprache, verfügt jedoch über eine lebendige und sehr produktive Community, deren Wert in der CPAN-Bibliothek enthalten ist. Ich glaube nicht, dass eine Sprache eine Bibliothek hat, die so umfangreich und umfassend ist wie CPAN. Nichts kommt auch nur in die Nähe. In CPAN finden Sie Tausende von Modulen und Frameworks, die fast alles tun, was Sie sich vorstellen können. Benötigen Sie einen Webserver? Es gibt HTTP :: Server. Benötigen Sie eine eigenständige Datenbank? Es gibt Muldis :: DB. Was auch immer Ihre Anforderungen sein mögen, Sie werden in der Regel mehrere Module finden, die Ihre Anforderungen erfüllen. Sie müssen nur das auswählen, das am besten zu Ihrer App passt.

Was Ruby, Python und andere Konkurrenten betrifft, denke ich, dass gesunder Wettbewerb ein enormer Vorteil für Perl war. Alles, was andere Sprachen haben, hat die Perl-Community in Perl umgeschrieben. Zum Beispiel, als Ruby auf dem Erfolg von Rails flog, bekam Perl Dancer, was in vielerlei Hinsicht besser ist als Rails.

Perl ist definitiv nicht tot und stirbt auch nicht. Es gibt einfach nichts Auffälliges, es gibt keine Firma, die davon profitieren würde, Perl in den Bann zu ziehen, sodass nicht viel Medienaufmerksamkeit auf sich gezogen wird und nicht jedes Kind Perl kennt, sodass weniger darüber geredet wird.

Seit Ihrem ursprünglichen Beitrag sind mehr als 6 Monate vergangen. Falls Sie sich noch nicht entschieden haben, tun Sie sich selbst einen Gefallen und lernen Sie Perl.

Rox
quelle
0

Ich benutze Perl seit den 90ern für die Entwicklung von Webspielen und stimme nach einer Pause von 3 Jahren dem vorherigen Poster zu. Ich komme zurück und stelle fest, dass es sich weit darüber hinaus entwickelt hat, wo ich es verlassen habe.

Stirbt es? Keine Chance.

Ist es nützlich? Ich würde ohne es verloren sein. Vielleicht bin das nur ich, aber von den anderen Antworten würde ich sagen, dass es ein sehr aktives Lebewesen ist.

Guruchild
quelle
-6

Ich habe den größten Teil meiner beruflichen Web-Erfahrung mit PHP gesammelt, aber als ich als Entwickler aufgewachsen bin, wurden die Dinge ein bisschen herausfordernder. Viele Aufgaben, die PHP einfach nicht ausführen konnte oder die grob ineffizient sind. Ich hätte die Hände hochwerfen können, aber stattdessen (dank Google) befand ich mich in SSH-Sitzungen und nutzte libreoffice, ffmpeg, imagemagick, um Post-Process-Funktionen für PHP zu schreiben. Ich habe es noch nie benutzt, bevor ich mich für PERL entschieden habe. Hauptsächlich, weil Perl perfekt unter dem LAMP-Stack sitzt.

(1) Es ist auf allen LAMP-Servern vorinstalliert oder hat zumindest eine frische Drehzahl. (2) hat ein großartiges CPAN-Repo, um Ihnen viel Zeit zu sparen. (3) Schnellere / sicherere Ausführung von Aufgaben, bei denen die Ausführung von PHP auf Apache fehlschlägt. (4) sehr ähnlich zu PHP und leicht zu erlernen.

Mischen Sie Ideen mit PHP, backen Sie nach Belieben mit PERL mit BASH, drehen Sie nach MySQL und servieren Sie dann HTML5 und einen Schuss jQuery. Es ist ein tolles Rezept.

EDJ
quelle
1
Gibt es etwas, das diese Aussagen stützt?
Austin Henley