Über Perl, Python, PHP, Ruby

Schon jetzt möchte ich einen Vergleich anstellen oder eine Meinung abgeben. Nur Selbstzufriedenheit und persönliche Ansichten.

Historische Geburtsgeschichte

Ich denke, es ist wichtig, den Hintergrund und den Zweck jeder Sprache zu kennen, um diese Sprache zu verwenden.

Pre-Perl-Ära

Vor Perl gab es weltweit nur Kompilierungssprachen wie C, und nur Shells, Seds und Awk konnten ohne Kompilierung verarbeitet werden. Wenn ich ein wenig Text automatisch verarbeiten wollte, es aber nicht ernsthaft in C-Sprache erstellt wurde, verarbeitete jeder UNIX-Befehle nebeneinander als Shell-Skripte. Praktische Befehle wie Sortieren und Testen wurden unter UNIX bereitgestellt, und selbst eine etwas komplizierte Verarbeitung konnte verwaltet werden, indem sed und awk vollständig genutzt wurden.

Es gibt jedoch zwei Arten von Shells, den Bourne-Shell-Typ und den C-Shell-Typ. Selbst wenn derselbe UNIX-Befehl je nach Betriebssystem unterschiedliche Optionen bietet, ist die Portabilität gering, und in erster Linie ist die Verarbeitung kontinuierlich, da die Befehlsausführung kontinuierlich ist. Es hatte den Nachteil, schwer zu sein.

Die stärkste Skriptsprache für die Textverarbeitung - Einführung in Perl-

In der Zwischenzeit wurde Perl geboren, um die Unzufriedenheit mit Shell-Skripten zu beheben. Es enthielt die Funktionen von shell, sed und awk und implementierte zusätzlich zu den für die Textverarbeitung erforderlichen Funktionen leistungsstarke reguläre Ausdrücke. In der Textverarbeitung ist es viel leistungsfähiger und schneller als die Kombination von Befehlen durch die Shell. Aufgrund der hohen Portabilität, dass dasselbe Perl auf dieselbe Weise funktioniert, haben alle begonnen, Perl zu verwenden.

Dann hat sich das Internet in der Öffentlichkeit verbreitet und es ist zu einer Ära geworden, in der viele Menschen Websites erstellen. Immer mehr Menschen möchten nicht nur statisches HTML, sondern auch dynamische Seiten (CGI) wie Zähler und Bulletin Boards einfügen. Zu dieser Zeit war Perl eine gute Option, um CGI zu implementieren. Da es sich um eine Skriptsprache handelt, kann sie nur durch Platzieren verwendet werden. Eine leistungsstarke Textverarbeitung wie reguläre Ausdrücke ist möglich (Textverarbeitung, wenn das HTML-Spucken mit CGI erschöpft ist). Sie wird standardmäßig unter UNIX / Linux installiert und ist daher einfach zu unterstützen und bereitzustellen Aus diesem Grund gab es eine Zeit, in der CGI Perl hieß.

Auf diese Weise wurde Perl sehr beliebt und baute eine Ära auf, aber es gab drei Hauptprobleme.

  1. Es gibt auch das Motto "Es gibt mehr als einen Weg", und die Qualität variiert in der Regel je nach Niveau des Autors. Die Schnüre sind voller Spleiße und sind in der Regel weniger wartbar.
  2. Da es sich nicht um eine für CGI erstellte Sprache handelt, gibt es viele redundante Ausdrücke, z. B. viele print-Anweisungen zum Implementieren von CGI.
  3. Da es ursprünglich nicht objektorientiert war, ist es schwer zu sagen, dass das nachgerüstete objektorientiert schön ist.

Die Idee, dass jeder den gleichen Code haben sollte - Privat -

Wenn Sie dies auf eine Weise tun, schreibt jeder den Algorithmus auf die gleiche Weise, wodurch der Code sauberer und leichter lesbar wird. Die Wartbarkeit wird ebenfalls verbessert. Python wurde basierend auf der Idee der Umkehrung erstellt. Einrückungen werden manchmal in einem Stil verwendet, der in anderen Sprachen nicht häufig vorkommt, z. B. Blockieren, und die Lesbarkeit ist hervorragend. Es ist die höchste Sprache für gut erzogene Programmierung geworden.

Die Idee, sich auf das Web-PHP zu spezialisieren, ist angekommen.

PHP wurde mit der Idee erstellt, dass Sie keine redundante Druckanweisung benötigen, wenn Sie den Code in den HTML-Code einbetten, anstatt den HTML-Code mit dem Code zu erstellen. Durch das Kompilieren und Installieren des Apache-Moduls mit dem Namen mod_php konnten wir außerdem den langsamen Prozessstart beseitigen, der CGI eigen ist. Es ist die perfekte Sprache zum Erstellen kleiner dynamischer Web-Seiten geworden.

Der Wunsch, eine reine objektorientierte Sprache-Ruby zu verwenden, ist hier-

