Heim >Backend-Entwicklung >PHP-Tutorial >Vergleich der Ähnlichkeiten und Unterschiede zwischen Python und Ruby

Vergleich der Ähnlichkeiten und Unterschiede zwischen Python und Ruby

小云云
小云云Original
2017-12-04 09:17:151930Durchsuche

Python ist eine objektorientierte, wörtliche Computerprogrammiersprache. Die Python-Syntax ist einfach und klar und verfügt über eine umfangreiche und leistungsstarke Klassenbibliothek. Ruby, eine einfache und schnelle objektorientierte (objektorientierte Programmierung) Skriptsprache. In diesem Artikel teilen wir Ihnen die Gemeinsamkeiten und Unterschiede zwischen Python und Ruby mit.

1. Vergleichende Auswahl von Ähnlichkeiten und Unterschieden

1. Die Ähnlichkeiten zwischen Python und Ruby:

* Beide betonen die einfache Syntax und haben allgemeinere Ausdrücke. Python ist Einrückung, Ruby ist ein einfacher Ausdruck. Alle Symbole wurden stark reduziert.

* sind alles dynamische Datentypen. Alle verfügen über umfangreiche Datenstrukturen.

* Beide verfügen über C-Spracherweiterungsfunktionen und sind portierbar, was besser ist als die Portabilität von Perl. Sie können auch als eingebettete Sprachen verwendet werden.

* sind allesamt objektorientierte Sprachen und können als Entwicklungstools für große Projekte verwendet werden.

* alle verfügen über umfangreiche Bibliotheksunterstützung.

* Verfügt außerdem über die freizügigste Urheberrechtslizenz, außer dass einige Tools zur GNU-Welt gehören.

* alle verfügen über Lisp-spezifische Auswertungsfunktionen und können auch Funktionen als Parameter annehmen.

* Es gibt auch einen Ruby-spezifischen Editor mit grafischer Oberfläche.

* werden von einer Vielzahl von C-Bibliotheken unterstützt. Wie qt, gtk, tk, SDL, FOX usw. Ruby plant die Implementierung der SWIG-Schnittstelle.

* alle verfügen über eine vollständige Dokumentation.

2. Vorteile von Ruby im Vergleich zu Python:

* Es hat die Funktion von regulären Ausdrücken und der Einbettung von HTML. Python verfügt auch über reguläre Ausdrücke, diese sind jedoch nicht so praktisch und werden nicht so häufig verwendet wie Ruby. Das eingebettete HTML-Projekt von Python hat gerade begonnen. Ruby verfügt auch über das Apache-Mod-Modul. Ruby selbst implementiert auch viele Unix-Tools wie rac und doctools. Näher an Linux als an Python.

* Vollständigere objektorientierte Syntax als Python.

*Die gesamte Bibliothek von Ruby ist eine Struktur mit Klassenvererbung.

* Seine grundlegenden Datentypen und Operatoren können überladen sein.

*Rubys Hauptfunktionen werden durch Objektmethodenaufrufe implementiert, nicht durch Funktionen. Auch Python entwickelt sich in diesem Bereich weiter, ist aber nicht so gründlich wie Ruby.

*Ruby-Klassen sind standardisiertere Einzelvererbungen und implementieren auch Konzepte wie Schnittstellen.

* Python kann bedingte Anweisungen und Schleifenanweisungen in Listen implementieren, während Ruby „Blöcke“ verwendet, um diese Funktion zu implementieren, die flexibler und vielseitiger als Python ist.

*Ruby verfügt über vollständige funktionale Bedingungsanweisungen, Schleifenanweisungen usw. ähnlich wie Lisp. Sätze sind ausdrucksvoller.

* Kommt mit einigen Unix-Tools wie RAC usw.

3. Die Mängel von Ruby im Vergleich zu Python:

* Der größte Mangel wird durch die Leistungsfähigkeit von Ruby verursacht. Es hat nicht die Einfachheit von Python. Eine komplexere objektorientierte Syntax, die Einführung der „Block“-Syntax, die Einführung regulärer Ausdrücke und einiger Abkürzungs-Tags erhöhen die Komplexität der Sprache.

* Der Einrückungsausdruck von Python ist für das Auge angenehmer als der Grundausdruck von Ruby. Die Augen voller Enden in Ruby-Programmen sind unangenehm. Natürlich hält Ruby die End-Methode für fortgeschrittener als Python.

*Ruby verfügt noch nicht über die „Introspektion“-Fähigkeit von Python und die Fähigkeit, Dokumentation aus Programmdateien zu generieren.

*Ruby bietet keine Internationalisierungsunterstützung. Die Unterstützung der Internationalisierung ist in Rubys Plänen enthalten. Dies liegt daran, dass Ruby eine kürzere Geschichte als Python hat.

*Ruby hat nichts Besseres als Jython.

4. Auswahl der Python- und Ruby-Sprachen:

Aus der Perspektive, dass einfach gut ist, ist die Wahl von Python richtig. Python eignet sich für Leute, die eine einfache Sprache suchen, was wahrscheinlich dazu führen wird, dass Python beliebter wird und daher mehr Unterstützung erhält. Wenn Sie jedoch leistungsfähigere Syntaxfunktionen verfolgen möchten, ist Ruby eine gute Wahl. Da die Philosophien von Ruby und Python viele Ähnlichkeiten aufweisen, beginnen Sie zunächst mit Python und versuchen Sie, Python zu verwenden. Wenn Python nicht stark genug ist, können Sie nach Ruby suchen.

Der Vergleich zwischen Ruby und Python ähnelt dem Vergleich zwischen den Eingabemethoden Wubi und Pinyin. Als Eingabemethode für Einsteiger oder als Langzeit-Eingabemethode ist Pinyin kein Problem. Wubi eignet sich für anspruchsvollere Situationen. Wenn Sie Leistung anstreben, können Sie auch Ruby lernen. Wer sich für Programmiersprachen interessiert und verschiedene Programmierkonzepte verstehen möchte, wird auch von Ruby begeistert sein.

2. Beide haben ihre eigenen Eigenschaften:

1. Python ist in der Syntax einfacher, während Ruby attraktiver ist.

Pythons Syntax ist niedriger als bei anderen Skriptsprachen Es gibt nicht viele ausgefallene Orte und es scheint etwas starr. Tatsächlich lässt sich die Ausrichtung von Guidos Designsprache auch an der erzwungenen Codeeinrückung von Python erkennen. Die starre Syntax besteht darin, dass es nicht einfach ist, mit Frameworks wie Rails zu spielen. Darüber hinaus kann Python Dinge wie DSL nicht ausführen. Die andere Seite der starren Syntax ist jedoch, dass sie stärker standardisiert ist und relativ mehr Geeignet für die Softwareentwicklung. Technische Anforderungen erleichtern die Organisation großer Entwicklungsteams.

