To co czyni go tak popularnym?
Motoryzacyjne porównania
Dlaczego niektóre samochody są tak popularne, mimo że są powolne? Każdy wolałby jeździć Corvettą niż Pandą, prawda? A może w ogóle sięgnąć po rakietę? No tak, tylko że tu nie tylko o szybkość chodzi.
Załóżmy, że najbliższy sklep spożywczy znajduje się w odległości 2,6 km domu od naszego domu. North American X-15 Rocket porusza się z prędkością 7270 km na godzinę a taka na przykład Toyota Corolla osiąga 190 km na godzinę. Oznacza to, że z pomocą X-15 dotrzemy do sklepu 1,3 sekundy, podczas gdy Corolla będzie na to potrzebowała 49,3 sekundy. To sprawia, że Corolla jest 38 razy wolniejsza.
Głupie? To dlaczego niektórzy fanboje konkretnych języków oprogramowania zdają się rozumieć różnicę między nimi właśnie w taki sposób? Przecież wszyscy wiemy, że przykład powyżej jest niepraktyczny. No możnaby rozważyć rakietę jeśli mamy wyrzutnię, załogi, odpowiednie pozwolenia, paliwo i przeszkolenie. Ale raczej wybierzemy do tego zadania samochód.
Ważna jest prostota
Chodzi tu o zrozumienie kompromisów, czego niektórym programistom po prostu brakuje. Dlaczego Toyota Corolla języków programowania byłaby tak cholernie popularna? Cóż, prawdopodobnie dlatego, że jest to Toyota Corolla języków programowania! Tak właśnie sprawy się mają z Pythonem. Jest on prosty, nieprzekombinowany, wszechobecny; stanowi język skryptowy ogólnego przeznaczenia, który nie ogranicza użytkownika do żadnej określonej struktury ani paradygmatu. Oczywiście ta wspaniała elastyczność ma swoją cenę - szybkość. Dobrze zawarty kompromis sprawia, że Python jest świetnym językiem, który jest zawsze pod ręką, gotowy do wykonania wielu bardzo popularnych zadań programistycznych.
Gdzie dobrze sprawdzi się Python?
Jeśli budujesz aplikację, która działa na serwerze (oferując np. usługę sieciową), łączy się ona z bazą danych i zwraca zmodyfikowaną odpowiedź (najczęściej w formacie JSON). I do takich zastosowań Python jest doskonałym wyborem. Większość czasu pracy aplikacja będzie czekała na interfejs sieciowy, a nie na przetwarzanie danych przez procesor. Jest bardzo mało prawdopodobne, że przy takim zadaniu skrócenie czasu działania algorytmu o milisekundy będzie bardziej wartościowe niż optymalizacja szybkości sieci lub zapytań do baz danych.
Także jeśli dopiero uczysz się programowania, Python to fantastyczny wybór. Wbudowany REPL doskonale nadaje się do testowania pomysłów i pomaga w dość szybkim rozpoczęciu kodowania. Python ma również obszerną dokumentację – nie ukrywajmy - ze względu na to ile już lat ma ten język. Przez to istnieje wielu fachowców programujących w Pythonie od dziesięcioleci, którzy wiedzą co piszą w „docsach”.
Jeśli pracujesz nad modelami uczenia maszynowego, Python oferuje bardzo żywą społeczność, solidny zestawem modułów i armię naukowców popychających ludzką wiedzę do przodu.
Wreszcie taki moduł numpy radykalnie zwiększył zdolność Pythona do przetwarzania surowych liczb; to jest główny powód, dla którego Python jest tak przydatny w przestrzeni uczenia maszynowego. Python jest świetnym językiem do budowania systemów, które liczą takie rzeczy, na przykład systemów finansowych.
Gdzie Pythona unikać?
Python raczej nie powinien być Twoim wyborem w przypadku systemów wbudowanych (embedded) lub systemów działających w czasie rzeczywistym. Zadania te są znacznie bardziej odpowiednie dla języków, które są zbliżone do architektury, nad którą się pracuje.
Python nie pasuje też zbyt dobrze do aplikacji mobilnych czyli tego co nazywamy Mobile Software Development. Android i iOS dominują w tej przestrzeni. Python nie sprawdzi się także w programowaniu gier komputerowych czyli w branży, w której sukces zależy bezpośrednio od szybkości oprogramowania.