Instagram vierde onlangs hun overstap van Python 2 naar Python 3. Toch gebruiken veel bekende bedrijven nog steeds Python 2.
Waarom? Eén woord: compatibiliteit.
Python 3 is niet “backwards-compatible”, wat betekent dat als je bedrijf verschillende Python 2-bibliotheken gebruikt, ze mogelijk niet meer werken nadat je hebt geüpgraded.
Bedrijven die code op Python 2 draaien, moeten een moeilijke keuze maken: ze moeten ofwel een vervangende bibliotheek vinden die werkt met Python 3, of ze zitten vast aan Python 2. Dropbox schreef een gedetailleerd verslag van het proces dat hen DRIE JAAR kostte om te upgraden.
Python 3 adoptie is lang een onderwerp van discussie geweest in de Python gemeenschap. Dit is nog steeds enigszins het geval, hoewel het nu wijdverbreide ondersteuning heeft bereikt, waarbij enkele zeer populaire projecten zoals Django de ondersteuning van Python 2 volledig hebben laten vallen.
Je leest het goed, Dropbox heeft er drie jaar over gedaan om de upgrade van Python 2 naar Python 3 te voltooien – en in hemelsnaam, Guido Van Rossum (de uitvinder van Python) werkt bij Dropbox!
Python 3 is meer dan 10 jaar oud! Toch gebruiken veel bedrijven nog Python 2. Dus welke versie van de taal moet je leren? In deze post zal ik de verschillen tussen Python 2 en Python 3 op een rijtje zetten. Als je de post niet wilt lezen is mijn advies:
Waarom is Python zo populair?
- Intuïtiviteit. De syntaxis (of “grammatica” van Python, om het zo maar te zeggen) is gemakkelijk te begrijpen.
- Volwassenheid. Python is een bewezen taal met krachtige mogelijkheden waarmee je zo’n beetje alles kunt coderen wat je maar kunt bedenken.
- Veelgevraagd. Python ontwikkelaars worden regelmatig ingehuurd door een groot aantal bedrijven over de hele wereld.
- Afstandsvriendelijk. Zowel coderende ninja’s als coderende studenten hebben alleen een internetverbinding nodig om hun doelen te bereiken.
- Python is het nieuwe Excel. De reden waarom Python wordt onderwezen op de business school is omdat Python is als Excel op steroïden. Met Python kunnen financiële analisten, CEO’s en datagedreven marketeers de kracht van Python benutten om big data te kraken.
Waarom zijn er twee versies van Python?
Er is echter al enige tijd verandering op komst in het land van Python. De Python Software Foundation, een onafhankelijke non-profitorganisatie die het auteursrecht op de software heeft, bracht in 2010 versie 2.7 uit, terwijl tegelijkertijd de codebase werd geüpgraded naar verschillende iteraties van 3.x. Gedurende een aantal jaren begonnen bedrijven en projecten te migreren naar Python 3 vanwege de verschillende voordelen.
Waarom Python 2 kiezen?
Een van de belangrijkste redenen om bij Python 2 te blijven, is als u wilt werken met een grote codebase die in Python 2 is geschreven. Het verplaatsen van een grote applicatie die in een oudere versie van een taal is geschreven, of het helemaal herschrijven in een andere taal, kan een enorme onderneming zijn.
Een andere reden om in het land van Python 2 te blijven, is als uw code afhankelijk is van een specifieke extensie die oorspronkelijk voor Python 2 is geschreven en die niet is bijgewerkt. De meeste zijn dat wel, maar niet allemaal. Het is aan u om te beslissen of het de moeite waard is om te blijven werken met oudere extensies (ook wel “packages” genoemd).
Waarom Python 3 kiezen?
Om het botweg te zeggen, Python 2 is legacy, Python 3 is de toekomst. Als je begint met leren coderen – leer Python 3. Hier zijn nog enkele redenen waarom je Python 3 zou moeten leren:
- Legacy code. Na 2020 wordt Python 2 niet meer onderhouden.
- Leer best-practices. Python 3 bevat upgrades die niet beschikbaar zijn in Python 2.
- Schonere code schrijven. Python 3 heeft zijn structuur elegant aangepast, zodat er minder regels code nodig zijn om een actie uit te voeren.
- Vermijd syntaxisverwarring. Er zijn enkele kleine grammaticale verschillen tussen de twee versies, wat beginners kan frustreren.
Wat zijn de verschillen tussen Python 2 en Python 3?
Een van de eerste regels Python-code die je als beginner zult schrijven, zal zijn om de computer te vertellen de printfunctie te gebruiken om de zin “Hallo wereld!”
Python 2:
Print "Hello world!”
Python 3:
print("Hello world!”)
Resultaat: De computer geeft hetzelfde terug, maar u zult merken dat code genest tussen haakjes veel vaker wordt gebruikt in Python 3. Daar zijn ook programmatische redenen voor: Python 3 is veel gemakkelijker te lezen.
Hello world!
Als dat klinkt als een hoop haakjes om bij te houden, vrees dan niet! Aan het begin van je leerproces installeer je een teksteditor die speciaal is ontworpen om ontbrekende haakjes en andere syntaxisfouten te markeren – en zelfs veel voorkomende dingen automatisch voor je in te vullen.
Python Variabelen
Een tweede voorbeeld waarbij uitgebreid gebruik wordt gemaakt van haakjes is het vervangen van een geretourneerde regel voorbereide tekst door verschillende variabelen. Dit is een deel van de bewerking die plaatsvindt wanneer je je aanmeldt voor een e-mailnieuwsbrief, en ze die op magische wijze aan je richten met je werkelijke naam.
Python 2:
User20987 = "Chris Castiglione”print "Hi, %, hope you’re having a great day today!” % (User20987)
Python 3:
User20987 = "Chris Castiglione”print("Hi {0}, hope you’re having a great day today!”).format(User20987))
Python Functies
Een ander groot verschil in syntaxis is hoe de raw_input() functie is veranderd. Dit is een veelgebruikte functie die informatie uit verschillende velden op een website haalt (bijvoorbeeld wanneer je je aanmeldt voor een nieuw account en je e-mailadres intypt).
Python 2:
Field_1 = raw_input("entered_value”)
Python 3:
Field_1 = input("entered_value”)
Dit maakt meer uit dan het lijkt, omdat het ook effect heeft op hoe de computer de code interpreteert. Python 2 zal de invoer automatisch “evalueren”, wat onbedoelde gevolgen kan hebben als de gebruiker niet het soort gegevens invoert dat de programmeur verwacht.
Laten we eens aannemen dat in het bovenstaande voorbeeld de Python 2 programmeur verwachtte dat de gebruiker een geheel getal zou invoeren, maar in plaats daarvan maakte de gebruiker een typefout en voerde hij de wiskundige bewerking “7-2” in. Die regel code zou het getal 5 opleveren, wat niet het gewenste resultaat zou zijn.
De Python 3 versie zal de invoer standaard niet evalueren. In plaats van wiskunde te doen, zal het een vorm van gegevens teruggeven die een “string” wordt genoemd, die in dit geval een kopie zou zijn van wat de gebruiker heeft ingevoerd: “7-2”. Met deze aanpak kun je nauwkeuriger bepalen welke gegevens je van de gebruiker ontvangt.
Waarom ik Python 3 aanraad:
Python 2 vs 3 prestaties in termen van reken snelheid zijn drastisch verbeterd, maar Python 3 verbetert ook de al uitgebreide mogelijkheden van Python 2.
Hier zijn enkele coole nieuwe dingen die je zult leren als je begint:
- Makkelijker gebruikersinvoer. Een veel voorkomende eerste les is het nemen van de ingetypte gegevens van een gebruiker (bijvoorbeeld het hierboven gebruikte voorbeeld van de invoersyntaxis) en deze door te geven aan een eenvoudig script om een lijst met informatie te maken. Python 3 verbetert dit proces.
- Verbeterd getalbeheer. Python 3 bevat enkele rekenkundige verbeteringen die voor veel toepassingen van cruciaal belang zijn.
- Populaire add-ons worden ondersteund. U leert ook het concept van uitbreidingen genaamd “modules” en “pakketten” die niet zijn opgenomen in de standaard Python 3 installatie. Naarmate je groeit, zal het installeren en gebruiken hiervan onderdeel worden van je dagelijkse repertoire. Bijna alle van de meest populaire pakketten zijn al jaren Python 3-ready.
- Unicode ondersteuning. Wist u dat emoji’s Unicode-tekens zijn? Geen emoji’s in Python 2! 😉 😎 😃
- En er is nog meer! Hier zijn zes dingen die je moet weten voordat je Python leert.
Hoe krijg ik Python 3 op mijn computer?
Veel gloednieuwe computers worden nog steeds standaard geleverd met Python 2.7 voorgeïnstalleerd, maar het is de moeite waard om te leren hoe je Python 3 installeert en gebruikt op je eigen persoonlijke machine.
De Intro to Python-les van één maand leidt u door de installatie van Python 3 op uw eigen machine, aangezien het proces om dit te doen per besturingssysteem verschilt.