Rubys Syntax ist sehr flexibel. Der Ausgangspunkt für das Entwerfen von Ruby ist das Programmieren zum Spaß. Daher können Sie mit Ruby viele Tricks spielen Das kommt der natürlichen Sprache nahe. Für Programmierer macht das Spielen mit Ruby tatsächlich viel Spaß. Die Geburt von Rails in der Ruby-Community und nicht die Geburt der Python-Community steht definitiv in direktem Zusammenhang mit der Programmiersprache. Die Kehrseite der flexiblen Syntax von Ruby ist jedoch die Vielfalt der Programmierimplementierungsstile, die eine Herausforderung für die Zusammenarbeit und das Management großer Teams darstellt.

2. Die Parser-Implementierung von Python ist ausgereifter und die Drittanbieter-Bibliothek ist von hoher Qualität

Obwohl der Ruby 1.9-Parser aus Sicht der Quellcode-Implementierung große Leistungsverbesserungen und viele neue Funktionen erzielt hat, geschieht dies im Wesentlichen durch das Patchen des Ruby 1.8-Quellcodes, um die Funktionalität zu erhöhen. In Bezug auf die Struktur des Quellcodes ist die Implementierung von Ruby zu alt. Es ist schwierig, Ruby zu erweitern, und wir können es nur weiter patchen. Aus diesem Grund entstehen in der Ruby-Community so viele neue Ruby-Parser-Implementierungen. Dies hat die Entwicklungsgeschwindigkeit von Ruby weitgehend eingeschränkt. Relativ gesehen ist der Python-Parser ausgereifter und stabiler.

In Bezug auf die Anzahl der Drittanbieter-Bibliotheken ist Ruby nicht geringer als Python, aber Python verfügt über deutlich mehr leistungsstarke, qualitativ hochwertige und bewährte Drittanbieter-Bibliotheken als Ruby Viele Bibliotheken von Drittanbietern für Ruby sind nicht sehr ausgereift, was die Entwicklung von Ruby stark eingeschränkt hat.

3. Python verfügt über ein breites Spektrum an Anwendungsfeldern, während Ruby derzeit hauptsächlich auf den Webbereich beschränkt ist.

Python verfügt über ein sehr breites Spektrum an Anwendungsfeldern. Es wird auch häufig in Server-Backends verwendet. Hochleistungsserverimplementierung, verschiedene intensive Vorgänge im Server-Backend, Volltextabruf, verschiedene Textverarbeitung, Systemverwaltung usw. Darüber hinaus ist wxPython auch ein sehr ausgereiftes Cross-End. Plattform-GUI-Framework im Desktop-Anwendungsbereich. Für einige spezielle Anwendungen, wie zum Beispiel den Aufruf der Kernel-API des Betriebssystems, kann Python dies auch sehr gut vervollständigen. Beispielsweise wird die Echtzeitsynchronisierungslösung für eine große Anzahl kleiner Dateien durch den direkten Aufruf der Inotify-Funktion von Python erreicht der Linux-Kernel. Man kann also sagen, dass Python das Schweizer Taschenmesser der Softwareentwicklung ist, es kann alles.

Gerade aufgrund der Einschränkungen des Ruby-Parsers und der Ruby-Klassenbibliothek ist die Anwendung von Ruby hauptsächlich auf den Bereich der Webentwicklung beschränkt. Derzeit kann die Anwendung von Ruby nicht auf viele Orte außerhalb ausgedehnt werden dem Bereich der Webentwicklung. Es wird gesagt, dass Douban in den frühen Tagen über Ruby on Rails nachgedacht hat, aber weil Ruby keine anderen Dinge tun konnte und Python alles konnte, gab es Ruby schließlich auf und entschied sich für Python.

4. Ruby ist der König im Webbereich

Da Internetanwendungen immer mehr in verschiedene Bereiche der Softwareentwicklung vordringen, macht die Webentwicklung tatsächlich einen immer größeren Anteil der gesamten Entwicklung aus Softwareindustrie. Obwohl Ruby in anderen Bereichen sehr eingeschränkt ist, ist es im Bereich der Webentwicklung der absolute König. Das Rails-Framework ist allen potenziellen Konkurrenten weit voraus. Auch wenn Ruby auf die eine oder andere Art Probleme haben mag, ist Rails bei der Webentwicklung nahezu die unbestrittene einzige Wahl.

Obwohl Python sehr umfassend ist, ist es im Bereich der Webentwicklung nicht herausragend. Obwohl es viele Web-Frameworks gibt, kann keines davon wirklich die Führung übernehmen. Obwohl Django in der Python-Community relativ beliebt ist weist in vielerlei Hinsicht Mängel auf. Heutige Internetanwendungen sind häufig gemischte Programmierungen in mehreren Sprachen. Die Mängel von Ruby außerhalb des Webs können auch durch andere Sprachen ausgeglichen werden.

5. Die Paketverwaltung von Python ist nicht so gut wie die von Ruby

Obwohl die Bibliotheken von Drittanbietern von Python qualitativ hochwertiger und ausgereifter sind, fehlt der Python-Community eine gute Paketverwaltungssoftware und eine Website zur Paketveröffentlichung wie RubyGem. Daher ist die Erstellung von Anwendungen nicht so bequem und benutzerfreundlich wie bei Ruby. Insbesondere beim Aktualisieren der Version der Klassenbibliothek treten viele Probleme auf, was nicht so einfach ist wie bei RubyGem.

Aber im Allgemeinen sind Python und Ruby zwei sehr ähnliche Programmiersprachen. Auch wenn Sie beide Programmiersprachen lernen, wird es nicht allzu viel Zeit verschwenden. Wenn ich persönlich möchte, würde ich zuerst Rails zum Erstellen von Webanwendungen verwenden und dann je nach Situation Python oder Java wählen, um einige Server-Back-End-Vorgänge abzuwickeln. Kurz gesagt, die Zukunft ist immer noch eine Ära der Hybridprogrammierung. Wir müssen mehr über einige Programmiertools wissen und uns dann entsprechend unseren Bedürfnissen ernähren.

3. Korrekturen zu „Vergleich zwischen Ruby und Python“

1. Dokumentation, Open-Source-Projekte und Bibliotheksunterstützung sollten nicht mit Python verglichen werden Keine Frage der Größenordnung. Warum sollte es nebeneinander aussehen?

2. Python verfügt nicht über das in den Kern integrierte Modul für reguläre Ausdrücke, verfügt jedoch über die Unterstützung der Re-Standardbibliothek. Der Zweck bestand damals darin, den Kern so klein wie möglich zu machen. Ich verstehe nicht ganz, was ist der Unterschied zwischen der Verwendung der Standardbibliothek und den integrierten Funktionen oder sogar ein Vorteil? Und die Verwendung regulärer Ausdrücke in Python ist nichts weiter als mehrere Importe und ein paar Buchstaben beim Aufruf. Die unzähligen eingesparten Enden reichen aus, um dieses Problem auszugleichen.

