Historia Pythona
https://www.python.org/
Python Website
https://en.wikipedia.org/wiki/Python_(programming_language)
https://github.com/python
Repositories related to the Python Programming language
POCZĄTKI
-
Nazwa języka pochodzi od serialu BBC
Latający Cyrk Monty Pythona.
- Twórcą Pythona jest holender Guido van Rossum (ur. 1960).
Społeczność Pythona nazywa go BDFL
(Benevolent Dictator For Life, dobrotliwy dożywotni dyktator),
tytuł pochodzi ze skeczu Monty Python.
GvR zrezygnował z tytułu BDFL w roku 2018 (chciał odpocząć).
GvR przeniósł się z Holandii do USA w 1995, do 2003 mieszkał blisko
Waszyngtonu. Od 2005 do 2013 pracował dla Google, potem dla Dropbox.
W roku 2019 przeszedł na emeryturę, ale powrócił z niej w roku 2020
i dołączył do Microsoftu.
- Python (jego interpreter) zaczął powstawać od 1989 jako następca
języka ABC, stworzonego w CWI (Centrum Matematyki i Informatyki)
w Amsterdamie.
Ostatnia wersja Pythona, która powstała w CWI to 1.2 (1995).
- Od wersji 2.1 (2001) język jest rozwijany jako projekt Open Source
przez niedochodową organizację Python Software Foundation (PSF),
wzorowaną na Apache Software Foundation.
- Od 2008 istnieją dwie gałęzie: Python 2 i Python 3
(zerwanie kompatybilności wstecz).
- Kod napisany w Pythonie 2 może być prawie mechanicznie
przetłumaczony na Pythona 3.
Istnieje narzędzie 2to3 stworzone do tego celu.
Inne narzędzie to 3to2, które wykonuje konwersję w drugą stronę.
- Kod źródłowy CPythona jest przechowywany w publicznym repozytorium GitHub.
- Wydania Pythona oznaczane są wg konwencji X.Y.Z, gdzie:
X to gałąź bazowa ("trzęsienie ziemi"), obecnie X=3;
Y to wydanie główne (nowe funkcjonalności), obecnie Y=10;
Z to naprawa błędów (bug-fix).
Jeżeli brak Z lub Y.Z, to oznacza zero na tych pozycjach.
IMPLEMENTACJE PYTHONA
https://www.python.org/download/alternatives/
- CPython (reference implementation)
- IronPython (Python running on .NET)
- Jython (Python running on the Java Virtual Machine)
- PyPy (A fast Python implementation with a JIT compiler)
- Stackless Python (Branch of CPython supporting microthreads)
- MicroPython (Python running on micro controllers)
DZIEŃ DZISIEJSZY
- Rozwój języka jest prowadzony przy wykorzystaniu PEP
(Python Enhancement Proposal).
Są to propozycje zmian lub rozszerzeń w języku w postaci
krótkiego artykułu, który jest następnie poddany dyskusji
wśród programistów Pythona. PEP zawiera opis proponowanego
rozwiązania, uzasadnienie (Rationale), aktualny status.
Po osiągnięciu konsensusu, propozycje są przyjmowane lub odrzucane.
- Python 2.6 (wydany 2008-10-01)
- Python 2.7 (wydany 2010-07-03) PEP 373
- Python 2.7.18 (wydany 2020-04-20, koniec serii 2, status end-of-life)
- Python 2.8 nie będzie nigdy wydany
- Python 3.0 (wydany 2008-12-04)
- Python 3.1 (wydany 2009-06-27)
- Python 3.2 (wydany 2011-02-20)
- Python 3.3 (wydany 2012-09-29)
- Python 3.4 (wydany 2014-03-17)
- Python 3.5 (wydany 2015-09-13) PEP 478
- Python 3.6 (wydany 2016-12-23) PEP 494
- Python 3.7 (wydany 2018-06-27) PEP 537
- Python 3.8 (wydany 2019-10-14) PEP 569
- Python 3.9 (wydany 2020-10-05) PEP 596
Nowy parser PEG (parsing expression grammar) zamiast
LL(1) (left-to-right, leftmost derivation)
[PEP 617 - New PEG parser for CPython].
Jest możliwość powrotu do starego parsera.
In type annotations you can now use built-in collection types such
as 'list' and 'dict' as generic types instead of importing the corresponding
capitalized types (e.g. 'List' or 'Dict') from 'typing'.
- Python 3.10 (wydany 2021-10-04) PEP 619
Usunięcie starego parsera LL(1).
- Python 3.11 (wydany 2022-10-24) PEP 664
Python 3.11 is up to 10-60% faster than Python 3.10.
PEP 657 - Include Fine-Grained Error Locations in Tracebacks.
New typing features (changes in 'typing').
- Python 3.12 (wydany 2023-10-02) PEP 693
Improved error messages. 'unittest' cleanup. 'distutils' removed.
More flexible f-string parsing (PEP 701).
sum() now uses Neumaier summation.
- Python 3.13 (wydany 2024-10-07) PEP 719
Incremental garbage collection. An experimental JIT compiler.
Remove the 2to3 tool and lib2to3 module.