Heim > Backend-Entwicklung > Python-Tutorial > Vergleichen Sie Python und Ruby

Vergleichen Sie Python und Ruby

巴扎黑
Freigeben: 2017-09-15 10:47:58
Original
1490 Leute haben es durchsucht

Dieser Artikel vergleicht die Ähnlichkeiten und Unterschiede zwischen Python und Ruby sowie ihre jeweiligen Vor- und Nachteile usw. und zeigt Ihnen die Ressourcen und Lernkurven von Python und Ruby. Er ist sehr gut für Freunde geeignet, die zwischen ihnen zögern Ich hoffe, Sie mögen

Ich habe kürzlich darüber nachgedacht, eine Back-End-Sprache zu lernen, habe aber zwischen Ruby und Python gezögert und dann selbst einige Vergleiche angestellt habe das gleiche Problem.

1. Vergleichende Auswahl von Ähnlichkeiten und Unterschieden

1. Die Ähnlichkeiten zwischen Python und Ruby:
•Beide legen Wert auf einfache Syntax und haben allgemeinere Ausdrücke. Python ist Einrückung, Ruby ist ein einfacher Ausdruck. Alle Symbole wurden stark reduziert.
•Alle sind 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.
•Beide sind 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.
•Beide 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.
•Beide verfügen über umfassende C-Bibliotheksunterstützung. 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:
•Hat die Funktion von regulären Ausdrücken und eingebettetem 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 ein 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 mit Klassenvererbung strukturiert.
•Seine grundlegenden Datentypen und Operatoren können überlastet 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 stärker standardisierte Einzelvererbungen und implementieren auch Konzepte wie Schnittstellen.
•Python kann bedingte Anweisungen und Schleifenanweisungen in Listen implementieren, während Ruby eine „Block“-Methode verwendet, um diese Funktion zu implementieren, die flexibler und vielseitiger als Python ist.
•Ruby verfügt über bedingte Anweisungen, Schleifenanweisungen usw. in einer gründlichen funktionalen Weise ä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 eingerückte Ausdruck von Python ist für das Auge angenehmer als der grundlegende Ausdruck von Ruby. Die vollständigen Enden von 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 sehr ähnlich sind, 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.

Die Syntax von Python 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 Ruby-Klassen von Drittanbietern 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 LinuxKernel. 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 auch 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 höherer Qualität und ausgereifter sind, fehlt der Python-Community eine gute Paketverwaltungssoftware und Paketversion als Ruby Gem-Website. 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 Ruby Gem.

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. Nach langem Suchen 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 RACC 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 kannte 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 implementiert, nicht durch Funktionen.“ Ich frage mich, ob dieser Satz noch da ist . Darüber hinaus empfehle ich Ihnen, nicht zu sehr nach Gründlichkeit zu streben, da das Wort „praktisch“ attraktiver ist.

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 glauben 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 wirklich widerlich, 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 verfügt auch über viele Implementierungen wie 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. Aber das Aufkommen von Stackless kann dieses Problem 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 herausgefordert werden. 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 Entwickler, die an Java gewöhnt sind, einfach eine zu enge Vision haben. 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, ist die Verwendung der len(x)-Methode, um die Länge einer Sequenz zu ermitteln. 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.

Was Ruby on

Rails betrifft, hat die Ruby-Community tatsächlich fast ihre gesamte 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, soll www.gnu.org dies verwenden. 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 für 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.

Was die zukünftige Entwicklung von Ruby angeht, ist es schwer zu sagen, ob es alles oder nichts ist, aber da es alles oder nichts 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 nahe beieinander, 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 ein paar 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. Rubys Groß-/Kleinschreibung 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, einen Einzeiler zu schreiben (Witz)

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

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

6. Pythons Selbst ist nervig, Ruby hat nicht so umständliches Zeug

7. Ruby verfügt über viele integrierte Methoden, z. B. object.methods, und Python speichert diese Informationen in einem speziellen Wörterbuch. Fast da

8. Rubys Blockfunktion ist sehr stark und Pythons Lambda kann nur eine einzige zurückgeben Wert

9. Rubys offene Klasse wurde für 2 Tage deklariert und kann für Tricks wie zuvor nicht direkt geändert werden und lehnt dies ab

10. Python muss @classmethod verwenden, um die deklarierte Klassenmethode zu ändern, während Ruby über eine integrierte

11 verfügt, das heißt, das Objekt individuell anzupassen. Ich weiß nicht, ob Python ein ähnliches Konzept hat

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

13. Ruby verwendet Einzelvererbung + mixin, und Python verwendet Mehrfachvererbung, aber Python verfügt auch über mixin

14. Ruby verfügt über eine Reihe von Syntaxhilfsmitteln attr_*, was Ihnen das Schreiben einer Reihe von Setter/Gettern erspart, die Python immer noch ausführen muss Eigene Eigenschaftsmethoden. Schreibe Setter/Getter

15. Sowohl Ruby als auch Python verwenden Duck-Typing, aber Python verfügt auch über einen expliziten Schnittstellenmechanismus (wurde dieser von Zope3 in den Kernel integriert?)

16. Ruby Die Klammern in Funktionsaufrufen können weggelassen werden und erfordern ein paar Tastenanschläge weniger. Standardmäßig verfügt Python über keine Klammern oder Parameter und gibt einen Verweis auf die Funktion selbst zurück. Ich weiß nicht, wie weit die Metaprogrammierung von Python gehen kann. Ich habe nur das Gefühl, dass Pythoner sie nicht oft verwenden und die Programmlogik dadurch unklar wird 18. Ruby erbt einige hässliche Dinge von Perl, wie zum Beispiel die $x-Konstante