3. Für die eingebettete HTML-Funktion gibt es eine Cheetah-Vorlage mit C/Python-Dual-Implementierung. Es heißt, dass sie dank Zope von der US-Marine und der französischen Regierung verwendet wird Ich frage mich, wie ausgereift diese Funktion in Ruby ist?

4. Das mod_ruby-Modul ist erst seit kurzer Zeit erschienen. Wenn der Autor noch nichts von mod_python gehört hat, ist er wirklich unwissend. Als ich vor einem Jahr die Dokumentation zu mod_python3.2.8 übersetzte, war mod_python bereits so ausgereift, dass fast alle Python

WEB-Frameworks den Aufbau darauf unterstützten, um die Effizienz zu verbessern. Es scheint jedoch, dass mod_ruby nur ein paar Mal im Jahr aktualisiert wird. mod_python hat auch Schwergewichtsanwendungen wie gnu.org. Ich frage mich, ob mod_ruby eine hat.

5. Darüber hinaus werden Unix-Tools erwähnt. Red Hat

Das Linux-Installationsprogramm wurde schon immer in Python geschrieben. Wenn Sie Ubuntu verwenden, ist das Programm, das Sie zum Aktualisieren des Systems auffordert, ebenfalls in Python geschrieben.

6. rac und doctools, bitte entschuldigen Sie meine Unwissenheit. Ich habe gegoogelt und außer Ihrem Artikel nur wenige chinesische Inhalte über rac gefunden. Nachdem ich mich umgesehen habe, habe ich herausgefunden, dass es sich um ein Tool handelt, das yacc ähnelt. Aus Sicht von Google werde ich nicht viel über die Benutzerfreundlichkeit von rac sagen. Ich verstehe nicht ganz, wie nützlich ein Yacc-Tool in der täglichen Programmierung ist, aber da der Autor es erwähnte, suchte ich nach Spark, von dem ich nur den Namen gehört und den ich nie verwendet hatte. Das Ergebnis von Google ist „racc

ruby":"python

spark“=159.000:659.000. Was Doctools betrifft, kann ich nichts sagen. Es gibt nur 15.800 Datensätze bei Google. Ich kann immer noch nicht herausfinden, wofür dieses Ding verwendet wird. Also habe ich etwas gefunden, das wahrscheinlich ähnlich war, und die Docutils- und Google-Datensätze verglichen.

7. „Vollständigere objektorientierte Syntax als die Python-Bibliothek“. Was ist der Zweck der Objektorientierung? Kann Ruby außerdem wie Python sein? Die meisten Standardbibliotheken müssen die Dokumentation überhaupt nicht überprüfen. Sie müssen dann nur dir () und help () verwenden, um loszulegen Kann es bis zum zweiten Mal direkt geschrieben werden, weil das Modul zu wenig enthält und es zu bequem ist, es zu merken? Darüber hinaus ist die Objektorientierung weder ein Allheilmittel noch die fortschrittlichste Idee der Softwareentwicklung.

8. „Die gesamte Ruby-Bibliothek basiert auf der Klassenvererbungsstruktur, aber ich habe sie als Schatz gelernt.“ Vielleicht ist dies auch ein Vorteil von Ruby, um Java-Programmierer zu retten.

9. „Grundlegende Datentypen und Operatoren können überladen werden.“ Ich frage mich, ob das Überladen von __add__ zählt.

10. „Die Hauptfunktionen von Ruby werden durch Objektmethodenaufrufe realisiert, nicht durch Funktionen.“ Ich frage mich, ob dieser Satz noch da ist . Darüber hinaus wird empfohlen, nichts zu gründlich zu verfolgen, und das Wort „praktisch“ ist attraktiver.

11. Python erfordert nicht unbedingt eine einzelne Vererbung, um Programmierern Flexibilität zu geben. Darüber hinaus wird in Bezug auf Schnittstellen davon ausgegangen, dass eine Funktion mit demselben Namen dieselbe Schnittstelle hat, solange sie in Python definiert ist. Die Metaphysik ist auf diese Ebene gestiegen, und ich bin etwas verwirrt. Seien Sie nicht so zuversichtlich, was die Schnittstelle angeht. Die sogenannte Schnittstelle von Ruby ist nur eine Mischung. Dieses Ding wurde in mehreren großen Projekten in Python implementiert, aber da es für Python offensichtlich keine Bedeutung hat, wird es nicht mehr verwendet.

12. In Bezug auf die funktionale Lisp-Programmierung verfügt Python über zahlreiche integrierte Unterstützungen wie Map, Zip, Filter usw. und natürlich Lambda. Sprechen Sie nicht über Unterstützung, sondern über Praktikabilität. Einige Pythoner denken immer noch, dass funktionale Programmierung die Lesbarkeit des Codes beeinträchtigt und versuchen, dies zu vermeiden. Bevor Sie also darüber nachdenken, etwas zu unterstützen, überlegen Sie zunächst, ob es eine gute Sache ist.

13. „Das größte Manko ist genau die Kraft des Rubins.“ Das ist so ekelhaft, kein Kommentar.

Haha, Ruby hat keine internationale Unterstützung. Was für ein Witz? Ich frage mich, was dieser kleine Japaner am Anfang gedacht hat. Hat er CET-4 auf Englisch bestanden?

15. Was Jython betrifft, gibt es jetzt auch Jruby, vielleicht weil der Originaltext des Autors relativ früh ist. Python hat auch viele Implementierungen, wie z. B. Jython,

Ironpython, Pypy,

Pyrex usw. Die Exzellenz von Python muss nicht unbedingt in anderen Sprachen implementiert werden, um sich widerzuspiegeln. Natürlich, ganz zu schweigen von der Hoffnung, dass Java Ruby aus der Not rettet.

Außerdem sollten Sie einige der Mängel von Ruby nicht vermeiden:

16. Ruby verfügt nicht über lokalisierte Threads, sondern verwendet Pseudo-Threads, die die Vorteile von Multi-Core-CPUs nicht nutzen können. CPython verwendet lokalisierte Threads, kann aber aufgrund der Verwendung von GIL die Vorteile von Multi-Core-CPUs nicht nutzen. Das Aufkommen von Stackless kann dieses Problem jedoch vollständig lösen, und Stackless hat Python auf die Höhe des parallelen Rechnens gehoben. Der Konkurrent auf dieser Ebene kann Erlang sein, und Ruby muss natürlich nicht neugierig sein. Die ultraleichte Threading-Technologie kann sicherstellen, dass es einfach ist, Hunderttausende Threads auf einer schlechten Maschine auszuführen. Eine Option bietet auch die asynchrone Programmierung auf Basis von Twisted.

17. Als ich anfing, Python zu lernen, hörte ich das Sprichwort „Python ist die langsamste unter den gängigen dynamischen Sprachen“. Später erfuhr ich, dass die Person, die das sagte, Ruby überhaupt nicht ernst nahm. Wenn Ruby in die gängigen dynamischen Sprachen aufgenommen wird, wird es eine Sprache geben, die um viele Größenordnungen langsamer ist als Python.

