Website-Suche

Tauchen Sie tief in die Debatte zwischen Python und Perl ein – Was sollte ich Python oder Perl lernen?


Wenn eine neue Programmiersprache eingeführt wird, kommt es oft zu einer Debatte unter den genialen Köpfen der Branche, in der die Sprache mit der Sprache verglichen wird, die bereits ihre Wurzeln verbreitet. In der IT-Branche macht sich oft eine Art Aufregung breit, und das Neue wird oft in jeder Hinsicht verglichen, seien es nun Funktionen, Syntax oder Kern-CPU- und Speicheraspekte, einschließlich GC-Zeit und so weiter, mit dem bestehenden seiner Art.

Viele Beispiele für solche Fälle können aus der Vergangenheit aufgegriffen und untersucht werden, einschließlich der Debatte zwischen Java und C#, C++ usw. Ein solcher Fall, der große Aufmerksamkeit erregte, war die Debatte zwischen zwei Sprachen, die in kurzer Zeit nacheinander herauskamen, nämlich Python und Perl.

Wohingegen Python ursprünglich als Nachfolger der ABC-Sprache erfunden wurde, lediglich als „Hobby“-Programmierprojekt (das Unix/C-Hacker anlocken sollte) für den Autor, der es nach benannt hat Serie seines größten Stars Monty Python.

Empfohlene Lektüre: Erste Schritte mit der Python-Programmierung und Skripterstellung unter Linux

Perl war knapp zwei Jahre zuvor eine Unix-Skriptsprache, die die Berichtsverarbeitung vereinfachen sollte. Es war eine Mischung aus einer Kombination vieler Sprachen, darunter C, awk, sed und Shell-Skript.

Bemerkenswert ist, dass diese Sprachen, die aus unterschiedlichen Absichten entstanden sind, ständig verglichen werden, was mich veranlasst hat, die Gründe zu studieren und herauszufinden, von denen einige wichtige im Folgenden aufgeführt sind:

  1. Beide zielten auf das Unix-Betriebssystem ab, einer für Hacker und andere zur Verarbeitung von Meldungen.
  2. Beide sind objektorientiert (Python ist mehr) und werden interpretiert, wobei eines stark typisiert und klar ist, wenn es um die Codierung geht, z. B. Python, und das andere eine hässliche Eingabe mit geschweiften Klammern zur Darstellung eines Blocks ermöglicht, z. B. Perl
  3. Beide sind im Prinzip gegensätzlich, wenn wir sagen, dass Perl viele Möglichkeiten hat, eine einzelne Aufgabe zu erledigen, während Python sich auf eine und nur eine Möglichkeit konzentriert, Dinge zu erledigen.

Python vs. Perl – Funktionen im Vergleich

Lassen Sie uns tief in diese Debatte eintauchen und versuchen, die allgemeinen Aspekte herauszufinden, in denen sich diese beiden Sprachen voneinander unterscheiden. Versuchen wir außerdem, die Wahrheitsquelle für viele Klischees herauszufinden, die in der Branche zu hören sind und sagen: „Python ist Perl mit Stützrädern“ oder „Python ist Perl ähnlich, aber anders“, damit wir versuchen können, eine genaue Lösung für diese nie endende Debatte zu finden.

1. Pythons saubere vs. komplexe Syntax von Perl

Python hat gegenüber Perl einen großen Vorteil, wenn es um die Lesbarkeit des Codes geht. Der Code von Python ist viel klarer zu verstehen als der von Perl, selbst wenn man den Code nach Jahren liest.

Durch die Einrückung, die den Codeblock darstellt, und die richtige Strukturierung ist der Python-Code viel sauberer. Andererseits übernimmt Perl seine Syntax aus verschiedenen Programmiersprachen wie C, Shell-Scripting und sogar AWK- und SED-Filtern, wenn es um reguläre Ausdrücke geht.

Empfohlene Lektüre: 15 nützliche „sed“-Befehle für tägliche Linux-Systemverwaltungsaufgaben

Da '{' und '}' außerdem einen Codeblock darstellen und am Ende jeder Zeile unnötigerweise ';' hinzugefügt wird, könnte Code in Perl werden Es ist schwierig, es zu verstehen, wenn man es nach Monaten oder Jahren liest, da es hässliche Skripte zulässt.

