Heim  >  Artikel  >  Backend-Entwicklung  >  Vergleich von Perl, PHP, Python, Java und Ruby

Vergleich von Perl, PHP, Python, Java und Ruby

伊谢尔伦
伊谢尔伦Original
2016-11-30 11:53:491096Durchsuche

Vorschau

◆ Der Entwicklungstrend der Sprache muss eine Kombination aus dynamisch und statisch, starr und weich sein

◆ Perl ist prägnant und undurchsichtig, Python ist elegant und klar, Ruby ist exquisit und agil, und PHP ist prägnant und einfach

◆ Vielleicht entsteht Eleganz durch die Beachtung von Details und Spezifikationen

◆ Nachdem (RoR) mit Ruby kombiniert wurde, ist es sofort wie eine Zibetkatze löst die elefantenähnlichen Figuren von Java und .NET aus

Frage

◆ Was sind die Eigenschaften von Perl, Python, Ruby und PHP?

◆ Warum sind sie dynamisch? Sprachen, die hauptsächlich als leichte Lösungen verwendet werden?

◆ Warum ist LAMP beliebt?

◆ Warum ist Ruby on Rails beliebt?

◆ Was ist der Entwicklungstrend von Programmiersprachen? ?

Erklärung

"Es gibt noch vier dynamische Sprachen, die wir als Hintergrundskriptsprachen klassifizieren." sagte Colon und zeichnete ein Diagramm -

Vergleich von Perl, PHP, Python, Java und Ruby

Hören Sie genau auf die Anführungszeichen: „Ich erinnere mich an Sie. Zuerst wurden diese Sprachen in drei Kategorien unterteilt: statische Sprachen der C-Familie, statische Sprachen außerhalb der C-Familie und dynamische Sprachen.“

Colon erklärte: „Das basierte auf Grammatik und konzentrierte sich auf die Theorie; jetzt basiert es auf der Anwendung. Um zu dividieren, konzentriere dich auf die Praxis.“

Period dachte sofort: „Diese Division sieht aus wie eine Drei.“ -Tier-Architektur – die Front-End-Sprache entspricht der Plattformsprache und die Back-End-Skriptsprache entspricht der Geschäftslogik-Schicht „in der Tat etwas ähnlich, aber es darf nicht verwechselt werden“, erinnerte Colon, „die dreischichtige Architektur ist eine logische Unterteilung im Moduldesign[1] und hier ist es eine physische Unterteilung, die auf dem Umfang der Sprachanwendung basiert – der Vorderseite.“ Endsprache, die mit dem Benutzer interagiert, die Systemsprache, die mit der Maschine interagiert, und die Back-End-Sprache, die Dienste für das Front-End bereitstellt und zugrunde liegende Systemdienste erfordert. „

Komma fragt: „Backend-Sprache ist in Plattformsprache und Hintergrundskriptsprache unterteilt? Ruby verfügt alle über eine eigene virtuelle Maschine (virtuelle Maschine). In diesem Sinne können sie auch als Plattformsprachen verwendet werden. In tatsächlichen Anwendungen verfügen sie jedoch nicht über einen solchen Integrationszusammenhalt und -kern Funktion, normalerweise als leichte Lösung“

Fragezeichen möchte herausfinden: „Liegt das daran, dass es sich bei beiden um dynamische Sprachen handelt?“

Doppelpunkt antwortete: „Theoretisch können dynamische Sprachen auch übernehmen.“ In der Praxis werden sie jedoch meist als Klebesprachen oder für kleine und mittlere Anwendungen verwendet. Um es mit einem modischen Wort zu beschreiben, sind sie vorerst immer noch Mainstream-Nebenrollen oder Nicht-Mainstream-Protagonisten Schließlich besteht zwischen ihnen und Java und C# immer noch eine gewisse Lücke in Bezug auf Betriebseffizienz, Typsicherheit, verfügbare Ressourcen, Entwicklungstools, technischer Support usw. Darüber hinaus handelt es sich bei beiden um „Basissprachen“, obwohl sie von der Open-Source-Community stark unterstützt werden, ihr Einfluss ist jedoch nicht derselbe. „

Ausrufezeichen-Spekulation: „Vielleicht wird dynamische Sprache in naher Zukunft auch zu einem Mainstream-Protagonisten.“ „