18. Ist Rubin beliebt? Gehst du zu PHP? PHP ist eine gute Sache, aber das Problem ist, dass es nur für die WEB-Programmierung verwendet werden kann, was den Anwendungsbereich von PHP einschränkt. Dinge, die etwas mehr System erfordern, müssen C verwenden. Und nun scheint Ruby diesen Weg zu gehen. Bis eines Tages jemand die Nachricht verbreitete, dass „Ruby für die Client-Programmierung verwendet werden kann“, was die Neugier aller weckte. Darüber hinaus ist noch nicht bekannt, ob die aktuelle ROR irgendetwas ersetzen kann. Nicht alle Leute, die aus Java gerettet wurden

WEB-Entwicklung wechselten zu Ruby.

4. Kommentar zu „Ruby oder Python?“ 》

Die Designphilosophien von Python und Ruby sind in der Tat sehr unterschiedlich. Zu diesem Thema werde ich nicht kommentieren, welche davon besser ist. Was die Effizienz betrifft, sollte Ruby niemals mit Python verglichen werden. Ruby ist ein Pseudo-Thread und es gibt keine Möglichkeit, die Vorteile von Multi-Core-CPUs zu nutzen, also übergeben Sie ihn einfach. Und Python verwendet native

Thread, nur weil einige Module nicht threadsicher sind, wurde GIL hinzugefügt, um die Anwendung von Multi-Core-CPUs einzuschränken. In meinem letzten Test kann die Rechenleistung von Multi-Core-CPUs nach Verwendung der asynchronen Threads von Twisted gut genutzt werden. . Die Ausführungseffizienz liegt nicht in der gleichen Größenordnung, das werden Sie feststellen, wenn Sie es selbst ausprobieren.

Der Vergleich von Java mit Python zeigt die Kreativität des Autors, haha. Open-Source-Projekte stimmen sehr gut mit Darwins natürlicher Auswahl überein. Könnte es sein, dass das Fehlen von Rubys Open-Source-Projekten ein Vorteil ist? Darüber hinaus habe ich außer dem WEB

Framework keine Projekte in Python gesehen, die zu viele Duplikate aufweisen. Pypcap hat beispielsweise Pcapy grundsätzlich eliminiert.

Wenn es um Ressourcen geht, hat Ruby noch einen langen Weg vor sich. Seien Sie also bitte nicht zu sehr gegensätzlich, wenn es darum geht, dass beide Seiten stark sind. Was die Leute in der Java-Community betrifft, die dazu neigen, Ruby zu lernen, denke ich persönlich, dass die Entwickler, die an Java gewöhnt sind, einfach zu engstirnig sind. Sprache ist ein Werkzeug, und objektorientiert ist auch ein Werkzeug. Python hat auch keine funktionale Programmierunterstützung. Darüber hinaus basieren viele Python-Praktiken auf der Entwicklungseffizienz als erstem Ziel und sind nicht auf verschiedene Formen beschränkt. Auch die Mehrfachvererbung in C++, die von vielen Leuten mit begrenzter Intelligenz stark kritisiert wird, kann ebenfalls unterstützt werden. Es geht nicht darum, etwas zu unterstützen, das einem nicht gefällt, sondern darum, so viele Menschen wie möglich dazu zu bringen, etwas zu nutzen, das ihnen gefällt. Ein Beispiel für Python, das von Ruby-Entwicklern immer als nicht OO genug angesehen wurde, besteht darin, die Länge einer Sequenz zu verwenden. Python verwendet die len(x)-Methode. Wenn Ruby-Entwickler bei dieser Frage der Meinung sind, dass x.length als OO betrachtet werden kann, kann Python auch x.__len__() direkt verwenden, um die Länge zu erhalten. Aus der Perspektive von Java, das Methoden zum Kapseln von Eigenschaften verwendet, ist wer mehr OO, haha.

Ruby ist die Arbeit eines Japaners. Ich werde nicht viel dazu sagen. Hier kann ich Ruby nur auf technischer Ebene herabsetzen Es müssen nichttechnische Begriffe verwendet werden.

Über Rubyon

Rails, die Ruby-Community hat tatsächlich fast ihre ganze Energie darauf konzentriert. Dies kann jedoch nur die Naivität von Ruby zeigen. Die Tatsachen haben gezeigt, dass viele Nachahmer von ROR unzählige erweiterte Funktionen auf den Markt gebracht haben, die ROR weit übertreffen. Wie wäre es, wenn Ruby jetzt plötzlich ROR verlieren würde? Was den vom Autor erwähnten Zend angeht, ist es im Vergleich zu ROR, als würde man mit einem Ei auf einen Stein schlagen. Ich habe zwei WEB-Frameworks von Python gelernt und schenke normalerweise verschiedenen Dingen in Python und Ruby mehr Aufmerksamkeit, aber das habe ich noch nie getan Ich habe von Zend gehört. Ich weiß nicht, ob es das Werk des Autors ist, haha. Wenn Sie einen Wettbewerb zu WEB-Frameworks benötigen, können Sie Django, Quixote, mod_python und dergleichen zum Vergleich verwenden. Django, eine typische Nachahmung von ROR, befindet sich immer noch im Wachstum, verfügt aber bereits über viele Funktionen, die besser als ROR sind, und es versteht sich von selbst, dass die Leistung weitaus besser ist als die von ROR. douban.com, das Quixote verwendet, hat den größten Datenverkehr unter allen Websites, die Python und Ruby verwenden, und ist bei gleicher Hardwarekonfiguration mehr als doppelt so schnell wie ROR. Das müssen Sie wissen, nachdem Sie verschiedene gleiche Verluste wie WEB-Server usw. entfernt haben . , was eine Größenordnung schneller ist. Was mod_python betrifft, wird gesagt, dass dies verwendet wird. Wenn Ruby weiterhin Open Source sein möchte, wird es immer im Schatten von Python stehen.

Was die Geschwindigkeit des Einstiegs angeht, hat jeder andere Situationen, daher werde ich keinen Kommentar abgeben. Was Flexibilität mit sich bringt, ist Ansichtssache, daher werde ich dazu keinen Kommentar abgeben. Der Autor spricht darüber, wie schwierig es ist, mit Python anzufangen, aber ich weiß wirklich nicht, wie einfach es mit Ruby ist. Als ich Python zum ersten Mal lernte, schrieb ich am 11. Tag einen lexikalischen Parser in Python, der immer noch auf meinem Blog verfügbar ist. Wenn es um den Einstiegsschwierigkeitsgrad geht, ist es daher besser, dass jeder es selbst ausprobiert, ohne sich anhören zu müssen, was andere sagen.