2. Perls integrierte Funktionalität vs. Pythons Drittanbieter-Regex- und Betriebssystem-Betriebsunterstützung

Die Perl-Sprache entlehnt ihre Syntax von C und anderen UNIX-Befehlen wie sed, awk usw. Dadurch verfügt es über eine äußerst leistungsstarke und integrierte Regex-Unterstützung, ohne dass Module von Drittanbietern importiert werden müssen.

Außerdem kann Perl Betriebssystemoperationen mithilfe integrierter Funktionen verarbeiten. Andererseits verfügt Python über Bibliotheken von Drittanbietern für beide Operationen, d. h. re für regex und os, sys für os-Operationen, die dies erfordern Stellen Sie sicher, dass vor der Durchführung solcher Arbeiten sichergestellt ist.

Perls Regex-Operationen haben eine „sed“-ähnliche Syntax, die es nicht nur einfacher macht, Suchoperationen durchzuführen, sondern auch Ersetzungs-, Ersetzungs- und andere Operationen an einer Zeichenfolge können einfacher und schneller durchgeführt werden als Python, wo eine Person es wissen muss und erinnern Sie sich an die Funktionen, die dem Bedarf gerecht werden.

Beispiel: Stellen Sie sich ein Programm vor, das in Perl und Python nach einer Ziffer in der Zeichenfolge sucht.

Import re
str = ‘hello0909there’
result = re.findall(‘\d+’,str)
print result
$string =  ‘hello0909there’;
$string =~ m/(\d+)/;
print “$& \n”

Wie Sie sehen, ist die Syntax für Perl sehr einfach und vom Befehl sed inspiriert, der die Vorteile der Python-Syntax nutzt, die das Modul ‘re’ von Drittanbietern importiert.

3. Pythons fortgeschrittene OO-Programmierung vs. Perls Einzeiler

Eine Funktion, bei der Python Perl in den Schatten stellt, ist seine fortschrittliche OO-Programmierung. Python verfügt über umfassende objektorientierte Programmierunterstützung mit sauberer und konsistenter Syntax, während das Objekt OOP in Perl veraltet ist, wo das Paket als Ersatz verwendet wird für den Unterricht.

Empfohlene Lektüre: Erste Schritte mit Python Django Web Framework

Außerdem wird das Schreiben von OO-Code in Perl den Code viel komplexer machen, was schließlich dazu führen würde, dass der Code schwer zu verstehen ist, selbst Unterroutinen in Perl sind sehr schwer zu programmieren und letztendlich auch später schwer zu verstehen.

Andererseits zeichnet sich Perl vor allem durch seine Einzeiler aus, die in der Befehlszeile zum Ausführen verschiedener Aufgaben verwendet werden können. Außerdem kann Perl-Code letztendlich verschiedene Aufgaben in weniger Codezeilen erledigen als Python.

Ein Shortcode-Beispiel für beide Sprachen, das die Fähigkeit von Perl hervorhebt, mehr in weniger LOC zu leisten:

try:
with open(“data.csv”) as f:
for line in f:
print line,
except Exception as e:
print "Can't open file - %s"%e
open(FILE,”%lt;inp.txt”) or die “Can’t open file”;
while(<FILE>) {
print “$_”; } 

Vor- und Nachteile – Python vs. Perl

In diesem Abschnitt werden wir die Vor- und Nachteile von Python und Perl diskutieren.

Python-PROS:

  1. Die klare und elegante Syntax macht diese Sprache zu einer guten Wahl als erste Programmiersprache für Anfänger, die jede Programmiersprache praktisch erlernen möchten.
  2. Verfügt über eine sehr fortgeschrittene und inhärente OO-Programmierung, außerdem ist die Thread-Programmierung in Python viel besser als Perl.
  3. Es gibt viele Anwendungsbereiche, in denen Python bevorzugt wird und sogar Perl übertrifft. Wie: Perl wird für CGI-Skripte bevorzugt, aber heutzutage erfreuen sich Pythons Django und web2py-ähnliche Web-Skriptsprachen immer größerer Beliebtheit und erfreuen sich einer großen Anziehungskraft in der Branche.
  4. Verfügt über mehrere SWIG-Wrapper für verschiedene Programmiersprachen wie CPython, IronPython und Jython und die Entwicklung dieser ging der Entwicklung voraus von SWIG-Wrappern für Perl.
  5. Python-Code ist immer gut eingerückt und leicht zu lesen und zu verstehen, selbst wenn Sie den Code einer anderen Person oder sogar Ihren Code nach Jahren lesen.
  6. Python eignet sich für verschiedene Anwendungen wie Big Data, Infra-Automatisierung, Maschinelles Lernen, NLP usw Große Unterstützung aktiver Communities, da es Open Source ist.

