Was sind einige beliebte Memes in Python?


Beste Antwort

Schauen Sie sich dieses Python-Mem an

Antwort

Einige Gründe:

  1. Ab einem bestimmten Punkt kann das menschliche Gehirn keine Geschwindigkeitsverbesserungen mehr feststellen. Wenn ich meinen Python-Code in C erneut implementiere und er 200-mal schneller ausgeführt wird, merkt der Benutzer nicht einmal, ob der ursprüngliche Code bereits in 0,01 Sekunden ausgeführt wurde. Heck, er bemerkt wahrscheinlich nicht einmal, wenn der ursprüngliche Code nur in 0.1 ausgeführt wurde Sekunden. Der Unterschied zwischen 0,1 Sekunden und 0,0005 Sekunden ist für die meisten Menschen praktisch nicht wahrnehmbar. Selbst für die Leute, die es tatsächlich erkennen können, fühlt es sich völlig unauffällig an.
  2. Seine Langsamkeit hängt stark davon ab, wie Sie es verwenden. Das eigentliche Problem ist, dass viele Menschen unter dem Problem der vorzeitigen Optimierung leiden. Ja, Python ist langsam, aber wahrscheinlich ist Ihr Code aufgrund von Python nicht wirklich langsam. Es ist langsam, weil Ihr Code die falschen Datenstrukturen und Algorithmen verwendet, um ein bestimmtes Problem zu beheben. Die Verwendung einer kompilierten Sprache wie C verbirgt nur das Problem. Ja, es ist schneller, aber es ist nur bei einem ineffizienten Algorithmus schneller. Die Verwendung der richtigen Datenstrukturen und Algorithmen wird skaliert, unabhängig davon, in welcher Sprache Sie sie implementieren und wie viele Daten Sie am Ende verarbeiten. Wechseln zu a Eine schnellere Sprache führt nur zu kurzfristigen Gewinnen. Ein O (n!) – Algorithmus ist immer noch ein O (n!) – Algorithmus, auch wenn Sie ihn in C! implementieren. Wirklich sachkundige Ingenieure wissen dies und können Anwendungen erstellen, die mehr als schnell genug sind und Diese Skalierung ist unabhängig von der Implementierungssprache gut, da sie die richtigen Strukturen und Algorithmen verwendet.
  3. Python war (und wird wahrscheinlich auch weiterhin sein) in erster Linie eine „Klebesprache“, die sich sehr gut verbinden lässt Software, die nicht ursprünglich war Ich wollte direkt miteinander arbeiten. Es ist auch gut darin, Aufgaben zu automatisieren, die normalerweise von Hand erledigt werden. Für diese Zwecke ist es mehr als schnell genug, da die Hauptarbeit sowieso woanders stattfindet. Für „schnellere“ Sprachen wie C ist diese Art der Kleberarbeit so schmerzhaft langsam und fehleranfällig für Code, dass sich die Mühe kaum lohnt. Alle Gewinne bei der Ausführungsgeschwindigkeit werden durch die verschwendete Entwicklerzeit mehr als ausgeglichen, die aufgewendet wird, um sie zum Laufen zu bringen. Dies ist ein großer Grund, warum es weiterhin so beliebt ist.
  4. Einige Engpässe liegen einfach außerhalb der direkten Kontrolle der Implementierungssprache. IO ist weit verbreitet. Ich habe es gerade mit einer Anwendung zu tun, bei der alles in Python mehr als schnell genug ist. Erst wenn wir das Netzwerk erreichen, um die Datenbank abzufragen, wird es langsam. Meine Profilerstellung zeigt, dass selbst die langsamsten Teile des Python-Codes im Vergleich zu der Wartezeit auf die Netzwerk-E / A völlig unbedeutend sind. Ich versuche jetzt, Wege zu finden, um die Datenbank weniger zu erreichen (clientseitiges Caching, Vermeidung redundanter Überprüfungen der Daten) usw.). Selbst wenn ich die Anwendung in Assembler schreiben würde, wäre dies immer noch ein Problem. Das Beheben dieses Problems mit Python ist tatsächlich schneller und einfacher, da es (sehr robuste) Profilbibliotheken in der Standardbibliothek enthält. Viele „schnell“ kompilierte Sprachen werden traditionell nicht sofort mitgeliefert.

Die Moral der Geschichte lautet: Entwicklerzeit übertrumpft die Maschinenzeit fast immer. Wenn dies nicht der Fall ist Halten Sie, Langsamkeit ist normalerweise auf bestimmte Engpässe zurückzuführen, die leicht genug in eine externe Bibliothek oder einen externen Dienst optimiert werden können. Die Zeiten, in denen etwas wirklich wirklich nicht in eine externe Bibliothek oder einen externen Dienst optimiert werden kann, sind erstaunlich selten. Wie in fast nicht vorhanden.

Eine Ausnahme ist, wenn Sie von Anfang an wissen, dass Ihre Anwendung dies erfordert Ein gutes Beispiel sind Videospiele oder DCC-Anwendungen. Diese sind besser so nah wie möglich an der Echtzeit, oder Sie haben keinen Benutzer Basis, von der zu sprechen ist.

Sofern dies nicht der Fall ist, bevorzugen viele Entwickler die Produktivitätssteigerungen von Python, auch wenn dies nur für das Prototyping gilt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.