Es wurde erwähnt, dass das von ROR generierte Verzeichnis viele Dinge enthält und es lange dauert, sie alle zu verstehen. Dies ist in der Tat ein IDE-Syndrom. Ein typisches Beispiel in Python ist TurboGears. Wenn Sie verstehen möchten, wie die gesamte Anwendung ausgeführt wird, können Sie mit dem Kern-Cherrypy beginnen, und dann müssen Sie nichts mehr wissen, wenn Sie TurboGears verwenden. Aus dieser Perspektive hat ROR keine Wahl. Darüber hinaus war scgi, eine Möglichkeit zur Verbindung mit WEB-Servern, die jetzt in ROR verfügbar ist, damals ebenfalls ein Werk von Python und eine weitere kleine Sache, die im Schatten von Python lebte.

Wie sieht die zukünftige Entwicklung von Ruby aus? Es ist schwer zu sagen, ob Ruby All-In geht, aber da es All-In ist, ist das Risiko immer noch recht hoch. Was Python betrifft, dachte ich, dass es sich wirklich stetig weiterentwickeln würde, aber dann machte es die Hinzufügung von Micro$oft für uns schwierig vorherzusagen, wie groß die Zukunft von Python sein würde. Lassen Sie uns zurückgehen und über die Vielfalt von Python sprechen, die der Autor immer gehasst hat. Meiner Meinung nach gibt es nur eine Handvoll Dinge, die Ruby Python übertreffen kann, und die Dinge, die Python Ruby übertrifft, sind für Ruby natürlich eine unüberwindbare Lücke. Angesichts der Vielfalt der Programmiersprachen ist es daher nicht empfehlenswert, dass jeder Ruby lernt. Es gibt eine Auswahl weniger und es ist immer gut, etwas Popularität zu erlangen.

5. Python oder Ruby, wen soll ich wählen?

Tatsächlich sind Python und Ruby sehr ähnlich, viel näher als die meisten anderen Sprachen, sodass Sie alles verwenden können, was Sie möchten (um ehrlich zu sein, obwohl es auch Unsinn ist). Obwohl es einige Unterschiede in der Syntax gibt, von denen die meisten Syntaxzucker sind, wage ich es, einige aufzulisten (ich habe Python fast vergessen, also zögern Sie nicht, mich zu kritisieren, wenn Sie falsch liegen), aber der Hauptunterschied liegt immer noch in der Designkonzept: Flexibilität vs. explizit. Ich glaube nicht, dass es zwischen beiden einen Unterschied in der Produktivität gibt, wenn Sie damit vertraut sind. *Hinweis: Der Vergleich ist auf die Sprache selbst beschränkt.

1. Die Groß-/Kleinschreibung von Ruby kann mit vielen Dingen übereinstimmen: Python hat keine Groß-/Kleinschreibung und die Verwendung von if/else ist starrer Es ist hübsch, obwohl es manchmal ein bisschen Ärger verursachen kann. Das Ende von Ruby ist ziemlich hässlich, daher ist jeder gezwungen, ein Einzeiler zu sein (Witz)

3. Ruby fühlt sich mehr OO an als Python. Das kann natürlich auch daran liegen, dass Python die Verwendung nicht befürwortet von Dingen, die die interne Struktur von Objekten verändern.