Python-NACHTEILE:

  1. Es gibt wenige Bereiche, in denen die Ausführung in Python normalerweise langsamer ist als die von Perl, einschließlich regex und stringbasierter Operationen.
  2. Manchmal ist es schwierig, den Variablentyp in Python zu ermitteln, da man bei sehr großem Code bis zum Ende arbeiten muss, um einen Variablentyp zu erhalten, der hektisch und komplex wird.

Perl-VORTEILE:

  1. Perl verfügt über leistungsstarke Einzeiler und gewährleistet sogar eine UNIX-Piping-ähnliche Syntax, die in der Befehlszeile zum Ausführen verschiedener Aufgaben verwendet werden kann. Außerdem ist es von Unix und seiner Befehlszeilenprogrammierung beeinflusst und integriert daher viele von UNIX beeinflusste Befehle in seine Codierung.
  2. Perl ist für seine leistungsstarken regex- und String-Vergleichsoperationen bekannt, da es von sed- und awk-ähnlichen leistungsstarken UNIX-Tools beeinflusst wird. Bei Regex- und String-Operationen wie Substitution, Matching, Replacement übertrifft Perl Python, was ein paar Codezeilen erfordern würde, um das zu erreichen Dasselbe. Auch viele Datei-E/A-Vorgänge und die Ausnahmebehandlung werden in Perl schneller durchgeführt.
  3. Wenn es um eine Sprache für die Berichterstellung geht, ist Perl seit seiner Einführung immer bekannt und einer der Hauptgründe für den Autor, eine Sprache wie Perl für die Berichterstellung zu entwickeln.
  4. Viele Anwendungsbereiche, in denen Perl Verwendung findet, sind Netzwerkprogrammierung, Systemadministration, CGI-Skripting (hier überholt Python Perl mit Django und web2py), usw.
  5. Es ist leicht, den Variablentyp anhand der Symbole zu identifizieren, die Perl davor verwendet, wie zum Beispiel: ‘@’ identifiziert Arrays und ‘%’ identifiziert Hashes.

Nachteile von Perl:

  1. Perl hat einen sehr komplexen Code, der für Anfänger schwer zu verstehen ist. Unterprogramme und sogar andere Symbole wie: ‘$`’, ‘$&’ usw. sind für einen weniger erfahrenen Programmierer schwer zu verstehen und zu programmieren. Außerdem wäre Perl-Code beim Lesen schwierig und komplex zu verstehen, es sei denn, Sie verfügen über eine gute Erfahrung.
  2. Die OO-Programmierung in Perl ist etwas veraltet, da sie nie für die OO-Programmierung bekannt war und viele Operationen wie Threading in Perl auch weniger ausgeprägt sind.

Abschluss

Wie oben gezeigt, sind beide Sprachen in Bezug auf die Anwendungen, auf die sie abzielen, gut, Python hat aufgrund seiner Eigenschaften als erste Wahl für Anfänger einen gewissen Vorteil gegenüber Perl sauberer und leicht verständlicher Code, wohingegen Perl Python übertrifft, wenn es um String-Manipulationsoperationen und einige fortgeschrittene Einzeiler für UNIX wie OS und verschiedene andere Operationen geht, für die es bekannt ist.

Letztendlich kommt es also auf den spezifischen Bereich an, auf den Sie abzielen. Alle Ihre Kommentare zu diesem Artikel sind willkommen und bitten Sie, Ihre Meinung zu diesem Thema zu äußern, wenn Ihrer Meinung nach Python oder Perl gewinnt.