Ich habe gerade angefangen, Python zu lernen und möchte mehr über die Sprache erfahren.
Mir ist klar, dass Python in vielen Fällen eine langsame Sprache im Vergleich zu C oder C ++ ist. Daher ist Python wahrscheinlich nicht die beste Wahl für Anwendungen, die so schnell wie möglich ausgeführt werden müssen.
Abgesehen davon scheint Python eine großartige Allzwecksprache zu sein, die leicht zu lesen und zu schreiben ist. Die verfügbaren Bibliotheken bieten eine enorme Menge an Funktionen. Wo ist es eine schlechte Wahl, Python zu verwenden (und warum), abgesehen von leistungskritischen Anwendungen?
Antworten:
Software für eingebettete Ziele mit begrenzten Ressourcen. Die meisten Prozessoren auf diesem Planeten können Python entweder aufgrund unzureichender Ressourcen nicht ausführen, oder niemand hat eine Version auf diese Architektur portiert. Die meisten Prozessoren sind bereits mit weniger als einem Megabyte Arbeitsspeicher ausgestattet.
quelle
Die zwei Orte, die mir in den Sinn kommen, sind Dinge, die viel Parallelität erfordern, für die ich Erlang verwenden würde. Oder schwere numerische Berechnung, die ich wahrscheinlich versuchen würde, Fortran zu verwenden.
quelle
Da es sich bei Python um eine dynamisch typisierte Sprache handelt, ohne dass die Kompilierungszeit überprüft werden muss, ist es schwierig, ein großes Python-Projekt ohne umfangreiche Komponententests umzugestalten.
Wenn Sie also ein großes Projekt haben, das über einen längeren Zeitraum gewartet und geändert werden muss, und Ihr Team nicht die Absicht hat, automatisierte Tests für alles zu erstellen, empfiehlt es sich möglicherweise, Java oder C # zu verwenden.
quelle
Wenn das Hauptaugenmerk auf der Entwicklung von Windows-GUIs liegt, würde ich CPython empfehlen, da es an guten Formulardesignern mangelt (im Vergleich zur Verwendung von .Net).
IronPython wird jedoch unter .NET ausgeführt, und Sie haben zwei IDEs mit Formulardesignern zur Auswahl: Visual Studio und SharpDevelop. Tatsächlich können die Python-Tools für Visual Studio sowohl für CPython als auch für IronPython verwendet werden, was ziemlich ordentlich ist, obwohl ich es noch nicht ausprobiert habe ...
quelle
Das hängt wirklich davon ab, was Sie mit "schlechte Wahl" meinen.
Wenn Sie Anwendungen meinen, bei denen die Verwendung von Python sehr schwierig ist, dann gibt es relativ wenige: Die wichtigste, die in den Sinn kommt und noch nicht erwähnt wurde, ist Code, der ein hohes Maß an Korrektheit erfordert, wenn Sprachen mit ausgeklügelten Schriftsystemen (Haskell, abhängig von der Typisierung der Sprachen) verwendet werden ) sind bessere Möglichkeiten.
Wenn Sie Anwendungen meinen, bei denen Python nicht optimal ist (das heißt, es gibt bessere Auswahlmöglichkeiten), dann gibt es mehr, aber sie sind auch subjektiver. Zum Beispiel ist die Arbeit an Compilern und Interpreten nach meiner zugegebenermaßen begrenzten Erfahrung mit algebraischen Datentypen, Pattern-Matching und funktionaleren Funktionen viel einfacher als in Python. Eine vollständige Auflistung derartiger Anträge ist jedoch nicht möglich, da sie pro Person variieren.
quelle
Es ist aufgrund seiner Ausdrucksfähigkeit und der Vielzahl von Unterstützungsbibliotheken ideal für die schnelle Skripterstellung.
Die dynamische Typprüfung und das Fehlen einer expliziten Variablendeklaration machen es zu einer schlechten Wahl für große Projekte, an denen Hunderttausende oder sogar Millionen von Codezeilen beteiligt sind. Das Gleiche gilt für unternehmenskritische oder sicherheitskritische Systeme. In einem Avioniksystem wäre es zum Beispiel völlig inakzeptabel, wenn ein System aufgrund eines Fehlers ausfallen würde, der zur Kompilierungszeit abgefangen werden könnte.
quelle
Genau wie du fange ich auch gerade mit Python an. Aber für mich im Kontext von maschinellem Lernen und Data Science.
Ich habe mir auch gerade alle neuen Kenntnisse in Java 8 und seinen neuen streamorientierten Bibliotheken angeeignet.
Ich habe das flüssige Gefühl der neuen Java 8-Stream-Bibliotheken wirklich geliebt und wie nah es sich anfühlte, wenn ich Apache-Spark-Bibliotheken verdanke. Als ich zu Python kam, erwartete ich das Gleiche und noch mehr.
Ich habe mehr gesehen. Aber viel weniger. Schlechte Dokumentation, obwohl reichlich vorhanden; keine Fließfähigkeit, und tatsächlich ließ ich die Vermutung, ob eine Methode ein neues Objekt regiert oder auf dieses einwirkt; Nichts in der Nähe einer Karte / Verkleinerung usw. Ich war überrascht, enttäuscht zu sein.
Von Anfang an hatte ich jedoch keine großen Erwartungen, wie einfach es sein würde, Sprache zu lernen. Ich hatte recht: inkonsistent, nicht intuitiv, schwer zu lernen. Aber das war nur meine Erfahrung, in allem, was Java mag, ziemlich gut zu sein.
quelle