4. Python hat ein Listenverständnis, Ruby nicht:(

5. Python hat ein echtes Schlüsselwortargument Ruby verwendet Hash, um es zu simulieren. Natürlich gibt es keinen Unterschied in der tatsächlichen Verwendung 7. Reflexion: Ruby verfügt über viele integrierte Methoden, z. B. object.methods, und Python speichert diese Informationen in einem speziellen Wörterbuch. Es ist fast dasselbe.

8 Die Blockfunktion von Ruby ist sehr stark und die von Python Lambda kann nur einen einzelnen Wert zurückgeben

9. Rubys offene Klasse wurde weit entfernt deklariert und kann 2 Tage lang gespielt werden. Es scheint, dass Python integrierte Klassen nicht direkt ändern kann und dies nicht tut. 10. Python muss @classmethod verwenden, um die deklarierte Klassenmethode zu ändern. 11. Ruby verfügt über eine Monadenmethode. Ich weiß nicht, ob Python individuell angepasst werden soll hat ein ähnliches Konzept

12.ruby hat einen method_missing-Mechanismus und Python kann __getattr__ verwenden, um undefinierte Methoden (von qiezi) abzufangen

13.ruby verwendet Einzelvererbung + Mixin, Python verwendet Mehrfachvererbung , aber Python hat auch mixin

14. Ruby ​​hat eine Reihe von Syntaxhilfsmitteln, die Ihnen das Schreiben einer Reihe von Setter/Gettern erspart. Für die Eigenschaftsmethoden von Python müssen Sie immer noch Ihre eigenen schreiben eigene Setter/Getter

15.Ruby und Python verwenden beide Duck-Typing, aber Python verfügt auch über einen expliziten Schnittstellenmechanismus (wurde er von zope3 in den Kernel integriert?)

16.Rubys Funktion Rufklammern können weggelassen werden. Ja, drücken Sie einfach etwas weniger auf die Tastatur. Wenn Python standardmäßig keine Klammern oder Parameter hat, gibt es einen Verweis auf die Funktion selbst zurück

17 Die Metaprogrammierung von Python kann funktionieren, also muss ich auf die Experten warten. Ich denke nur, dass Pythoner sie nicht oft verwenden. Vielleicht ist die Programmlogik dadurch unklar einige hässliche Dinge von Perl, wie zum Beispiel viele vordefinierte $x-Konstanten

19.Ruby verfügt über eingebaute reguläre Ausdrücke, was praktischer ist

20.Rubys Yield wird zum Aufrufen von Blöcken verwendet. Pythons Yield wird verwendet, um Werte in den Generator einzugeben und auszugeben.

21. Ich habe das Gefühl, dass die Namenskonvention von Python-Bibliotheken etwas inkonsistent ist, und einige verwenden CamelCase. Vielleicht handelt es sich um ein historisches Problem, das bei zu vielen Bibliotheken auftritt. Python Drei Anführungszeichen sind sehr schön, Rubys <<-XX…XX ist zu hässlich, Sie können auch %q{…} verwenden, um mehrzeiligen Text umzubrechen (von Qiezi)

23 Ich mag Rubys Design der Klassenbibliothek Fügen Sie Aliase zu Methoden hinzu, um sie leichter zu merken.

Anderes: Die offizielle Website von Ruby bietet auch einige grundlegende Vergleiche.

6. Vergleich der Ressourcen und Lernkurven der beiden Sprachen:

Der Gesamteindruck unter Verwendung einer unangemessenen Metapher: Wenn Python Java ist, dann ist Ruby .net. Wir wissen, dass die Java-Welt sehr komplex und vielfältig ist. Es gibt viele Open-Source-Projekte, um sie umzusetzen, und es ist immer schwierig, sich für eines zu entscheiden. Das Gleiche gilt jetzt auch für Python, und da Python weitaus weniger schwierig zu entwickeln ist als Java, gibt es viel mehr Python-bezogene Projekte als Java.

In Bezug auf die Ressourcen sind beide Communities sehr stark, und die Java-Community läuft derzeit Gefahr, von Ruby assimiliert zu werden. Die Ruby-Community ist konzentrierter, während die Python-Community stärker verstreut ist. Ich vermute immer, dass Ruby mehr japanische Benutzer hat, aber da ich kein Japanisch verstehe, ist es schwierig, diese Idee zu bestätigen. Für einen Gründer, dessen Muttersprache nicht Englisch ist, habe ich immer ein wenig Angst, Angst, dass es schwierig sein wird, ihn zu verstehen, Angst, dass es schwierig sein wird, die neuesten Nachrichten zu erhalten usw. Obwohl diese Sorge im Moment unnötig erscheint, aber wer weiß, was passieren wird!

Der Grund, warum Ruby plötzlich populär wurde, ist untrennbar mit der Rails-Architektur verbunden. Wenn Sie Ruby in Betracht ziehen, denken Sie an Ruby on Rails. Rails bietet ein sehr gutes Webentwicklungs-Framework mit sehr hoher Entwicklungseffizienz. Obwohl es in Python viele ähnliche Architekturimplementierungen gibt, gibt es keine Architektur, die die Welt vereinen kann. Obwohl Pythons Zend vollständig ist, ist es eher auf Webserver ausgerichtet und kann nicht mit Rails verglichen werden.

Ruby ist einfacher zu verwenden als Python. Aus Sicht der Sprachfunktionen verfügt Ruby über viele interessante Kreationen, beispielsweise Blöcke, aber die groß angelegte Anwendung dieser interessanten Dinge macht das Programm verwirrend. Die Python-Syntax legt Wert auf Einfachheit, aber weil sie zu flexibel und zu einfach ist, sehen traditionelle Programmierer oft einige überraschende Ausdrücke. Ich weiß nicht, ob dies als Vorteil oder Nachteil angesehen werden sollte. Zumindest denke ich, dass die Syntax zu flexibel ist, was leicht zu übermäßigen Unterschieden in den Codierungsstilen verschiedener Programmierer führen kann, was den Lernaufwand erhöht.

In der Anfangszeit ist Ruby einfacher zu erlernen, aber sobald es ein bestimmtes Maß an Komplexität erreicht, wird Ruby plötzlich schwieriger. Der Einstieg in Python ist nicht einfach und auch nicht allzu schmerzhaft, wenn es kompliziert wird. Rails hat das Problem, dass der Einstieg einfach, der Einstieg aber schwierig ist. Was ist der Zweck des von Rails generierten Verzeichnisses? Wie wird O/R-Mapping implementiert? So übertragen Sie Daten aus dem Web in die Datenbank. Das sind alles Probleme, mit denen Ruby-Programmierer früher oder später konfrontiert werden. Dies ist bei Python nicht der Fall. Wenn Sie diese nicht verstehen, werden Sie wahrscheinlich nicht anfangen können. Zu hoch integrierte Rapid-Development-Tools weisen diese Eigenschaft auf, egal ob VB, Delphi oder .net, wie viele Entwickler, die es weniger als ein halbes Jahr lang verwendet haben, können den Zweck aller Dateien im Projektverzeichnis klar erklären die Syntax jeder Datei? Ich glaube, dass viele erfahrene Benutzer es möglicherweise nicht klar erklären können.

Aus struktureller Sicht sind die beiden Endergebnisse sehr ähnlich, obwohl sie tatsächlich sehr unterschiedlich sind. Ruby ist eine reine OO-Sprache, während Python eine Mischung aus Funktionen und OO ist. Obwohl Ruby auch funktionale Stilcodierung verwenden kann, wird diese tatsächlich simuliert. Diese Lücke zwischen ihnen hat für normale Programmierer keine großen Auswirkungen, schließlich sehen sie ähnlich aus.

Im Allgemeinen ist Ruby geeignet, wenn es sich um den ersten Vorgeschmack auf die Entwicklung eines Laien handelt. Für professionelle Programmierer empfehle ich weiterhin, sich für Python zu entscheiden.

Was die zukünftige Entwicklung betrifft, denke ich, dass die Entwicklung von Python vorhersehbar ist und relativ stabil verlaufen wird. Python gehört bereits zu einer Gemeinschaft und nicht zu einer Person, aber aus verschiedenen Gründen wird Rubys Autorenlabyrinth immer noch einen größeren Einfluss auf die Entwicklung von Ruby haben. Sun kontrolliert Java, aber aufgrund der leistungsstarken Ressourcen von Sun und der Organisation von jcp zur Koordination hat sich Java sehr gut entwickelt, aber es wird einige Zeit dauern, um zu beweisen, ob Ruby dies erreichen kann.

7. Von Python zu Ruby

Python ist eine sehr hervorragende Sprache. Bei der Migration von Python zu Ruby werden Sie einige grammatikalische Unterschiede feststellen.

Ähnlichkeiten

Wie Python, in Ruby...

Es gibt eine interaktive Eingabeaufforderung (genannt irb).

Sie können dies über die Befehlszeile tun Lesen Sie das Dokument (über den Befehl ri anstelle von pydoc). Es gibt kein spezielles Symbol zum Beenden einer Zeile (außer neue Zeile). drei in Python-Anführungszeichen.

List verwendet [], Dict verwendet {} (Dicts werden in Ruby „Hashes“ genannt).

Arrays funktionieren auf die gleiche Weise (2 Arrays addieren sich zu ein längeres Array, aber wenn Sie a3 = [ a1, a2 ] kombinieren möchten, wird ein Array erzeugt, das Arrays enthält).

Objekte haben feste Typen und dynamische Konvertierung.

Alles ist Objekt , Ein Variablenname ist nur ein Zeiger auf ein Objekt.

Obwohl die Schlüsselwörter unterschiedlich sind, funktionieren Ausnahmen auf die gleiche Weise.

Sie haben ein Tool zum Einbetten von Dokumentation (in Ruby rdoc genannt).

Unterschiede

Anders als Python, in Ruby,…

Strings können geändert werden.

Sie können Konstanten verwenden (die Werte von Konstanten ändern sich unterschiedlich).

Hier gibt es einige zwingende Schreibvorschriften (zum Beispiel: Klassennamen beginnen mit Großbuchstaben, Variablennamen beginnen mit Kleinbuchstaben).

Es gibt nur einen Container (Array) und dieser kann geändert werden.

String-Einschränkungen in Anführungszeichen sind unterschiedlich.

Hier gibt es keinen neuen Klassenstil, Klasse hat nur einen Stil.

Sie können in Ruby nicht direkt auf Eigenschaften zugreifen, sondern über Methodenaufrufe.

Die Verwendung von () in Methodenaufrufen ist eine optionale Strategie.

Hier werden private und andere Schlüsselwörter mit eingeschränktem Zugriff verwendet, um das Ausblenden von Namen in Python zu ersetzen.

„Mixins“ werden anstelle der Mehrfachvererbung verwendet.

Sie können die bestehende Klasse jederzeit ändern und neue Methoden hinzufügen.

Ersetzen Sie „Wahr“ und „Falsch“ durch „Wahr“ und „Falsch“ (ersetzen Sie „Keine“ durch „Null“).

Bei der Beurteilung des Wahrheitswerts werden nur „falsch“ und „null“ als „falsch“ betrachtet. Alles andere wird als „wahr“ betrachtet (einschließlich 0, 0,0, „“ und []).

Ersetzen Sie elif durch elsif.

Ersetzen Sie import durch require. Die Verwendung ist jedoch dieselbe.

Verwenden Sie den üblichen Stil, um Dokumente mit Anmerkungen zu versehen (Dokumentzeichenfolgen ersetzen) und Dokumentation zu erstellen.

8. Vergleichen Sie Python und Ruby unter drei Gesichtspunkten:

Für welche Anwendungen sind sie geeignet?

2 3. Wie ist die Portabilität, da das Projekt letztendlich auf mobile Plattformen wie Windows CE Symbina portiert werden soll

[1. Anwendungen, auf die jedes anwendbar ist]

Die Ergebnisse von Die Rezension scheint zu sein. Beide Sprachen haben gute Kritiken und schneiden in der Webentwicklung sehr gut ab. Sie eignen sich sehr gut für die schnelle Anwendungsentwicklung und die Entwicklungseffizienz ist sehr hoch.

Python:

Auszug einiger Anwendungsbeschreibungen im Zusammenhang mit dem Projekt

Plattformübergreifende Entwicklung:

Python unterstützt eine Reihe verschiedener Plattformen auf neutrale Weise. Wenn das vom Benutzer verwendete System unterschiedliche Plattformen enthält, kann Python aufgrund seiner Anpassungsfähigkeit auch die Möglichkeit bieten, andere Tools für das System zu verwenden . Für Benutzer, die häufig die Plattform wechseln, ist Python eine ideale Wahl.

Bei der Bereitstellung von Softwarediensten für Endbenutzer ist Python auch eine Alternative, um den Zeit- und Kostenaufwand für die gleichzeitige Programmierung mit unterschiedlicher Anwendungssoftware zu vermeiden.

Internetprogrammierung:

Python wird mit Standardmodulen für die Kommunikation auf Basis- und Protokollebene mit Netzwerk-Sockets geliefert. Wenn Sie beispielsweise E-Mails von einem POP-Server lesen möchten, wird Python mit dem Bibliotheksmodul geliefert kann das machen. Darüber hinaus unterstützt Python auch XML-, HTML- und CGI-Bibliotheksdateien, sodass es verwendet werden kann, um Benutzereingabeanforderungen zu analysieren und über den Webserver qualitativ hochwertige Ergebnisse zu erzielen.

Programmierer können auch Module für Apache-, Unix- und Windows-Webserver kompilieren, die über den integrierten Python-Interpreter verfügen. Basierend auf der Leistungsfähigkeit von CGI-Programmen können Python-Anweisungen einfach ausgeführt werden, ohne sie separat laden zu müssen.

Für die Python-Netzwerkprogrammierung gibt es ein gutes Buch: „Python Network Programming Basics“

Dieses Buch führt umfassend in die Grundkenntnisse der Netzwerkprogrammierung mithilfe der Python-Sprache ein, der Hauptinhalt Einschließlich Netzwerkgrundlagen, Erweiterte Netzwerkoperationen, Webdienste, Parsen von HTML und -Tasking (einschließlich Forking, Threads und asynchrone Kommunikation) usw. Dieses Buch ist sehr praktisch und enthält insgesamt etwa 175 Beispiele und mehr als 6.600 Codezeilen. Es ist die beste Vorgehensweise, um den Lesern zu helfen, die Python-Sprache umfassend und schnell zu erlernen und Netzwerkprogramme zu schreiben.

Ruby:

Eine leistungsstarke, objektorientierte Skriptsprache, die Ihnen eine schnelle und einfache objektorientierte Programmierung ermöglicht, manchmal entwickelt mit formalen objektorientierten Sprachen wie Smalltalk, Eiffel, oder C++ Einige kleine Projekte scheinen etwas „übertrieben“ zu sein, und Ruby kann diese objektorientierten Programmieranforderungen erfüllen. Natürlich können Sie Ruby auch für die normale prozessorientierte Programmierung verwenden.

Ruby unterstützt viele Netzwerkprotokolle, sowohl High- als auch Low-Level. Ruby bietet einige grundlegende Klassen, die Ihnen die Interaktion über TCP, UDP, SOCKS und viele andere Protokolle ermöglichen, ohne sich an die Netzwerkschicht halten zu müssen. Diese Klassen stellen auch Hilfsklassen bereit, mit denen Sie problemlos auf dem Server lesen und schreiben können. Netzwerkprogrammierung ist auch großartig.

[2. Entwicklungsumgebung, Betriebsumgebung]

Python:

Im Gegensatz dazu gibt es keine starke integrierte Entwicklungsumgebung. Manche Leute sagen, dass Open-Source-Software einfacher zu verwenden ist als kostenpflichtige Software.

Einige, die häufig verwendet werden:

Pythons eigener Leerlauf:

ist nicht der beste unter den Python-IDEs...

PythonWin:

Es ist sehr einfach zu bedienen (so komfortabel wie die Verwendung von Windows). Es verfügt über einen nützlichen Editor, der Code-Zusammenführung, Syntax-Tag-Hervorhebung und Funktionen zur automatischen Vervollständigung von Code umfasst. PythonWin enthält, wie einige IDEs, keinerlei Formular-Designer, bietet aber einen hervorragenden Debugger mit Überwachung, Code-Inspektion, interaktiven Debugging-Fenstern, Haltepunkten und anderen Funktionen, die ein Debugger haben sollte. Am wichtigsten ist, dass PythonWin stabil ist, obwohl es bei der Verwendung auf Win95r2-Systemen manchmal seltsamerweise „hängt“. In Bezug auf die Benutzeroberfläche ist PythonWin relativ einfach, aber sehr attraktiv und nutzt gut einbettbare und andockbare Elemente (ich bevorzuge irgendwie den Idle-Stil „viele Fenster überall“, der auch von vielen anderen IDEs verwendet wird). PythonWin integriert außerdem die HtmlHelp-Version der Python-Dokumentation und PythonCOM von ActiveState.

Pydev-Plugin von Eclipse, Eclipse+pydev

Pydev basiert auf Eclipse, einer großartigen Python-Umgebung, und die Verbesserungsgeschwindigkeit ist sehr schnell. Einige bereitgestellte Funktionen

UliPad:

Ein Editor, den Sie zum Schreiben von Dokumenten und zur Programmierentwicklung verwenden können. Es wird mit der Programmiersprache Python entwickelt und die Benutzeroberfläche basiert auf wxPython. Neben der Vervollständigung der allgemeinen Funktionen allgemeiner Editoren soll vor allem ein praktisches und flexibles Framework implementiert werden, damit Entwickler problemlos neue Funktionen entwickeln können. Darüber hinaus können programmiererfahrene Anwender auch Plug-Ins für spezielle Problemstellungen im Arbeitsalltag zusammenstellen und so eng in den Arbeitsalltag integrieren. Da Python, eine leistungsstarke Programmiersprache, verwendet wird, können Sie die Software problemlos an Ihre Bedürfnisse anpassen.

UliPad unterstützt Code-Färbung, intelligente Vervollständigung, Code-Debugging, Python-Klassen-Browsing, Code-Snippets, FTP-Funktion, Verzeichnis-Browsing und andere leistungsstarke Funktionen. Die Dokumentation in seinem Doc-Verzeichnis ist sehr umfangreich und ermöglicht Ihnen das Schreiben von Python A toller Helfer!

Systemanforderungen:

Python 2.4+

wxPython 2.6+

Als letztes haben wir uns für UliPad entschieden, was ziemlich gut ist.

Ruby:

Ruby verfügt über einen hervorragenden High-Level-Debugger.

Sie können das Ruby-Plug-In von Netbeans oder das Ruby-Plug-In von Eclipse verwenden

Der allgemeine Prozess der Installation der Entwicklungsumgebung unter Eclipse:

1. Installieren Sie Ruby 1.8.6 One-Click Installer.

2. Entpacken Sie das komprimierte Eclipse Platform Runtime-Binärpaket in ein bestimmtes Verzeichnis.

3. Entpacken Sie den Inhalt des komprimierten RubyDevelopment Tools-Pakets in das entsprechende Verzeichnis von Eclipse.

Laden Sie für die Betriebsumgebung einfach die entsprechende Version von der offiziellen Website herunter und installieren Sie sie dann. Die Installation unter Windows ist relativ einfach. Doppelklicken Sie einfach, um sie auszuführen.

【3. Portabilität】

Python:

Aufgrund seiner Open-Source-Natur wurde Python auf viele Plattformen portiert (mit Modifikationen, damit es auf verschiedenen Plattformen funktionieren kann). der Plattform). Wenn Sie darauf achten, systemabhängige Funktionen zu vermeiden, laufen alle Ihre Python-Programme ohne Änderungen auf allen unten aufgeführten Plattformen. Zu diesen Plattformen gehören Linux, Windows, FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acom RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE und sogar PocketPC!

