Software-update: Python 3.13

Python logo (75 pix) Python is een objectgeoriënteerde programmeertaal die kan worden gebruikt om eenvoudige tot complexe, platformonafhankelijke applicaties te ontwikkelen. Het is in de jaren negentig ontworpen door Guido van Rossum, die destijds in Amsterdam voor het CWI werkte. Guido was als BDFL betrokken bij de ontwikkeling van Python. Hij heeft daarnaast voor Dropbox gewerkt, ging daarna met pensioen en toen dat niet echt beviel, ging hij aan de slag bij Microsoft. Versie 3.13 is uitgekomen en de belangrijkste veranderingen die daarin zijn aangebracht zijn hieronder voor je samengevat:

Python 3.13.0

Python 3.13.0 is the newest major release of the Python programming language, and it contains many new features and optimizations compared to Python 3.12. Some of the new major new features and changes in Python 3.13 are:

New features Typing Removals and new deprecations
  • PEP 594 (Removing dead batteries from the standard library) scheduled removals of many deprecated modules: aifc, audioop, chunk, cgi, cgitb, crypt, imghdr, mailcap, msilib, nis, nntplib, ossaudiodev, pipes, sndhdr, spwd, sunau, telnetlib, uu, xdrlib, lib2to3.
  • Many other removals of deprecated classes, functions and methods in various standard library modules.
  • C API removals and deprecations. (Some removals present in alpha 1 were reverted in alpha 2, as the removals were deemed too disruptive at this time.)
  • New deprecations, most of which are scheduled for removal from Python 3.15 or 3.16.

For more details on the changes to Python 3.13, see What's new in Python 3.13.

Python

Versienummer 3.13
Releasestatus Final
Besturingssystemen Android, Linux, BSD, macOS, Solaris, Windows 10, Windows Server 2016, Windows Server 2019, Windows 11, Windows Server 2022
Website Python insider
Download https://www.python.org/downloads/
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

08-10-2024 • 09:00

20

Submitter: XtremeFast93

Bron: Python insider

Reacties (20)

20
20
17
0
0
1
Wijzig sortering
Tier 3 support voor mobile is zeer interssant! Ben benieuwd of dit voor meer Python development op mobile gaat zorgen
Ik hoop het niet. Imo is elk Python programma dat tot product geraakt er een teveel. Python is daarvoor helemaal niet bedoelt, het is meer voor prototyping of ondersteuning in bouw processen en data analyse. En in die laatste twee is vaak Go alsnog de betere keuze omdat het veel sneller is.

Ik zie het op mijn werk ook dagelijks, allerhande tools gemaakt in Python om het bouw proces te ondersteunen. In het begin was het allemaal nog prima, een scriptje dat wat kleine dingen automatiseerde. Nu zijn het er 20+ en kost het draaien van de Python programmas soms net zoveel tijd als het compileren van het programma zelf (150k+ regels code). Wat mij betreft mag Python het podium verlaten, het heeft al teveel glorie ontvangen voor wat het is, en laten we stoppen met het te gebruiken waarvoor het niet bedoelt is.
Oh kom op. Hoeveel code is er wel niet nodig om user-interactie te doen. Hoeveel code doet nu *echt* iets performance-specifieks? Al die delen van een programma kunnen prima in Python, Heck, het hele internet (frontend) hangt van een soortgelijke non-compiled oplossing aan elkaar en werkt voor het gros van de mensen prima.
Python kent genoeg gecompileerde libs die (indien correct gebruikt) al het zware werk kunnen afhandelen, zonder dat we alle programmeer-teams moeten verdubbelen omdat in gecompileerde talen werken vaak gewoon lastiger en complexer is. Nog los van de beveiligingsrisico's die veel van deze talen met zich mee brengen, als men eventjes niet netjes oplet, die je helemaal zou moeten willen toestaan in zaken niet die performant hoeven te zijn.

Je hele rant klinkt als een zure mening dat alleen werken met gecompileerde talen 'echt' programmeren is. Ik hoop dat we daar ondertussen eens voorbij zijn?
Scripters menen vaak dat zij programmeurs zijn. Programmeurs weten beter.

Nu kan een goede scripter zijn/haar gewicht in goud waar zijn, daar niet van. Er is echter een significant verschil tussen de twee beroepsgroepen. Zoals hier heeft men zo'n 8 jaar geleden de beslissing genomen om de suite aan applicaties om te zetten naar een web versie.

De web-versie is niet echt beter gedocumenteerd dan de gecompileerde software. Ook zijn er vele klanten die de gecompileerde software prefereert, want performance ligt simpelweg hoger. De web-versie zit verpakt in CI/CD, Agile en "leesbare code"-principes. De compile codebase zag het licht ruim 20 jaar geleden. En is nog altijd een stuk sneller dan de 8 jaar oude code meuk die de web-versie is. Ook wat het heel wat minder werk in de codebase om Microsoft database support in te bouwen (naast Oracle en Apache Cassandra) dan de web versie.

