Noch bis vor einiger Zeit gab es in der Entwickler-Community einige Debatten welche Version von Python man als Einsteiger lernen sollte: Python 2 oder Python 3.
In 2019 ist diese Frage im Grunde eindeutig beantwortet: Wer jetzt mit Python anfängt oder seine Fähigkeiten auffrischen will, sollte Python 3 nutzen. In diesem Artikel wollen wir besprechen, was Python 3 besser macht, und warum viele Firmen en masse zu Python 3 wechseln.
Dennoch gibt es immer noch einige Szenarien, in denen der Einsatz von Python 2 vorteilhaft sein kann. Es lohnt sich auf jeden Fall, die Geschichte der Entwicklung und die Unterschiede von Python 2 und Python 3 zu kennen.
Schauen wir uns also an, was Python 2 von Python 3 unterscheidet, und wo du als Anfänger einen guten Einstieg in die Programmierung mit Python 3 bekommen kannst.
Die Geschichte von Python 2 und Python 3
Hier wollen wir kurz einige zeitliche Meilensteine in der Entwicklung von Python beschreiben:
- Python 2.0 wurde zum ersten Mal im Jahr 2000 veröffentlicht. Die neueste Version, 2.7, wurde im Jahr 2010 veröffentlicht.
- Python 3.0 wurde im Jahr 2008 veröffentlicht. Die neueste Version, 3.7, wurde 2018 veröffentlicht. Version 3.8 ist aktuell in Entwicklung.
- Obwohl Python 2.7 immer noch stark genutzt wird, geht der Trend eindeutig zum Python 3. Im Jahr 2016 nutzten 71.9% aller Projekte Python 2.7, aber diese Zahl ging 2017 bereits auf 63.7% zurück. Dies zeigt, dass die Programmiergemeinde für produktionsreife Projekte mittlerweile vermehrt Python 3 einsetzt.
- Die offizielle Unterstützung von Python 2 endet im Jahr 2020. Ab da wird es keine neuen Releases mehr geben.
Jetzt wollen wir uns einige der aktuellen Unterschiede zwischen Python 2 und Python 3 ansehen (Stand 2018):
Was sind die Hauptunterschiede zwischen Python 2 und 3?
Es gibt einige Unterschiede zwischen den verschiedenen Python-Versionen. Hier wollen wir auf fünf der wichtigsten eingehen.
1. Python 2 ist die Vergangenheit, Python 3 ist die Zukunft.
Da Python 2 für über zehn Jahre die populärste Version von Python war, wird es immer noch von vielen Softwareschmieden eingesetzt.
Trotzdem sollte ein Einsteiger heute Python 3 lernen. Der Grund liegt auf der Hand: Wenn man sowieso von null startet, sollte man keine Zeit damit verlieren, etwas zu lernen, das in absehbarer Zeit obsolet sein wird.
2. Python 2 und Python 3 nutzen Bibliotheken, die zum Teil zueinander inkompatibel sind.
Da Python 3 die zukünftige Standardversion von Python ist, werden viele neue Bibliotheken exklusiv für Python 3 entwickelt. Manche der für Python 2 entwickelten Bibliotheken wiederum funktionieren nicht mit Python 3. Es ist natürlich möglich, diese Bibliotheken zu konvertieren, aber da dies oft schwierig ist, ist es meist außerhalb der Möglichkeiten eines Python-Einsteigers.
3. Python 3 hat bessere Unterstützung für Unicode.
Alle Strings in Python 3 sind standardmäßig unicode-codiert. Python 2 nutzte hier noch die ASCII-Codierung und Unicode musste hier explizit mit einem „u“ angegeben werden.
Dies ist wichtig, da Unicode deutlich vielfältiger ist als ASCII. Unicode unterstützt Zeichen aus nicht-arabischen Schriftarten, römische Zahlen, Symbole, Emojjis und vieles mehr.
Wie du dir vielleicht denken kannst, bringt der Einsatz von Unicode insbesondere für internationalisierte Applikationen massive Vorteile.
4. Python 3 nutzt eine verbesserte Division von Integers
Wenn man in Python 2 zwei Zahlen ohne Nachkommastellen definiert und die beiden durcheinander dividiert, wird das Ergebnis auf die nächste ganze Zahl gerundet.
Als Beispiel schauen wir uns die Division von 7 durch 2 an. Schreiben wir in Python 2:
summe = 7/2
enthält die Variable sum die Zahl 2. Möchte man das richtige Ergebnis 3.5 erhalten, müsste man den Code anders schreiben:
summe = 7.0/2.0
Dies liegt daran, dass Python 2 den korrekten Datentyp des Ergebnisses erkennt. Python 3 dagegen erkennt, dass das Ergebnis als Float zu behandeln ist. Dies ist ein Beispiel dafür, wie Python 3 die Syntax intuitiver macht, was die Programmierung insbesondere für Einsteiger erleichtert.
5. Python 2 und Python 3 haben eine unterschiedliche Syntax für die print-
Dieser Unterschied ist rein syntaktische und wird daher von vielen als trivial eingeschätzt. Dennoch ist es einer der größten und auffälligsten Unterschiede und wahrscheinlich einer, der dir am häufigsten begegnen wird.
In Python 3 wurde die print-Anweisung durch eine print-Funktion ersetzt.
Beispiel:
print "5"
ist valider Code in Python 2, führt aber zu einem Syntaxfehler in Python 3. Dort würde man folgenden Code nutzen:
print("5")
Warum Unternehmen von Python 2 auf Python 3 wechseln
Wie bereits erwähnt benutzen viele Firmen Python 2 aus historischen Gründen. Immer mehr haben aber den Wechsel von Version 2 auf Version 3 eingeleitet.
Zwei dieser Firmen sind Instagram und Facebook. Wir wollen die Gründe dafür im Folgenden erforschen.
Instagram hat bereits 2017 den Hauptteil ihres Quellcodes von Python 2.7 auf Python 3 migriert.
Gründe für den Wechsel:
- Python ist keine statisch typisierte Sprache. Python 3.5 unterstützt aber Typisierung, was zur Vermeidung von Entwicklungskonflikten beitragen kann.
- Jede neue Pythonversion hat eine performantere Laufzeitumgebung, während keiner mehr daran arbeitet, Python 2.7 zu optimieren
- Die Community ist großteils bereits auf Python 3 umgeschwenkt und somit ist es leichter, Unterstützung für etwaige Probleme zu bekommen.
Facebook arbeitet momentan daran, ihre Infrastruktur von Python 2 auf Python 3.4 zu aktualisieren.
Gründe für den Wechsel:
- Die bessere Unterstützung verschiedener Bibliotheken bedeutet, dass Softwareingenieure weniger Code schreiben oder pflegen müssen. Dies erhöht die Produktivität und Verbesserungen können schneller live geschaltet werden.
- Die Infrastruktur von Facebook skaliert effizienter.
Jetzt kostenlosen Crashkurs sichern (Online Programmieren, keine Installation nötig)
Ich bin Anfänger. Welche Python-Version soll ich lernen?
Wie für die meisten Programmiersprachen ist die Frage relative einfach zu beantworten: Lerne die neueste Version.
Einige der Änderungen von Python 3 haben den Einstieg in Python sogar vereinfacht. Das macht es zur besten Version von Python für Einsteiger.
Früher oder später wirst du den Umstieg sowieso machen müssen. Der Support für Python 2 wird in 2020 eingestellt. Daher macht ein Einstieg zu diesem Zeitpunkt für die Meisten wenig Sinn. Es gibt allerdings bestimmte Gründe, die immer noch Python 2 brauchen werden.
Welche Gründe sprechen für das Erlernen von Python 2?
Im Folgenden wollen wir Gründe aufführen, warum es Sinn machen kann, sich mit Python 2 auszukennen:
- Wenn du DevOps Engineer werden willst und Konfigurationstools wie Fabric oder Ansible verwenden willst, kann es vorkommen, dass du mit Python 2 und 3 arbeiten musst, da diese Tools Python 3 noch nicht vollständig unterstützen.
- Wenn die Firma, für die du arbeitest, eine große Menge Code auf Basis von Python 2 hat und (noch) nicht bereit ist, den Code auf Python 3 umzustellen.
- Falls du ein Projekt hast, dass externe Bibliotheken oder Software benutzt, die sich nicht auf Python 3 portieren lassen.
Glücklicherweise sind die Unterschiede zwischen den Versionen nicht so eklatant, was einen Wissenstransfer erleichtert.
Fazit
Bei der Wahl zwischen Python 2 und Python 3 ist Python 3 der klare Sieger. Python 2 wird ab 2020 nicht mehr unterstützt und über kurz oder lang werden alle auf Python 3 wechseln.
Einsteiger sollten direkt mit Python 3 und den darauf abgestimmten Tutorials dazu durchstarten.. Auch für Neulinge, die noch nie programmiert haben, ist Python eine gute Wahl, da es sehr intuitiv ist und dennoch viele Möglichkeiten bietet. Viele tolle Firmen setzen Python 3 ein – darunter Google, NASA, Facebook und Spotify.
Erfahrene Python-Entwickler verdienen sehr hohe Gehälter. Je nach Kenntnis und Erfahrung liegt dein Gehalt zwischen 50.000-100.000 €. Dies macht Python natürlich als Karrieresprungbrett attraktiv.
- Programmiere echte Apps als Anfänger
- Keine Installation, sofort loslegen
- Komplett praxisbezogen
- Zugriff auf Online-Editor