Wenn Python ausgeführt wird, kompiliert es zunächst den Quellcode in der .py-Datei in Python-Bytecode (Bytecode), und dann führt die Python Virtual Machine diese kompilierten Bytecodes aus. Die Grundidee dieses Mechanismus stimmt mit Java und .NET überein. Der Unterschied zwischen Python Virtual Machine und Java oder .NET Virtual Machine besteht jedoch darin, dass Python Virtual Machine eine fortschrittlichere virtuelle Maschine ist. „Fortgeschritten“ bedeutet hier nicht, dass die virtuelle Maschine von Python leistungsfähiger ist als Java oder .NET. Es bedeutet, dass die virtuelle Maschine von Python im Vergleich zu Java oder .NET weiter von der realen Maschine entfernt ist. Oder man kann sagen, dass die virtuelle Maschine von Python eine virtuelle Maschine mit einem höheren Abstraktionsniveau ist.

Sie können eine objektorientierte interpretierende Computerprogrammiersprache installieren. Sie ist eine leistungsstarke und vollständige Allzwecksprache. Sie hat eine Entwicklungsgeschichte von mehr als zehn Jahren, ist ausgereift und stabil. Python verfügt über die umfangreichste und leistungsfähigste Klassenbibliothek unter den Skriptsprachen, die ausreicht, um die meisten in C++ und JAVA entwickelten Programme zu unterstützen. Nach der Installation von Python können sie auch viele in Python entwickelte Programme unterstützen Programme. Für normale Mobiltelefonbenutzer müssen wir nicht allzu viel wissen. Wir müssen lediglich die Python-Plattform installieren, damit unsere Mobiltelefone mehr in Python entwickelte Programme unterstützen können. Derzeit gibt es auf Symbian-Mobiltelefonen eine ganze Reihe von in Python entwickelten Programmen, die alle relativ praktisch sind.