Ruby wurde von Anfang an als reine objektorientierte Sprache entworfen und erstellt. Ganz zu schweigen von Perl, Python war auch objektorientiert, so dass ich mit den Sprachspezifikationen, die ich als objektorientiert ansah, unzufrieden war (PHP ist auch objektorientiert). Da Ruby eine vollwertige objektorientierte Sprache ist, die von Anfang an alles als Objekt verwendet, ist es zu einer Sprache geworden, die bei der objektorientierten Programmierung sehr einfach geschrieben werden kann.

Und modern

Perl hat eine lange Geschichte und einen langen Tag, und anfangs ist es mehr als andere in Bezug auf die Anzahl der Bibliotheken, die Anzahl der Referenzcodes, die Anzahl der japanischen Informationsseiten und Bücher, ob Betriebssystemstandards verfügbar sind usw. Es war überlegen. In der heutigen Zeit sind jedoch alle erforderlichen Bibliotheken für andere Sprachen verfügbar, es gibt viele Referenzcodes, viele japanische Informationsseiten und Bücher, und unter Linux werden jeweils Pakete vorbereitet. Natürlich sind auf dem neuesten Mac OS X von Anfang an alle vier Sprachen installiert. Mit anderen Worten kann gesagt werden, dass der Umweltunterschied vollständig verschwunden ist.

In einer solchen Zeit ist es am besten, eine Wahl zu treffen, die zu jedem Zweck passt. Wenn Sie den alten Code beibehalten möchten, können Sie ihn als Perl belassen. Wenn Sie die Wartbarkeit hervorheben möchten, können Sie Python verwenden. PHP eignet sich am besten für eine kleine dynamische Web-Seite. Wenn Sie gehorsam mit Objektorientierung schreiben möchten, Ruby Du kannst es benutzen.

Und es ist langweilig, wenn es vorbei ist, also werde ich meinen Standpunkt auf die Zukunft richten.

Die Zukunft der Sprache

Perl-Langsamer Niedergang und Hoffnung auf 6-

Man kann sagen, dass der aktuelle Perl 5 bereits tot ist. Dies bedeutet nicht, dass es sich nicht weiterentwickelt, sondern dass es stabil ist. Solange es Perl5 ist, wird der Code, den ich gerade geschrieben habe, in Zukunft funktionieren, und der Code, den ich vor 10 Jahren geschrieben habe, wird gut funktionieren.

Perl 6 wird jedoch in Zukunft veröffentlicht. Perl 6 wurde von der Abwärtskompatibilität abgeschnitten und soll sogar eine völlig andere Sprache sein. Perl 6 kann als andere Sprache akzeptiert werden, es ist jedoch unwahrscheinlich, dass es als nächste Version von Perl 5 betrachtet wird. Es ist jedoch sicher, dass Perl 5 seinen Platz in der Nachfolgesprache einnehmen wird, die es ausgenutzt hat. Wird es seinen allmählichen Rückgang fortsetzen oder wird es als Perl 6 wiedergeboren und kann es Perl genannt werden? Die unsichtbare Zukunft geht weiter.

Python-bleibt 2 für immer-

Das aktuelle Python verwaltet Python 2 und Python 3. Python2 und Python3 weisen einige Inkompatibilitäten auf, und das Umschreiben ist fast unerlässlich. Es stehen zahlreiche Migrationstools zur Verfügung, die sich jedoch offenbar nicht weiterentwickeln. Das liegt daran, dass viele Betriebssysteme immer noch Python 2 verwenden. Es gibt viele Hilfstools, die die Grundlage eines Betriebssystems aus Python bilden. Und es ist in Python2 gemacht. Um zu Python3 zu wechseln, muss neu geschrieben und von Anfang an überprüft werden, was derzeit stabil funktioniert. Es ist besser, es auf Python2 laufen zu lassen, das gerade läuft. Am Ende bleibt der im Betriebssystem standardmäßig installierte Python Python2, und die entsprechend erstellten Tools sind Python2. Ja, es wird niemals einen Wechsel zu Python3 geben.

Dies kann ironisch sein, da Python in Python2 erfolgreich war. Es ist in Ordnung, dass Python3 sprachlich viel sauberer ist, aber wird der Tag kommen, an dem Python3 zum Mainstream wird?

PHP-mir ist die Versionsnummer egal-

Das Abschneiden der PHP-Kompatibilität kann berühmt sein. Das Abschneiden der Sprachkompatibilität tritt normalerweise in Hauptversionen auf. Perl ändert sich bei 5-> 6 stark und Python schneidet einige bei 2-> 3 ab. Ruby unterbricht auch die Kompatibilität mit 1.8-> 1.9 (1.9 wurde ursprünglich als Entwicklungsversion von 2.0 positioniert). PHP wird jedoch in der Nebenversion abgeschnitten. Es wird zunächst als veraltet behandelt, in der nächsten Version tritt jedoch ein Fehler auf. Mit anderen Worten, es gibt viele Codes, die nicht nur durch Ändern von zwei Nebenversionen funktionieren. Und PHP unterstützt nur bis zu zwei Nebenversionen. Wenn Entwickler alten Code nicht auf unbestimmte Zeit beibehalten, arbeiten sie nur mit anfälligen Versionen.