En als klap op de vuurpijl, de web-versie heeft nog altijd niet alle functionaliteit die in de codebase zit.

Mag jij raden welke divisie is gevuld met ("echte") programmeurs en welke met mensen die menen dat python en andere script-talen gelijk staan aan gecompileerde code en programmeren.

Dit ga je ook vast als "zure mening" classificeren, maar je merkt het verschil wanneer je beide beroepsgroepen daadwerkelijk aan de slag ziet gaan.

Python krijgt de laatste jaren echt veel te veel "liefde" voor wat het is.
Je geeft letterlijk geen enkele reden waarom de ene groep 'programmeurs' zou zijn, en de andere niet, behalve dat je het product makkelijker uitbreidbaar vindt. (wellicht omdat je je daarin thuis voelt?)

Anyway, veel plezier met je carrière als 'echte' programmeur. als je hele stukken van ons werk en de mensen die er aan werken zo makkelijk weg kan zetten als ondergeschikt ga je het vast wel halen tot je pensioen.
Iemand voelt zich op zijn teentjes getrapt! :o
je hebt duidelijk alleen de eerste en laatste zin gelezen van mijn bericht. Voor de taken die het bij ons uitvoert is geen enkele library geschikt, alles is dus custom, en om alles wat custom gemaakt is performant te maken kost ongeveer net zoveel tijd als dat het kost om het in een alternatieve taal te schrijven waarmee je die problemen compleet mee omzijlt.

Ik gaf ook direct als voorbeeld 'Go', en blijkbaar heb je daar nog nooit mee gewerkt. De Go standaard libraries zijn erg compleet en je bent een stuk minder afhankelijk van externe packages, als je dan toch beveiligingsrisico's wilt benadrukken. Daar komt nog bovenop dat met Python je pas risico's ontdekt als de code daadwerkelijk wordt uitgevoerd. Daarnaast heb je om Python script uit te kunnen voeren, een installatie van Python en alle gebruikte packages nodig. Go kan je net als Python als '.go' script distribueeren, en dan simpelweg 'go run script.go' uitvoeren, en die compileert het dan direct voor het native platform en runt de executable. En het enige dat je daarvoor nodig hebt is de go installatie, packages zitten al bij de distributie. Daar bovenop, is de syntax van Go relatief vergelijkbaar met Python, maar dan veel robuuster. En in mijn ogen ook voor een beginner makkelijker, wel eens tabje/spatie gemist?

Daarnaast om Python in dezelfde boot te plaatsen als javascript en PHP omdat het een geinterpreteerde taal is? Dat lijkt mij niet helemaal juist, alsof je een mes, vork en lepel voor hetzelfde gebruikt omdat het servies is.

[Reactie gewijzigd door un1ty op 8 oktober 2024 13:39]

Dat is wel een heel grappige opvatting. Check even wikipedia:

Wikipedia: List of Python software

Allemaal software gemaakt met python. Inclusief grote commerciële platformen bij Instagram, Dropbox, Youtube/Google, Reddit...
Ik heb daar geen enkel 'python' product gezien, alleen een 'met python' gemaakt producten. Daar zit toch wel een gigantisch verschil in, gezien dat dus betekend dat grotendeels alles al naar bytecode is omgezet (gecompileerd dus). Iets wat bij de meeste in Python geschreven programmas/tools niet direct mogelijk is.

Toevoeging:
Zie ook bijvoorbeeld dit bericht van dropbox:
How we rolled out one of the largest Python 3 migrations ever

[Reactie gewijzigd door un1ty op 8 oktober 2024 13:43]

Ik weet niet wat je van python kent, maar wat je zegt slaat helemaal nergens op.
De softwares in kwestie zijn wel degelijk "in python geschreven".
Niet om het een of het ander, maar "slaat nergens op"?

Ik ben het eens dat de software oorspronkelijk in Python is geschreven. Echter, door tools zoals py2exe te gebruiken, verandert het eindproduct in een zelfstandige applicatie die zonder Python-runtime werkt. Hierdoor is het eindresultaat geen puur Python-product meer, maar een applicatie die met Python is gemaakt. Het eindproduct functioneert volledig onafhankelijk van de Python-omgeving, wat betekent dat de programmeertaal voor de gebruiker niet zichtbaar of relevant is.

En daarmee kom ik terug op mijn oorspronkelijke statement:
Imo is elk Python programma dat tot product geraakt er een teveel
Het product is wat je aflevert, niet waarmee je het maakt.
Dus als je software schrijft in c++, en je compileert je code met gcc of een andere compiler, dan heb je een uitvoerbaar bestand dat je kan draaien zonder dat je een c++ ontwikkel omgeving nodig hebt. Volgens jou is die software dan plots niet meer in c++ geschreven?
Wat een onzin!
Ik wil eerst aangeven dat termen zoals "slaat nergens op" en "wat een onzin" niet bevorderlijk zijn voor een constructieve discussie. Daardoor heb ik eigenlijk geen zin meer om dit gesprek voort te zetten.
Ik ben het eens dat de software oorspronkelijk in Python is geschreven
Daarnaast heb ik al aangegeven dat de software oorspronkelijk in Python is geschreven, en dit nergens ontkracht. Wat ik bedoel, is dat wanneer Python-code wordt omgezet naar bytecode en verpakt als een executable, het product niet meer exclusief afhankelijk is van de Python-runtime.