„Die Zeiten ändern sich und es ist schwer vorherzusagen. Eines ist jedoch sicher: Der Entwicklungstrend der Sprache muss eine Kombination aus Dynamik und Statik, Hart und Weich sein. „Colon behauptete: „Einerseits werden die durch Java und C# repräsentierten statischen Sprachen mit Zweigen dynamischer Sprachen aufgepfropft, andererseits wird auch die Schnittstelle zwischen den durch Java und .NET repräsentierten Plattformen und dynamischen Sprachen schrittweise erweitert expandieren. JRuby ermöglicht beispielsweise Ruby und Java, sich gegenseitig aufzurufen, ähnlich wie Jython, IronRuby, IronPython usw. Erwähnenswert ist auch, dass die aktivste Phase für dynamische Sprachen LAMP, L-A-M-P, ist. „

Anführungszeichen werden fortgesetzt: „L ist Linux, A ist Apache, M ist MySQL und P ist PHP.“ Diese vier Komponenten bilden eine vollständige Open-Source-Netzwerkentwicklungsplattform. „

Doppelpunkt hinzugefügt: „P kann sich auch auf Perl, Python oder sogar Ruby beziehen.“ "

Komma-Spott: „Schade, dass Rubys ‚R‘ einen zusätzlichen Schwanz hat als ‚P‘.“ „

“ Um sich zu rechtfertigen, lassen manche Leute einfach P für „Programmiersprache“ stehen, und nun sind alle Sprachen enthalten. Ausländer spielen gerne solche Akronym-Wortspiele, zumal LAMP auch „Licht“ bedeutet, was in der Open-Source-Welt ein helles Licht bedeutet. Sie müssen noch stolzer sein. „Colon sagte mit einem Lächeln: „Wir haben bereits erwähnt, dass Netzwerkanwendungen der fruchtbarste Boden für das Wachstum dynamischer Sprachen sind, und LAMP ist eine Plattform, die auf diesem Boden aufgebaut ist.“ Als Netzwerkplattform macht LAMP aufgrund seiner Offenheit und Flexibilität, schnellen Entwicklung, einfachen Bereitstellung, hohen Konfigurierbarkeit, Sicherheit und Zuverlässigkeit sowie niedrigen Kosten drei Drittel der Java-Plattform und der .NET-Plattform aus -große Unternehmen. Bei LAMP ist Linux das Betriebssystem, Apache der Webserver, MySQL das Datenbanksystem und was uns derzeit am meisten beschäftigt, ist die „P-Sprachfamilie“: PHP, Perl, Python und Ruby. "

Fragezeichen vorgeschlagen: „Da es sich um dynamische Sprachen handelt, wurden ihre Gemeinsamkeiten in der vorherigen Klasse häufig besprochen. Können Sie über ihre Persönlichkeiten sprechen?“

„Ihre Persönlichkeiten sind äußerst unterschiedlich: Perl Prägnant und undurchsichtig, Python ist elegant und klar, Ruby ist exquisit und agil und PHP ist einfach und unkompliziert. Schauen wir uns zunächst den großen Bruder Perl an. Er greift auf das Beste der anderen zurück und kombiniert die Struktur der C-Sprache, die regulären Ausdrücke von sed, das assoziative Array von AWK, die Liste von Lisp und die Befehle der Unix-Shell Außerdem habe ich es auch einer Sprache entlehnt, wissen Sie, welche es ist?“ Der Doppelpunkt gab plötzlich auf.

Komma vermuten: „Es sollte eine Art OOP-Sprache sein.“

„Es gibt tatsächlich viele Schatten von C++ in Perl, aber sein Objektmodell wurde erst nach 5.0 eingeführt. Es ist eine typische Halb- Übrigens, Mönch, die bisherigen Merkmale sind keine natürliche Entwicklung, sondern eine unfreiwillige Anpassung unter dem Einfluss des OOP-Trends. „Der Doppelpunkt hat die Antwort gegeben.“ Wie bereits erwähnt, ist Larry Wall, der Erfinder von Perl, ein Linguist. Er glaubt, dass Programmiersprache wie eine natürliche Sprache sein sollte, einfach zu lesen und zu schreiben, vielfältig im Ausdruck und Perl hat auch viele Mottos oder Philosophien . , wodurch die Programmiersprache ihr strenges und stereotypes Gesicht verändert und eine starke humanistische Atmosphäre ausstrahlt. aber ich vermute, dass es Äther gibt – mir wird schwindelig, nachdem ich es eine Weile gesehen habe.“

Alle lachten.