Und es ist nicht klar, dass PHP7 neben PHP5 steht. Auf diese Weise wurden PHP-Entwicklungsrichtlinien auf verschiedene Weise kritisiert. Das von Ihnen geschriebene PHP wird wahrscheinlich nach einigen Jahren nicht mehr funktionieren. Das Dilemma geht weiter, ohne eine andere Wahl, als es für immer aufrechtzuerhalten.

Ruby-Ist es nicht beliebt? --- ---.

Ruby hatte auch einige Kompatibilitätskürzungen mit 1.8-> 1.9, aber da ich es überhaupt nicht so oft verwendet habe, hat das neueste Betriebssystem begonnen, 1.9 oder höher zu übernehmen (1.8 wird nicht mehr unterstützt). (Obwohl es gibt). Seit 1.9 und höher bleibt die Kompatibilität nahezu erhalten, sodass Sie sich nicht wie bei anderen Sprachen um die Kompatibilität sorgen müssen.

Aber wie viele Leute benutzen Ruby schließlich? Es wurde berühmt für Ruby on Rails, aber die Vorteile von Rails gehen verloren, da immer mehr ähnliche Frameworks entstehen. Eine einfache Web-App kann nicht mit PHP übereinstimmen, und Lesbarkeit und Wartbarkeit können nicht mit Python übereinstimmen. Die Nachteile, langsam zu sein, eine kleine Umgebung zu haben und eine kleine Anzahl von Bibliotheken zu haben, sind verschwunden, aber sie haben nicht die Vorteile, die andere Sprachen nicht haben. Schließlich habe ich das Gefühl, dass objektorientierte Enthusiasten es noch lange nutzen werden.

JavaScript - Träume zur Integration in das Web -

Endlich, da JavaScript nicht nur für eine Web-Sprache verwendet wird. Es gibt auch eine serverseitige node.js, die Perl und seine abgeleiteten Hochburgen Python, PHP und Ruby in Zukunft beschädigen könnte. Die Sprachspezifikation von JavaScript selbst ist jedoch zu schlecht, um so wie sie ist verwendet zu werden. Wie wird sich die Sprache, die mit JavaScript kompiliert wird und Alt JS und das nächste ECMAScript 6 heißt, weiterentwickeln und das frühere Perl übertreffen? Die Zukunft bleibt ungewiss.

Recommended Posts

Über Perl, Python, PHP, Ruby
Java VS PHP VS Python VS Ruby
Trends für das Webanwendungs-Framework 2014 (PHP / Java / Ruby / Python / Perl)
Dynamischer Proxy mit Python, Ruby, PHP
Hallo Welt in verschiedenen Sprachen [Python / PHP / Java / Perl / Ruby]
Über Python-Slices
Über die Einschlussnotation von Python
Verwirklichen Sie den PHP / Python-Generator mit Golang / Ruby
Über Python tqdm.
Über die Python-Ausbeute
Über Python, Klasse
Informationen zur Python-Vererbung
[Grundlegende Grammatik] Unterschiede zwischen Ruby / Python / PHP
Über Python, range ()
Über Python Decorator
Informationen zur Python-Referenz
Über Python-Dekorateure
[Python] Über Multi-Prozess
Eine Geschichte über das Ausführen von Python auf PHP auf Heroku
Über flache und tiefe Kopien von Python / Ruby
Gruppierungskombination in Python / Ruby / PHP / Golang (Go)
Über Funktionsargumente (Python)
[Docker] Tutorial (Python + PHP)
[Python] Memo über Funktionen
Ruby, Python und Map
Zusammenfassung über Python3 + OpenCV3
Über Python für ~ (Bereich)
[Python] Memo Über Fehler
Python und Ruby teilen sich
Informationen zur Python-Entwicklungsumgebung
Python: Über Funktionsargumente
Python, über die Ausnahmebehandlung
Über Python Pyramid Traversal
Über Python3 ... (Ellipsenobjekt)
[Python] Kapitel 01-01 Über Python (Erster Python)
[Python] Informationen zur Standardeingabe
Über __all__ in Python
Behandle Primzahlen mit Python / Ruby / PHP / Golang (Go)
python, php, ruby Konvertieren von Dezimalzahlen in n
Schreiben wir jeweils Python, Ruby, PHP, Java und JavaScript
Umgang mit JSON in Ruby, Python, JavaScript, PHP
Vom Anfangszustand von CentOS8 bis zum Ausführen von PHP Python Perl Ruby mit Nginx
[Python] Informieren Sie sich über pip
Python auf Ruby und wütend Ruby auf Python
Flirte von PHP nach Python
Überlappende Kombinationen mit Obergrenzen in Python / Ruby / PHP / Golang (Go)
Python-Anfänger-Memorandum-Funktion
Python und Ruby Slice Memo
Über die Aufzählungsfunktion (Python)
Standardeingabe / Zusammenfassung / Python, Ruby
Über verschiedene Codierungen von Python 3
Zundokokiyoshi mit Python / Rubin / Lua
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 A.
Über Python, len () und randint ()
Informationen zu Python-Datums- und Zeitzone
Memorandum über Korrelation [Python]
Python-Memo mit Perl --join