Een belangrijk verschil is dat talen zoals C, Go, en Rust gecompileerd worden en altijd een compiler nodig hebben om een uitvoerbaar bestand te maken. Python is een geïnterpreteerde taal en kan direct als script draaien. Zodra het echter naar bytecode wordt omgezet, hangt het af van runtime libraries zoals MSVC. Bovendien bevat Python vaak C-extensies, zoals NumPy, wat betekent dat er ook C-code gebruikt wordt met Python, dus werk je al met gemengde code.

Stel je hebt een programma in Rust, maar het gros van de functionaliteit die gebruikt wordt komt uit blobs die in C geschreven zijn. Je compileert dit eind resultaat met de Rust-compiler. Noem je dit dan nog een puur Rust-programma? In zo’n geval is er ook sprake van een grijs gebied, en dan is mijn standpunt niet zomaar "onzin."
Voor professionele software is het inderdaad niet heel handig nee, tenzij je het zware werk via externe libraries doet (pytorch etc.)
Voor simpele mobile applications kan het eigenlijk geen kwaad
Wat mij betreft is de term 'professioneel' behoorlijk aan inflatie onderhevig. Hoe vaak zie je niet gedrochten van Java applicaties die trager zijn dan stront door een trechter, of nog erger, onleesbare code in <vul je favo taal in>.

Professioneel betekent voor mij: vlotte software die exact doet wat het moet doen, gedocumenteerd, onderhoudbaar en begrijpbaar is door elke redelijk geoefende programmeur. Daarnaast, indien mogelijk, multiplatform en zonder vendor lock in van diverse libraries, maar juist met open libraries die goed onderhouden worden door een achterliggende community.
Een taal is ook maar een taal... In alle talen kan je goede en slechte dingen maken, toch?

Ik zie juist professioneel (met name voor data-analyse) heel erg goede libraries in Python. Wordt in de wetenschap en medisch veel gebruikt bijvoorbeeld.

Dat Python "ooit" misschien niet bedoeld is voor mobiele zaken betekent niet dat het nu (met nieuwe toevoegingen) een slecht idee is.
Ik zie juist professioneel (met name voor data-analyse)
Dat is toch ook precies wat ik zei? Python is verder prima inzetbaar voor andere taken als het een 'one and done' process is, dus alleen initieel om de boel op te zetten en daarna niet meer uitgevoerd hoeft te worden. Wat mij tegenstaat is dat mensen Python als generiek middel voor alles gebruiken.

Ik reageerde op het comment "Python development op mobile", en het is niet alleen de performance die minder is, als je het voor mobiele applicaties gaat gebruiken gaat dat ook ten koste van de batterij. Daarnaast zal python de user experience minder maken omdat het relatief minder reactief is en langzamer opstart.

Dat je in alle talen goede en slechte dingen kan maken is weer iets anders, een taal is net als het programma zelf maar een middel. Zoals ik al aangaf was Python initieel prima, maar naarmate de hoeveelheid taken die het moest uitvoeren groeide, ontgroeide het het middel. In mijn ogen is het dus net zo belangrijk de juiste taal te kiezen als dat het is om de code te schrijven.
Ja het is niet de meest snelle taal, maar je kan er prima stabiele applicaties in bouwen. Het probleem is meer dat het gros van de mensen het vooral gebruikt als eerste stap in het programmeren en daardoor inefficiënte en slecht onderhoudbare code schrijft.
Ik denk dat python eerder nog populairder gaat worden als het straks, bijvoorbeeld ook, als scripttaal in Excel gebruikt gaat worden.
serieus, als je build process 20+ python scripts nodig heeft om te werken, dan gaat er ergens upstream in het project al iets behoorlijk mis.

Python is ook nooit bedoeld als performante taal, maar heel goed voor prototyping.
Het begon ooit als 1 simpel programma voor een product categorie om versie informatie automatisch te genereren. Toen wilden ze hetzelfde script voor alle product categorieen, die allemaal weer net anders van opzet waren Git/SVN, andere omgeving embedded/embedded linux/x86. En zo is het lijstje van conditionele taken die het programma moest uitvoeren bij en aanroepen van het bouw process gestaag gegroeit.

En wat ik zelf al zei, maar wat jij nu ook aangeeft, als prototyping is het goed. En dat was het initieel ook, echter naarmate het meer en meer gebruikt werd, werd het uiteindelijk tot product bestempeld. En is het omzetten naar een andere taal een puist van werk.

Op dit item kan niet meer gereageerd worden.