Python és un llenguatge de programació d'alt nivell i propòsit general molt utilitzat. Va ser creat per Guido van Rossum l'any 1991. La seva filosofia de disseny cerca llegibilitat en el codi i la seva sintaxi permet als programadors expressar conceptes en menys línies de codi del que seria possible en llenguatges com C. També proveeix estructures per permetre programes més entenedors tant a petita com a gran escala.
Python suporta diversos paradigmes de programació, incloent-hi programació orientada a objectes (POO), imperativa i també funcional o procedimental. Presenta un sistema dinàmic i una gestió de la memòria automàtica. Té una gran i exhaustiva biblioteca estàndard.
Com altres llenguatges de programació dinàmics, Python es fa servir sovint com un llenguatge script, però també en una àmplia gamma de contextos no-script. Amb eines desenvolupades per tercers com Py2exe, cx Freeze o Pyinstaller, el codi Python pot ser reduït a programes executables independents. Existeixen intèrprets de Python per molts sistemes operatius diferents.
CPython, la implementació de referència de Python, és programari lliure i de codi obert i té un model de desenvolupament basat en la comunitat, de la mateixa manera que la major part de les altres implementacions. És controlat per l'organització sense ànim de lucre «Python Software Foundation», creada el 6 març 2001.Python Software Foundation Launched La missió de la fundació és fomentar el desenvolupament de la comunitat Python.Mission Statement of the Python Programari Foundation És responsable de diversos processos dins de la comunitat, com el desenvolupament de Python, l'administració dels drets intel·lectuals i d'obtenir fons.
Història miniatura|Guido van Rossum, el creador de Python Python fou creat a la darreria dels anys 80 per Guido van Rossum al Centrum Wiskunde & Informatica (CWI) als Països Baixos, com a successor del llenguatge ABC (que alhora havia estat inspirat en SETL), capaç de gestionar excepcions i interconnectar amb el sistema operatiu Amoeba. La implementació va començar el desembre de l'any 1989. Van Rossum va ser el principal responsable i promotor del projecte. Aquest llenguatge va ser creat amb la intenció que fos fàcil d'utilitzar i d'aprendre sense comprometre rendiment i velocitat d'execució, però el maquinari disponible als anys 80 del en va limitar l'ús, i el projecte no va tenir l'èxit que se n'esperava.
El 1991, Van Rossum va publicar el codi de la versió 0.9.0 a alt.sources. En aquesta etapa del desenvolupament ja hi havia classes amb herència, control d'excepcions, funcions i els tipus modulars tals com str, list i dict, entre d'altres. A més a més, en aquest llançament inicial apareixia un sistema de mòduls adoptats de Modula-3. Van Rossum descriu el mòdul com «una de les unitats més grosses de la programació de Python». El model d'excepcions de Python s'assembla al de Modula-3, amb l'addició d'una clàusula else. L'any 1994 es va formar comp.lang.python, al fòrum de discussió de Python, marcant una fita en el creixement del grup d'usuaris d'aquest llenguatge.
Python va tenir la versió 1.0 l'any 1994. Una característica d'aquest llançament van ser les eines de la programació funcional: lambda, reduce, filter i map. Van Rossum va explicar que 12 anys abans Python ja havia adquirit aquestes funcions, cortesia d'un hacker informàtic, Amrit Prem, de Lisp que les trobava a faltar al llenguatge i les havia posat a disposició. No es fa cap menció específica de cap herència de Lisp a les notes del llançament.
L'última versió alliberada provinent de CWI va ser Python 1.2. L'any 1995, Van Rossum va continuar el seu treball amb Python en la Corporation for National Research Initiatives (CNRI) a Reston, a l'estat nord-americà de Virginia, on va llançar diverses versions del programari.
Durant la seva estada al Corporation for National Research Initiatives (CNRI), Van Rossum va proposar la iniciativa Computer Programming for Everybody (CP4E), per a fer la programació més accessible per a més gent, amb un ‘nivell d'alfabetització’ bàsic en llenguatges de programació, similar a l'alfabetització bàsica en anglès i les habilitats matemàtiques necessàries per a molts treballadors. Python va tenir un paper crucial en aquest procés a causa de la seva orientació cap a una sintaxi neta i les metes de CP4E, que presentaven similituds amb el seu predecessor ABC. El projecte fou patrocinat per DARPA.
L'any 2000, l'equip principal de desenvolupadors de Python es va canviar a BeOpen.com per a formar l'equip BeOpen PythonLabs. El CNRI va demanar que la versió 1.6 fos pública, i en va continuar el desenvolupament fins que l'equip que hi era dedicat va abandonar el CNRI. El programa de llançament i el de la versió 2.0 tenien una quantitat significativa de codi superposat. Python 2.0 va ser el primer i únic llançament de BeOpen.com. Després que Python 2.0 fos publicat per BeOpen.com, Guido van Rossum i els altres desenvolupadors de PythonLabs es van unir en Digital Creations.
Aquesta versió del llenguatge va prendre una característica major del llenguatge de programació funcional de Haskell: list comprehensions. La sintaxi de Python per a aquesta construcció és molt similar a la de Haskell, tret per la preferència dels caràcters de puntuació en Haskell, i la preferència de Python per paraules claus alfabètiques. Python 2.0 va introduir, a més, un sistema de recol·lecció de brossa (garbage collector) capaç de recol·lectar diferències cícliques.
Posteriorment a aquest doble llançament, i després que Van Rossum abandonés el CNRI per treballar amb desenvolupadors de programari comercial, va quedar clar que l'opció d'utilitzar Python amb software disponible sota GNU GPL era molt desitjable. La llicència usada fins aquell moment, la Python License, incloïa una clàusula estipulant que la llicència estava governada per l'estat de Virgínia, pel que, sota l'òptica dels advocats de Free Software Foundation (FSF), es feia incompatible amb GPL. CNRI i FSF es van relacionar per canviar la llicència de software lliure de Python per fer-la compatible amb GPL. L'any 2001, Van Rossum fou premiat amb el FSF Award for the Advancement of Free Software. A partir d'aquest any, tot el codi, documentació i especificacions afegides des de la data de llançament de la versió alfa de Python 2.1, és propietat de la Python Software Foundation (PSF), una organització sense ànim de lucre fundada el 2001, prenent com a model l'Apache Software Foundation. Inclòs en aquest llançament va venir una implementació del scoping més semblant a les regles de static scoping (del qual Scheme és l'originador).
Una innovació major en Python 2.2 fou la unificació dels tipus de Python (tipus escrits en C), i classes (tipus escrits en Python) dins d'una jerarquia. Aquesta unificació va a conseguir un model d'objectes de Python pur i consistent. També van ser agregats els generadors que van ser inspirats pel llenguatge Icon. Les addicions a la biblioteca estàndard de Python i les decisions sintàctiques van ser influenciades fortament per Java en alguns casos: el package logging, introduït en la versió 2.3, està basat en log4j; el parser SAX, introduït en 2.0; el package threading, on la seva classe Thread exposa un subconjunt de la interfície de la classe homònima a Java.
L'any 2007, el projecte CP4E va romandre inactiu, i mentre que Python intenta ser fàcil d'aprendre i no gaire antiquat en la seva sintaxi i semàntica, que el fa accessible als no programadors, no va implícar una preocupació activa.
El 2018, Van Rossum comparteix la direcció, com a membre d'un consell directiu de cinc persones. El gener de 2019 els desenvolupadors actius del nucli de Python van escollir Brett Cannon, Nick Coghlan, Barry Warsaw, Carol Willing i Van Rossum com un “Consell Directiu” de cinc membres per a continuar la direcció del projecte. Van Rossum és, doncs, l'autor principal de Python i des del 2019 continua decidint el rumb del llenguatge.
La missió de la fundació és fomentar el desenvolupament de la comunitat de Python. Aquest organisme és responsable de diversos processos dins de la comunitat, com el desenvolupament de Python, l'administració dels drets intel·lectuals i l'obtenció de fons. Python compta una llicència de codi obert, denominada Python Software Foundation License, la qual és compatible amb la llicència pública general de GNU a partir de la versió 2.1.1, i incompatible amb versions anteriors.
Sobre l'origen de Python, el mateix Van Rossum va escriure l'any 1996:
Versions destacables del llenguatge:
Python 2.0 va ser llançat el 16 d'octubre del 2000 amb moltes novetats importants, incloent un garbage collector detector de cicles i suport per a Unicode, així com un canvi en el nom de la llicència a Python Software Foundation License. Python 3.0 va ser llançat el 3 de desembre de 2008. Va ser una important revisió del llenguatge, la qual no és totalment retrocompatible. Moltes de les seves característiques importants van ser portades a les versions de Python 2.6.x i 2.7.x. Els llançaments de Python 3 inclouen la utilitat 2to3, que automatitza (com a mínim parcialment) la traducció del codi de Python 2 a Python 3.
Informació sobre versions recents:
Python 3.6 va portar novetats relacionades amb la implementació de CPython, tals com la reestructuració dels elements de tipus dict i que la variable d'entorn pythonmalloc es pogués utilitzar per fer depuració de la memòria de l'intèrpret. També va aportar novetats quant a la biblioteca estàndard, millores en seguretat, millores per a entorns de programació en sistema operatiu Windows. Alguns d'aquests canvis importants van ser la declaració de tipus de variables sense necessitat de donar-les valors inicials, millores en la velocitat d'execució de generadors, canvi en la codificació del sistema de fitxers i la consola de Windows a UTF-8 i nous protocols per als camins de fitxers del sistema. Python 3.7 va portar novetats en el depurador tals com la incorporació de la funció interna breakpoint, el nou mòdul de dataclasses, noves APIs per a memòria local dels threads d'execució, noves funcions per al mòdul time i diccionaris ordenats per definició. La versió 3.8 del llenguatge va suposar una breu actualització i va aportar novetats, sobretot quant a expressions d'assignació i nous protocols de crida per a CPython. Aquesta versió va ser la primera en no ser dirigida exclusivament per Guido van Rossum, sinó pel mencionat consell directiu dels cinc principals desenvolupadors. Python 3.9 és la següent versió del llenguatge, i algunes novetats que ja incorpora de manera estable en la seva versió alfa són relacionades amb operadors de diccionaris, millora de mòduls, optimitzacions per a list comprehensions i canvis en la construcció interna i l'API de C. Python 3.10 és la versió més recent del llenguatge, les novetats més destacades d'aquesta versió és la millora en el seguiment d'errors, la codificació automàtica de text i la iteració asíncrona.
La data de final d'ús per a Python 2.7 va ser inicialment establerta al 2015, però va ser posposada a 2020, tot i sabent que una gran part del codi existent en aquesta versió del llenguatge no serà fàcilment portada a Python 3. El 2019, una versió preliminar de Python 4.0 es desenvolupa, i Van Rossum adverteix que no serà tan compatible amb Python 3.0 com aquesta versió ho va ser per a 2.0.
Característiques i filosofia Descripció de funcionalitats