19. Ruby hat eingebaute reguläre Ausdrücke, was praktischer ist

20 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 ist es ein historisches Problem, das zu viele Bibliotheken hinterlassen haben. Python Drei Anführungszeichen sind wunderschön, Rubys <<-XX…XX ist zu hässlich. Sie können auch %q{…} verwenden, um mehrzeiligen Text umzubrechen (von qiezi)

23. Ich mag es Rubys Klassenbibliotheksdesign Fügen Sie Aliase zu Methoden hinzu, um sie leichter zu merken.

Anderes: Die offizielle Ruby-Website 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 Annahme 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, müssen Sie Ruby on Rails in Betracht ziehen. 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 leichter 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 Community, 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 entwickelt sich Java sehr gut, 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 gibt es in Ruby... eine interaktive Eingabeaufforderung (genannt irb). Sie können die Dokumentation über die Befehlszeile lesen (über den Befehl ri anstelle von pydoc). Es gibt kein spezielles Symbol zum Beenden einer Zeile (außer „Neue Zeile“), genauso wie drei Anführungszeichen in Python verwendet werden. Liste verwendet {} (Dict wird in Ruby Arrays Works genannt). auf die gleiche Weise (zwei Arrays werden zu einem längeren Array, aber wenn sie wie a3 = [ a1, a2 ] kombiniert werden, entsteht ein Array, das Arrays mit festen Typen und dynamischer Konvertierung enthält. Alles ist Objekt, der Variablenname ist nur ein Zeiger auf Object. Obwohl die Schlüsselwörter unterschiedlich sind, funktionieren Ausnahmen auf die gleiche Weise (in Ruby rdoc genannt).

Unterschiede

Im Gegensatz zu Python ,...Strings können geändert werden. Sie können Konstanten verwenden (der Wert einer Konstante ändert sich unterschiedlich). Es gibt einige zwingende Schreibvorschriften (zum Beispiel: Klassennamen beginnen mit einem Großbuchstaben, Variablennamen beginnen mit einem Kleinbuchstaben). Es gibt nur einen Container (Array) und dieser kann geändert werden. Zeichenfolgenbeschränkungen innerhalb von Anführungszeichen sind unterschiedlich. Hier gibt es keinen neuen Klassenstil, die Klasse hat nur einen Stil. Sie können nicht direkt auf Eigenschaften zugreifen; in Ruby erfolgt dies über Methodenaufrufe. Die Verwendung von () in Methodenaufrufen ist eine optionale Strategie. Hier werden Schlüsselwörter wie privater und anderer eingeschränkter Zugriff verwendet, um den in Python versteckten Namen zu ersetzen. „Mixins“ werden als Alternativen zur Mehrfachvererbung verwendet. Sie können eine bestehende Klasse jederzeit ändern und neue Methoden hinzufügen. Verwenden Sie true und false anstelle von True und False (verwenden Sie nil anstelle von None). 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 []). Verwenden Sie „elsif“ anstelle von „elif“. Die Verwendung ist jedoch dieselbe. Verwenden Sie den üblichen Stil, um Dokumentation mit Anmerkungen zu versehen (Dokumentzeichenfolgen zu ersetzen) und Dokumentation zu generieren.

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:

Auszüge einiger Anwendungsbeschreibungen im Zusammenhang mit dem Projekt

Plattformübergreifende Entwicklung:

Python unterstützt verschiedene Plattformen auf neutrale Weise Für eine Serie Wenn das vom Benutzer verwendete System verschiedene Plattformen umfasst, ist es am besten, Python zum Entwickeln von Anwendungen zu verwenden. Aufgrund seiner Anpassungsfähigkeit kann es auch möglich sein, 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: nicht der beste unter den Python-IDEs...

PythonWin: sehr einfach zu verwenden (genauso komfortabel wie die Verwendung). 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 Verwendung auf Win95r2-Systemen manchmal seltsamerweise nicht mehr reagiert. 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. Extrahieren Sie den Inhalt des komprimierten Ruby Development 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). 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 einer höheren Abstraktionsebene 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 mobile Entwicklung. Es gibt eine Version, die unter Windows CE läuft, aber es scheint, dass es immer noch sehr wenige relevante Informationen gibt, und es gibt viele Beispiele für Installationsfehler und Kompilierung Misserfolge. 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 . Python wird auch als klare Sprache bezeichnet. 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 einheitlichen Stil, was Python zu einer Sprache macht, die leicht zu lesen, zu warten und bei einer großen Anzahl von Benutzern beliebt ist.

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 sich stark unterscheiden.

2. Rubys englische Dokumentation ist äußerst mangelhaft, ganz zu schweigen von der chinesischen Dokumentation. Die Python-Community ist relativ ausgereift und verfügt über viele Informationen.

Schließlich werden mehrere Python-Websites aufgeführt
•http://www.python.org/– Pythons offizielle Website
•http://python.cn/– Python-Chinese-Community
•http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPythonPython Für die Website von Dot Net

Mehrere Ruby-Websites
•www.ruby-lang.org/ zh_CNRuby Chinesische offizielle Website
•http://www.rubystudy.com/bbs/tag.php?name=RubyRuby-Chinesisch-Lernaustausch-Community
•http://ruby-lang.guo.cc/Ruby Online-Referenzhandbuch

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage