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, gibt es oft eine Debatte, die unter einigen der genialen Köpfe in der Branche beginnt, in der die Sprache mit der Sprache verglichen wird, die bereits ihre Wurzeln ausbreitet. In der IT-Branche macht sich oft eine Art Buzz breit und das Neue wird oft in jedem Aspekt verglichen, sei es in Bezug auf Funktionen, Syntax oder Kern-CPU- und Speicheraspekte, einschließlich GC-Zeit und alles, mit dem bestehenden Einzigartigen 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 viel Aufmerksamkeit erregte, war die Debatte zwischen zwei Sprachen, die in kurzer Zeit nacheinander auftauchten, nämlich Python und Perl.
Während Python ursprünglich als Nachfolger der ABC-Sprache erfunden wurde, lediglich als "Hobby"-Programmierprojekt (das Unix/C-Hacker anziehen sollte), für den Autor, der es nach der Serie seines größten Stars Monty Python benannte.
Empfohlene Lektüre: Erste Schritte mit der Python-Programmierung und Skripterstellung unter Linux
Perl war nur knapp 2 Jahre zuvor eine Unix-Skriptsprache, die die Berichtsverarbeitung erleichtern sollte. Es war eine Mischung aus einer Kombination vieler Sprachen, darunter C, awk, sed und Shell-Schrift.
Erwähnenswert ist, dass diese Sprachen, die sich aus unterschiedlichen Absichten entwickelt haben, ständig verglichen werden, was mich dazu veranlasst hat, die Gründe zu studieren und herauszufinden, von denen einige wichtige im Folgenden aufgeführt sind:
- Beide zielten auf das Unix-Betriebssystem ab, eines für Hacker und andere, um Berichte zu bearbeiten.
- Beide sind objektorientiert (Python ist das mehre) und werden interpretiert, wobei einer stark typisiert und klar ist, wenn es um die Codierung geht, z. B. Python, und der andere eine hässliche Typisierung mit geschweiften Klammern zur Darstellung eines Blocks ermöglicht, z. B. Perl
- Beide sind im Prinzip gegensätzlich, wenn wir sagen, dass Perl viele Möglichkeiten hat, eine einzige Aufgabe zu erledigen, während Python sich auf eine und nur eine Art und Weise konzentriert, Dinge zu tun.
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 auch, die Quelle der Wahrheit für viele Klischees herauszufinden, die in der Branche zu hören sind, wenn sie sagen: "Python ist Perl mit Stützrädern" oder "Python ist ähnlich wie Perl, aber anders", damit wir versuchen können, mit einer genauen Lösung für diese endlose Debatte abzuschließen.
1. Pythons saubere vs. komplexe Syntax von Perl
Python hat einen großen Vorteil gegenüber Perl, 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.
Mit der Einrückung, die den Codeblock darstellt, und der richtigen Strukturierung ist der Code von Python viel sauberer. Auf der anderen Seite leiht sich Perl seine Syntax von 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-Systemadministrationsaufgaben
Abgesehen davon könnte der Code in Perl mit '{' und '}', die einen Codeblock darstellen und unnötig ';' am Ende jeder Zeile hinzufügen, zu einem Problem werden, wenn man ihn nach Monaten oder Jahren liest, da er hässliche Skripte zulässt.
2. Perls integrierte vs. 3rd-Party-Regex- und OS-Operations-Unterstützung von Python
Die Perl-Sprache leiht sich ihre Syntax von C und anderen UNIX-Befehlen wie sed, awk usw., wodurch sie über eine leistungsstarke und integrierte Regex-Unterstützung verfügt, ohne Module von Drittanbietern zu importieren.
Außerdem kann Perl Betriebssystemoperationen mithilfe integrierter Funktionen handhaben. Auf der anderen Seite 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 vor dem Ausführen solcher Operationen sichergestellt werden müssen.
Die Regex-Operationen von Perl haben eine 'sed'-ähnliche Syntax, die es einfach macht, nicht nur Suchoperationen durchzuführen, sondern auch Ersetzen, Ersetzen und andere Operationen an einer Zeichenkette können einfacher und schneller durchgeführt werden als Python, wo eine Person die Funktionen kennen und sich merken muss, die dem Bedarf entsprechen.
Beispiel: Stellen Sie sich ein Programm vor, das in Perl und Python nach einer Ziffer in der Zeichenkette sucht.
Import re
str = ‘hello0909there’
result = re.findall(‘\d+’,str)
print result
$string = ‘hello0909there’;
$string =~ m/(\d+)/;
print “$& \n”
Sie sehen, die Syntax für Perl ist sehr einfach und vom sed-Befehl inspiriert, der die Vorteile der Python-Syntax nutzt, die das Modul 're' von Drittanbietern importiert.
3. Pythons fortgeschrittene OO-Programmierung vs. Perls One-Liner
Ein Merkmal, bei dem Python Perl in den Schatten stellt, ist die fortschrittliche OO-Programmierung. Python verfügt über eine umfangreiche objektorientierte Programmierunterstützung mit einer sauberen und konsistenten Syntax, während das Objekt OOP in Perl veraltet ist, wo das Paket als Ersatz für Klassen verwendet wird.
Empfohlene Lektüre: Erste Schritte mit dem Python Django Web Framework
Außerdem wird das Schreiben von OO-Code in Perl den Code viel komplexer machen, was den Code schließlich schwer verständlich machen würde, selbst Subroutinen in Perl sind sehr schwer zu programmieren und später schließlich schwer zu verstehen.
Auf der anderen Seite eignet sich Perl am besten für seine Einzeiler, die auf der Befehlszeile zum Ausführen der verschiedenen Aufgaben verwendet werden können. Außerdem kann Perl-Code schließlich verschiedene Aufgaben in weniger Codezeilen ausführen als Python.
Ein Shortcode-Beispiel für beide Sprachen, das die Fähigkeit von Perl hervorhebt, mehr in weniger LOC zu tun:
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-VORTEILE:
- Es hat eine saubere und elegante Syntax, was diese Sprache zu einer guten Wahl als erste Programmiersprache für Anfänger macht, die jede Programmiersprache praktisch beherrschen möchten.
- Hat eine sehr fortschrittliche und inhärente
OO-Programmierung, auch die Thread-Programmierung in Python ist viel besser als Perl. - Es gibt viele Anwendungsbereiche, in denen Python bevorzugt wird und sogar Perl übertrifft. mögen: Perl wird für CGI-Scripting bevorzugt, aber heutzutage werden Pythons Django und web2py ähnliche Web-Scripting-Sprachen immer beliebter und haben eine große Anziehungskraft in der Branche.
- Verfügt über mehrere SWIG-Wrapper für verschiedene Programmiersprachen wie CPython, IronPython und Jython und die Entwicklung dieser ging der Entwicklung von SWIG-Wrappern für Perl voraus.
- Python-Code ist immer gut eingerückt und leicht zu lesen und zu verstehen, auch wenn Sie den Code einer anderen Person oder sogar Ihren Code nach Jahren lesen.
- Python eignet sich gut für verschiedene Anwendungen wie Big Data, Infrastrukturautomatisierung, maschinelles Lernen, NLP usw. und wird von aktiven Communities unterstützt, da es Open Source ist.
Python NACHTEILE:
- Es gibt nur wenige Bereiche, in denen die Ausführung in Python normalerweise langsamer ist als die von Perl, einschließlich Regex- und String-basierter Operationen.
- Manchmal ist es schwierig, den Variablentyp in Python zu ermitteln, da Sie bei sehr großem Code bis zum Ende gehen müssen, um einen Variablentyp zu erhalten, der hektisch und komplex wird.
Perl VORTEILE:
- Perl hat leistungsstarke Einzeiler und sorgt sogar für eine UNIX-Piping-ähnliche Syntax, die auf der Befehlszeile verwendet werden kann, um verschiedene Aufgaben auszuführen, außerdem ist es von Unix und seiner Befehlszeilenprogrammierung beeinflusst, so dass es viele UNIX-beeinflusste Befehle in seine Codierung integriert.
- Perl ist bekannt für seine leistungsstarken Regex- und String-Vergleichsoperationen, da es von sed und awk wie leistungsstarke UNIX-Tools beeinflusst wird. Im Fall von Regex- und String-Operationen wie Substitution, Matching, Replacement übertrifft Perl Python, was einige Codezeilen erfordern würde, um dasselbe zu erreichen. Auch viele Datei-I/O-Operationen, Ausnahmebehandlung wird unter Perl schneller durchgeführt.
- Wenn es um eine Sprache für die Berichterstellung geht, war Perl seit seiner Einführung immer berühmt als einer der Hauptgründe für den Autor, eine Sprache zu entwickeln, wie es Perl für die Berichterstellung war.
- Viele Anwendungsbereiche, in denen Perl seinen Einsatz findet, sind Netzwerkprogrammierung, Systemadministration, CGI-Scripting (hier überwindet Python Perl mit Django und web2py) usw.
- Es ist einfach, den Typ der Variablen anhand der Symbole zu identifizieren, die Perl vor ihnen verwendet, wie z.B.:
'@'kennzeichnet Arrays und'%'identifiziert Hashes.
Perl NACHTEILE:
- Perl hat einen sehr komplexen Code, der für einen 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 schwer und komplex zu verstehen, es sei denn, Sie haben eine qualitativ hochwertige Erfahrung. - Oo Die Programmierung in Perl ist etwas veraltet, da sie noch nie für die OO-Programmierung bekannt war und viele Operationen wie Threading auch in Perl weniger ausgeprägt sind.
Schlussfolgerung
Wie oben zu sehen ist, wo beide Sprachen in Bezug auf die Anwendungen, auf die sie abzielen, gut sind, hat Python aufgrund seines sauberen und leicht verständlichen Codes einen kleinen Vorteil gegenüber Perl als erste Wahl für einen Anfänger, während Perl auf der anderen Seite 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.
Am Ende hängt also alles von dem spezifischen Bereich ab, 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.