Ruby:

Es wird hauptsächlich unter Linux entwickelt, kann aber auf vielen Arten von Unix, DOS, Windows95/98/Me/NT/2000/XP, MacOS, BeOS, Run verwendet werden auf OS/2 und anderen Systemen.

Es gibt nur sehr wenige Informationen über Ruby und die Entwicklung von Mobiltelefonen. Es gibt eine Version, die unter Windows CE ausgeführt wird, aber es scheint, dass es immer noch sehr wenige relevante Informationen gibt, und es gibt viele Beispiele für Installationsfehler und Kompilierungsfehler. Auf der japanischen Seite gibt es eine kleine japanische Einführung. [Zusammenfassung]

Dann habe ich auf Anregung eines Freundes auch die folgenden Referenzmeinungen zu Python und Ruby abgegeben. Ich möchte ihm danken:

1 Klare Sprache. Denn als der Autor es entwarf, war der allgemeine Leitgedanke, dass es für ein bestimmtes Problem nur einen besten Weg gibt, es zu lösen. Eine weitere Bedeutung dafür, dass die Python-Sprache eine klare Sprache ist, besteht darin, dass ihr Autor absichtlich eine sehr restriktive Syntax entworfen hat, damit schlechte Programmiergewohnheiten (z. B. das Nichteinrücken der nächsten Zeile nach rechts in einer if-Anweisung) nicht kompiliert werden können. Dies zwingt Programmierer absichtlich dazu, gute Programmiergewohnheiten zu entwickeln. Python verfolgt auch bei der Gestaltung anderer Teile einen klaren und konsistenten Stil, was Python zu einer Sprache macht, die einfach zu lesen und zu warten ist, bei einer großen Anzahl von Benutzern beliebt ist und ein breites Anwendungsspektrum bietet.

Die Codes, die von mehreren Personen geschrieben wurden, die Python für dasselbe Problem verwenden, werden sehr ähnlich sein. Aber Ruby hat unterschiedliche Designideen. Die damit geschriebenen Programme sind zu flexibel und die von verschiedenen Leuten geschriebenen Programme können sehr unterschiedlich sein.

Der obige Inhalt ist ein Vergleich der Ähnlichkeiten und Unterschiede zwischen Python und Ruby. Ich hoffe, dass Sie nach dem Lesen dieses Artikels ein tieferes Verständnis für die Ähnlichkeiten und Unterschiede zwischen Python und Ruby haben.

Verwandte Empfehlungen:

Vergleich von Python und Ruby

Wenn Sie neu in der Webentwicklung sind, welches sollten Sie zwischen PHP und PHP lernen? Python oder Ruby?

Das Problem jeder zirkulären Referenzvariablen in Python und Ruby (ein versteckter FEHLER?)

Das obige ist der detaillierte Inhalt vonVergleich der Ähnlichkeiten und Unterschiede zwischen Python und Ruby. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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