„Jemand hat den RSA-Algorithmus mit nur einer Zeile Perl-Code implementiert. Sind Sie nicht ohnmächtig geworden, als Sie ihn gesehen haben?“ Colon scherzte: „Perls verschiedene magische Symbole sind wie scharfe Scheren. Es ist einfach, Aufgaben zu erledigen.“ Dies ist der größte Vorteil von Perl, der ursprünglich von Wall für die Verwaltung von Unix-Systemen verwendet wurde. Dies verschafft Perl auch einen starken Vorteil Das „Klebeband“ im Internet [2] wird auch als „Schweizer Taschenmesser“ bezeichnet, ist jedoch zu flexibel und kostenlos und es mangelt ihm an Spezifikationen, was die Zuverlässigkeit des Programms beeinträchtigt Lesbarkeit, Konsistenz, Sauberkeit und Wartbarkeit sind natürlich eine schwierige Aufgabe für diejenigen, die mit der Sprache nicht vertraut sind. Im Gegensatz dazu gilt Python aufgrund seines natürlichen OO-Designs und seiner umfangreichen Klassenbibliotheken. Es ist viel programmiererfreundlicher als Perl. Python hat auch eine Reihe von Philosophien namens Zen, von denen viele im Gegensatz zu Perl stehen: Perl glaubt, dass es viele Möglichkeiten gibt, eine Sache zu tun, während Python glaubt, dass es nur eine geben sollte Eine beste Möglichkeit, eine Sache zu erreichen: Perl strebt nach Einfachheit und Eleganz. Während die Syntax und Semantik von Python einfach ist und die Klassenbibliothek umfangreich ist, ist die Empfindlichkeit gegenüber Leerzeichen „

“ Das ist wirklich seltsam ."

Colon ist nicht überraschend: „Obwohl es ein wenig gegen den Brauch ist, stimmt es sehr gut mit dem konsistenten Standard und dem prägnanten Stil von Python überein – einerseits von der Syntax und andererseits von jedem Code.“ Block benötigt keine öffnenden Klammern oder Anfang/Ende mehr, was die Anzahl der Codezeilen reduziert. Übrigens ist Haskell eine weitere elegante Sprache, die möglicherweise auch auf Leerzeichen achtet Die Leute beschweren sich darüber, dass es in Python zu viele Selbstreferenzen gibt, aber sie wissen nicht, dass dies auch ein Ausdruck seiner Befürwortung des expliziten Ausdrucks ist. Das Hauptproblem bei Python ist, dass es in Bezug auf Leistung und Effizienz immer noch unbefriedigend ist.

Das Ausrufezeichen fragte neugierig: „Was ist mit Ruby? Es heißt, dass es Java ersetzen wird.“

„Sagen Sie nicht leichtfertig ‚Ersatz‘. ' Zwei Worte.“ Colon warnte „Java hat C++ nicht ersetzt und wird auch nicht durch Ruby ersetzt. Es handelt sich höchstens um eine Neuverteilung. Ruby ist jedoch in der Tat eine sehr niedliche Sprache, die die Ausdruckskraft von Perl und die Flexibilität von Python aufweist. Lesbarkeit.“ Das markanteste Konzept hinter Ruby besteht darin, bei der Verwendung der Sprache auf das Gefühl des Programmierers zu achten und nicht auf die Funktion der Sprache selbst. Um es höflich auszudrücken: Der Umgang mit der Waffe ist wichtiger mehr humanistische Fürsorge erhalten. Nehmen Sie als Beispiel Codeblöcke (Blöcke) und Iteratoren (Iteratoren). Obwohl sie nicht die ersten von Ruby sind, ist ihre Syntax für das Auge am angenehmsten. Ähnliche Beispiele gibt es zuhauf. Die Metaprogrammierungsfähigkeiten von Ruby sind besonders stark und spiegeln seine hohe Flexibilität wider, aber nicht jeder mag diesen Stil. Ruby hat zwei Hauptschwächen: Zum einen ähnelt es Python und muss in der Leistung verbessert werden. Zum anderen werden seine Threads vom User-Space statt vom Kernel-Space verwaltet und können nicht vollständig von Multi-Core oder Multi-CPU genutzt werden . Was Ruby wirklich populär machte, war der Erfolg des Webanwendungs-Frameworks Ruby on Rails (RoR), das auch die Sprache Groovy und das Framework Groovy on Grails auf der Java-Plattform hervorbrachte. Die Prinzipien CoC (Convention over Configuration) und DRY (Don't Repeat Yourself) sowie die von RoR verfolgte MVC-Architektur scheinen keine neuen Ideen zu enthalten, aber in Kombination mit Ruby ist es wie eine Zibetkatze, die sofort Java und . NET. Eine elefantenartige Figur. „

Das Komma ist etwas zweifelhaft: „Das Framework hat die Sprache tatsächlich populär gemacht?“

