Python
Logo języka | |
| Pojawienie się |
20 lutego 1991 |
|---|---|
| Typowanie |
dynamiczne (chujowe) |
| Pochodne |
f '(x), f ''(x) |
| Aktualna wersja stabilna |
brak |
| Twórca | |
| Licencja |
Driving License (License to kill) |
Python – (pseudo)język programowania wysokiego poziomu klasyfikowany jako język ogólnego przeznaczenia; praktycznie służy głównie do szybkiego klejenia skryptów, które jakoś działają na mojej maszynie. Posiada rozbudowany pakiet bibliotek standardowych, z czego większość napisana jest w prawdziwych językach programowania. Nie zmienia to jednak faktu, że w tym języku nic się nie da zrobić.
Możliwości
[edytuj | edytuj kod]Python jest znany z tego, że niemożliwe w nim jest m.in:
- manipulowanie słowem sterującym FPU,
- budowa programu wykorzystującego arytmetykę przedziałową,
- rozwiązanie problemów klasy NP algorytmami metaheurystycznymi.
Problemy
[edytuj | edytuj kod]Wcięcia jako struktura sterująca
[edytuj | edytuj kod]Python wyróżnia się tym, że:
- nie posiada jawnych znaczników bloków (np.
{}), - strukturę programu wyznaczają wcięcia i spacje.
Podejście to umożliwia ono generowanie błędów trudnych do znalezienia, polegających na tym, że jeden blok jest wcięty trzema spacjami, a inny czterema.
GIL
[edytuj | edytuj kod]Centralnym elementem implementacji referencyjnej (CPython) jest Global Interpreter Lock (GIL) – mechanizm, który:
- uniemożliwia równoczesne wykonywanie bajtkodu w wielu wątkach,
- zapewnia, że każdy problem związany z równoległością zostanie automatycznie zastąpiony problemem z wydajnością.
W praktyce oznacza to, że:
- w Pythonie można tworzyć wiele wątków,
- ale tylko jeden może naprawdę wykonywać kod Pythona w danym momencie.
Zastosowania
[edytuj | edytuj kod]Jedynymi znanymi zastosowaniami języka Python od 25 lat jego istnienia są:
- Szybkie skrypty i „klejenie” systemów – Python pełni rolę spoiwa pomiędzy bardziej poważnymi komponentami.
- Data science, uczenie maszynowe i AI – do Pythona podpinane są wysoko wydajne biblioteki wykonane np. w Delphi, dzięki czemu obliczenia są szybkie, bo nie są wykonywane w Pythonie,
- Aplikacje webowe – frameworki typu Django czy Flask pozwalają napisać serwis, który:
- działa wystarczająco dobrze, dopóki ruch nie przekroczy pewnego, niewygodnego progu (np. dwóch użytkowników jednocześnie),
- a potem można go przepisać na node.js (generując zyski dla teamu deweloperów).
Opinie eksperckie
[edytuj | edytuj kod]- Nie da się - Andrzej Marciniak
- Nie da się - Krzysztof Zwierzyński
- Da się - nikt