“Wenn es weniger dynamische Seiten in der Webanwendung gibt bzw Die Geschäftslogik ist nicht komplex, der Wert des Frameworks nicht groß. In der Vergangenheit bestand die CGI-Programmierung darin, HTML-Code in Perl und andere Codes einzubetten, genau wie Servlet in Java; PHP fügte einfach PHP-Code in HTML-Code ein, genau wie frühes JSP. Es gibt kein MVC, keine dreistufige Architektur und kein ORM. Aber –“ Der Doppelpunkt zog einen Übergangston, „Sobald die Geschäftslogik komplex wird, die Anzahl der Entwickler zunimmt und die manuelle Programmierung im Workshop-Stil zu strecken beginnt, ist die Einführung des Fließband-Frameworks zur Verbesserung der Produktivität das Allgemeine Trend. ”

Punkt: „Ich denke, es muss viele Frameworks in Perl, Python und PHP geben, und es gibt so viele Frameworks in Java. Warum sticht RoR hervor?“

Colon analysiert: „Richtig, wenn das Konzepte von Web2.0 und agiler Entwicklung sind beliebt, RoR kombiniert AJAX und Ruby, um eine hervorragende Antwort zu werden. Früher gab es viele Webanwendungs-Frameworks, aber vor RoR gab es nicht viele Lösungen. Daher kann man sagen, dass die Zeit für RoR weder früh noch spät ist. Außerdem sind Perl und PHP sehr beliebt Die Menschen sind es gewohnt, Präsentationslogik und Geschäftslogik miteinander zu verknüpfen. Es gibt zu viele Frameworks und mehr Kombinationen, was die Auswahl erschwert, selbst wenn sie am häufigsten vorkommen +Spring+Hibernate)-Kombination ist viel komplizierter zu warten als RoR Es ist noch zu früh, das zu sagen.“ Colon war anderer Meinung: „Erstens muss RoR hinsichtlich der Anwendungsbreite und -tiefe noch nicht mit Java verglichen werden. Zweitens hat Java immer noch viele Vorteile hinsichtlich der Leistung.“ Sicherheit usw., und diese sind besonders wichtig für große und kritische Anwendungen. Auch in kleinen und mittleren Webanwendungen liegt RoR weit hinter PHP.“

Das Fragezeichen setzte das Thema fort: „Warum? PHP so beliebt? Ähnlich wie das frühe Perl fungierte PHP ursprünglich hauptsächlich als Textfilter, aber Perl verarbeitet hauptsächlich Dateiströme, während PHP eine einfache Syntax hat und auf Netzwerkanwendungen zugeschnitten ist Die Beliebtheit ist zwar sehr praktisch und beliebt, aber zum Beispiel: Bei Variablennamen wird die Groß-/Kleinschreibung beachtet, bei den Namensregeln für Funktionen wird jedoch nicht unterschieden. 4] werden nicht unterstützt; und wie bei Perl ist sein Objektmodell nicht angeboren und wurde erst mit PHP 5 wirklich perfektioniert; im Vergleich zu Perl, Python und Ruby sind seine Funktionen etwas dürftig >

Anführungszeichen fallen mir plötzlich ein: „Ich erinnere mich, dass Sie in der ersten Klasse erwähnt haben, dass PHP auch für Desktop-Anwendungen verwendet werden kann.“ können als Front-End-Sprachen zur Entwicklung von Befehlszeilen- oder grafischen Schnittstellenanwendungen verwendet werden. Ebenso können auch VB, Delphi und JavaScript als Backend-Sprachen verwendet werden. Moderne Programmiersprachen verfügen nicht nur über eigene Kompetenzen, sondern entwickeln sich auch in Richtung Generalisierung und Vielseitigkeit, um mehr Wohnraum anzustreben. Stellen Sie sich vor, sind moderne Programmierer nicht so?“ An dieser Stelle brach Colon das Thema ab: „Dies ist das Ende des kurzen Überblicks über Sprachen, daher werde ich sie nicht einzeln kommentieren.“ einer hier. Wir sehen, dass jede Programmiersprache ihre eigenen einzigartigen Konventionen und Philosophien hat, die zusammen mit dem Programmierparadigma den Programmierstil der Sprache bilden. Je tiefer das Verständnis, desto stärker der Sinn für Programmiersprache, desto nahtloser ist die Integration von Denken und Sprache und der allmähliche Übergang vom Reich der Notwendigkeit zum Reich der Freiheit. „

Das Komma ist voller Sehnsucht: „Ist das ein Zustand, in dem Mensch und Schwert in einem vereint sind?“

“Vielleicht ist die Integration von Mensch und Waffe genauer Kenne eine Art Waffe. „Colon nahm seine Worte bewusst auf: „Jetzt schreiben Sie bitte alle eine Rede über diese Lektion.“ ”

Alle überlegten einen Moment und schrieben dann gleichzeitig –—

Ausrufezeichen – Es gibt keine beste Sprache, nur die passendste.

Komma – Keine schlechten Sprachen, nur schlechte Programmierer.

Fragezeichen – keine Sprache ist perfekt, nur eine Sprache ist absolut unmöglich.

Punkt. Beim Programmieren geht es darum, das beste Gleichgewicht zwischen dem menschlichen Gehirn und dem Computer zu finden.

Mit einer Handfläche wurden fünf schmeichelhafte Notizen gemacht: „Extrem wunderbar! Jedes Wort ist wie eine Perle.“ und jeder Satz ist perfekt zusammenhängend.“ Es wurde beschlossen, dass die Belohnung für Sie darin besteht, den Unterricht sofort zu verlassen! sind zwei dreischichtige Architekturen, eine ist eine dreischichtige Architektur und die andere ist eine dreischichtige Architektur. Sie werden oft synonym verwendet, unterscheiden sich jedoch tatsächlich: Ersteres ist nur logisch unterteilt, während letzteres auch physisch unterteilt ist. auf verschiedenen Ebenen. Die Module laufen auf unterschiedlichen Hosts.

[2] An vielen Stellen wird es mit „Förderband“ oder „Förderband“ übersetzt, denn „Kanal“ bedeutet „Förderrohr“ oder „Leitung“. Daher wird davon ausgegangen, dass Perl im Internet eine Transportrolle spielt. Allerdings bezieht sich „Duct Type“ auf eine Art universelles und äußerst klebriges Klebeband, das als Metapher für die Klebekraft von Perl verwendet wird [3] Dieser Thread-Typ wird auch als Pseudo-Thread bezeichnet. Es heißt, dass Ruby2.0 native Threads (native Threads) unterstützen wird .0 und Unicode in 6.0

Zusammenfassung

◆ Im Vergleich zur Java-Plattform und der .NET-Plattform ist die dynamische Sprache leicht und flexibel und weist eine hohe Entwicklungseffizienz auf, aber die Integrationskohäsion reicht nicht aus In Bezug auf Betriebseffizienz, Typsicherheit, verfügbare Ressourcen und Entwicklungstools gibt es auch eine gewisse Lücke in Bezug auf technischen Support und Einfluss, sodass es normalerweise als leichte Lösung verwendet wird

◆ LAMP ist eine Netzwerkentwicklungsplattform, die aus Linux, Apache, MySQL und Skriptsprachen wie PHP, Perl, Python oder Ruby besteht. Sie ist offen und flexibel, schnelle Entwicklung, einfache Bereitstellung, hochgradig konfigurierbar, sicher und zuverlässig. niedrige Kosten Niedrige Kosten und andere Vorteile.

◆ Perl ist prägnant, komplex, leistungsstark, flexibel, frei, unklar und ausdrucksstark, weist jedoch eine schlechte Standardisierung, Lesbarkeit, Konsistenz, Ordnung und Wartbarkeit auf.

◆ Python ist elegant und standardisiert, prägnant und klar, leicht zu erlernen und zu verwenden und verfügt über umfangreiche Klassenbibliotheken, aber einige Leute mögen seine Leerraum-sensitive Funktion nicht.

◆ Die Ruby-Syntax ist exquisit und äußerst flexibel. Sie kombiniert die Ausdruckskraft von Perl und die Lesbarkeit von Python. Sie legt besonderen Wert auf die Erfahrung von Programmierern, aber ihre Leistung und ihr Threading-Modell müssen noch verbessert werden.

◆ PHP ist einfach, spezifisch, praktisch und beliebt, aber im Vergleich zu den anderen drei Sprachen mangelt es ihm etwas an Syntax und Funktionalität.

◆ RoR ist eine leichte Webanwendungslösung im Paketstil, die aus gutem Design (MVC-Architektur und CoC, DRY-Prinzipien) plus guter Sprache (Ruby) zu einem guten Zeitpunkt (Web2 .0 und agile Entwicklung) besteht wurde populär).

◆ Statische Sprache und dynamische Sprache werden nach und nach von den Sprachfunktionen in die Laufumgebung integriert.

◆ Wie Programmiersprachen sollten Programmierer nicht nur über eigene Fachkenntnisse verfügen, sondern sich auch in Richtung Generalisierung und Vielseitigkeit entwickeln.

◆ Programmiersprachkonventionen, philosophische Konzepte und Programmierparadigmen bilden den Programmierstil der Sprache.


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn