9 minut Czytania

Pythona – powody popularności oraz główne zastosowania.

Python jest językiem programowania wysokiego poziomu (co oznacza wysoki poziom w tym kontekście dowiesz się w sekcji „czytelność”) stworzonym przez Guido van Rossum’a w latach dziewięćdziesiątych gdy pracował w CWI – niderlandzkim instytucie badawczym.

Nazwa nawiązuje do angielskiej trupy komediowej Monty Python, której Guido był fanem. Mimo, że początkowo język ten miał jedynie usprawnić tworzenie programów na system operacyjny Amoeba (czym Guido zajmował się na co dzień), został udostępniony online i od razu zebrał wokół siebie grono entuzjastów.

Kilkadziesiąt aktualizacji później doszliśmy do momentu, w którym, według indeksu PYPL (który oblicza popularność języka na podstawie częstości wyszukiwania tutoriali w przeglądarce), Python, kolejny rok z rzędu, zostaje uznany za najpopularniejszy język programowania.

Popularność Python – co powoduje, że jest on tak rozpoznawalny?

Jako powody popularności tego języka podaję się:

  • Aktywną i wspierającą społeczność – dzięki temu w przypadku wystąpienia problemu jest bardzo duża szansa, że ktoś już taki problem rozwiązał i opisał w Internecie. Żaden programista nie jest bezludną wyspą, korzystanie z pomocy i doświadczeń innych jest powszechną praktyką. Dodatkowo baza materiałów do samodzielnej nauki jest imponująca – łatwo znaleźć tutorial dotyczący niemal dowolnego zagadnienia związanego z Pythonem.
  • Niski próg wejścia – dzięki składni podobnej do języka angielskiego, osobom bez doświadczenia w programowaniu dużo łatwiej zacząć swoją przygodę z Pythonem niż z innym językiem.
  • Elastyczność – Python nie ma jednego głównego zastosowania, istnieją tysiące pakietów rozszerzających jego funkcjonalność w różnych obszarach. Dlaczego to istotne? W większości przypadków nie trzeba „wymyślać koła na nowo”, a jedynie znaleźć gotowe rozwiązanie i wykorzystać je w swoim programie.

Pakiety.

Pakiety w Pythonie (często nazywane również bibliotekami) to gotowe zestawy kodu, który możemy wykorzystać w naszych programach. Zwykle pojedynczy pakiet oferuje grupę tematycznie zbliżonych funkcjonalności. Na przykład pakiet Pillow umożliwia: wczytywanie, modyfikowanie oraz zapisywanie plików graficznych. Obecnie istnieje ponad 400 tysięcy pakietów, które osoby piszące programy w Pythonie mogą wykorzystać. Dzięki temu, minimalizując nasz nakład pracy, możemy wykorzystać ten język do przeróżnych zagadnień. Dodatkowo proces instalacji i wykorzystania pakietu nie jest trudny, początkujące osoby nie powinny mieć z tym problemu.

PEPs.

Jednym z elementów, który wyróżnia Pythona względem innych języków programowania jest jego unikalny sposób rozwoju, w którym społeczność skupiona wokół niego ma swój aktywny udział. Dodawanie nowych funkcjonalności bądź aktualizacje starych odbywa się poprzez tzw. PEPS czyli „Python Enhancements Proposals”. Są to dokumenty zawierające w sobie propozycje zmian, których można dokonać. Społeczność skupiona wokół Pythona może takie dokumenty komentować: chwalić, krytykować bądź proponować alternatywne rozwiązania. Dodać taki dokument oraz wypowiedzieć się o istniejących może każdy – finalnie każdy PEP jest albo akceptowany albo odrzucany. Proces ten gwarantuje, że nowe funkcjonalności są dobrze przemyślane i znalazły przychylność społeczności zanim zostaną dodane wraz z nową aktualizacją języka.

Czytelność Pythona.

Wcześniej wspomniane zostało, że Python jest językiem programowania wysokiego poziomu. Są to języki których składnia ma w jak największym stopniu ułatwiać zrozumienie programu przez człowieka. Poniżej znajduje się fragment kodu napisanego w Pythonie. Jak myślisz: co program napisany w ten sposób zrobi?

numbers = [10, 15, 20, 56, 78]

for number in numbers:
    print(number)

Jeśli założyłeś_aś, że program ten wyświetli każdą z liczb zdefiniowanych w pierwszej linijce to miałeś_aś rację!

Idea, aby kod był jak najbardziej czytelny przyświecała twórcy Pythona od samego początku. Wynikała ona z prostej konsternacji: programiści więcej czasu spędzają na czytaniu kodu, niż na jego pisaniu. Tak więc tworząc język łatwy w czytaniu znacznie przyśpieszymy pracę z nim.

Najpopularniejsze zastosowania.

Jeśli chodzi o najpopularniejsze obecnie zastosowania Pythona, to są to:

  • web development – czyli tworzenie stron internetowych;
  • analiza danych – przetwarzanie danych w celach statystyczno-eksploracyjnych;
  • AI – tworzenie algorytmów które poprawiają się automatycznie dzięki nabytemu doświadczeniu;
  • automatyzacja – za pomocą Pythona wiele powtarzalnych procesów może być zautomatyzowanych: wysyłka maili, zarządzanie plikami i wiele innych.

Web development.

Kiedy ostatnio instalowałeś_aś coś na swoim komputerze? Prawdopodobnie nie zdarza Ci się to często. Od dłuższego czasu obserwujemy trend przenoszenia aplikacji do sieci. Jest to łatwiejsze dla użytkownika, gdyż nie musimy rezerwować na nie w swoim komputerze miejsca oraz ich aktualizować. W związku z tym trendem praca jako web developer, czyli twórca stron internetowych należy do najpopularniejszych programistycznych pozycji. Z popularnością tego zagadnienia wiąże się też istnienie frameworków, czyli szkieletów aplikacji które standaryzują proces ich tworzenia oraz przyśpieszają poprzez możliwość wykorzystania wielu gotowych rozwiązań. Dwa najpopularniejsze pythonowe frameworki poświęcone stronom internetowym to Django i Flask.

Django.

Nazwa pochodzi od słynnego gitarzysty Django Reinhardt’a. Framework ten ma już 20 letnią historię i jako swój główny cel stawia ułatwienie tworzenia złożonych stron internetowych wykorzystujących bazy danych. Najpopularniejsze strony napisane za pomocą Django to:

  • Instagram.
  • Youtube.
  • Spotify.

Flask.

Framework ten jest nazywany często mikro frameworkiem, gdyż jest minimalistyczny w swoich założeniach. Jednak mimo wstępnej prostoty strony napisane przy pomocy Flask’a można łatwo rozszerzać. Najpopularniejsze strony napisane za jego pomocą to:

  • Linkedin.
  • Airbnb.
  • Reddit.

Analiza danych.

Programy napisane w Pythonie mogą z powodzeniem zastąpić takie oprogramowanie jak: Excel, Sas czy SPSS. Wiele firm decyduje się na taki krok, gdyż Python daje dużą elastyczność przy małym nakładzie czasowym w utrzymanie takiego rozwiązania. Oprócz tego oszczędzamy w ten sposób na kosztownych licencjach, ponieważ Python jest darmowy. Tak więc, jeśli zajmujesz się przetwarzaniem, czyszczeniem lub wizualizowaniem danych warto rozważyć nauczenie się korzystania z tego języka programowania. Najpopularniejsze pakiety które ułatwiają analizę danych w Pythonie to:

  • Pandas – umożliwia efektywną pracę z tabelami. Typowe zastosowania tego pakietu to np. dokonywanie agregacji danych, filtrowanie danych, czyszczenie ich, łączenie wielu tabel oraz import/eksport do różnych formatów.
  • Numpy – nazwa pochodzi od „Numerical Python”. Pakiet ten umożliwia pracę z wielowymiarowymi zbiorami liczb (czyli np. z macierzami). Dostarcza wszystkie funkcjonalności konieczne do wykonywania obliczeń naukowych oraz inżynierskich.
  • Matplotlib/Seaborn – dwie najpopularniejsze biblioteki umożliwiające tworzenie wizualizacji danych, czyli różnego rodzaju wykresów. Matplotlib jest bardziej uniwersalny przez co wymaga od nas sporo informacji co do wyglądu wykresu. Seaborn jest za to biblioteką nastawioną na tworzenie statystycznych wykresów według predefiniowanych motywów, dzięki temu atrakcyjne wykresy można wygenerować jednym poleceniem.

AI.

AI, czyli sztuczna inteligencja to algorytmy, które na podstawie przykładów rozwiązań danego problemu uczą się rozwiązywać nowe przypadki. Zauważają powtarzające się wzorce, które z uwagi na rozmiar danych dla ludzkiego mózgu są nieuchwytne. Dzięki bogatej ofercie gotowych rozwiązań oraz niskiej barierze wejścia wynikającej, m.in. ze wspomnianej wcześniej czytelności, Python stał się dominującym językiem programowania w tym obszarze.

Przykładowe zastosowania AI:

  • Rozpoznawanie obrazów – czyli algorytmy, które są w stanie rozpoznać na podanym zdjęciu/kadrze filmu pewne interesujące nas elementy. Główne obszary zastosowań to systemy rozpoznawania twarzy oraz autonomiczne pojazdy. Zarówno Tesla Autopilot oraz autonomiczne pojazdy Uber wykorzystują Python w tym celu.
  • Prognozowanie – czyli próba przewidzenia przyszłych rezultatów na podstawie przeszłych. Dzięki stosowaniu tej techniki możemy estymować sprzedaż w naszej firmie, giełdowe trendy bądź prognozę pogody. Python jest do tego idealnym narzędziem, dzięki szerokiej ofercie narzędzi do wizualizacji oraz metod klasycznych i nowoczesnych, opartych na głębokim uczeniu.
  • Przetwarzanie języka naturalnego – dziedzina zajmująca się analizą, rozumieniem, tłumaczeniem oraz generowaniem języka naturalnego przez komputer. Przykładowe zastosowania to, na przykład analiza opinii konsumentów o marce na podstawie wypowiedzi w mediach społecznościowych bądź tworzenie wirtualnych asystentów obsługujących klientów. Python w tym celu został wykorzystany, m.in. przez firmę OpenAI do stworzenia bota ChatGPT.

Najpopularniejsze pakiety dostarczające algorytmy uczenia maszynowego w Pythonie to:

  • Scikit-learn –  umożliwia rozwiązanie takich problemów jak: klasyfikacja, klasteryzacją, regresja oraz redukcja wymiarów.  Prosty i intuicyjny interfejs powodują, że jest to biblioteka przyjazna początkującym.
  • TensorFlow – pakiet powstał jako wewnętrzne narzędzie Googla natomiast z czasem został udostępniony publicznie. Główne funkcjonalności które dostarcza to trenowanie i wnioskowanie z głębokich sieci neuronowych.
  • PyTorch – pakiet został stworzony przez Facebook’a natomiast tak jak TensorFlow obecnie jest udostępniony publicznie. Główne funkcjonalności to budowanie algorytmów analizujących język naturalny (mowa/pismo) oraz rozpoznających obrazy. PyTorch jest wykorzystywany, między innymi przez takie firmy jak Tesla i Uber.
  • Statsmodels – pakiet dostarcza implementacje wielu klasycznych metod modelowania.

Jak zacząć programować w Pythonie?

Brzmi interesująco? Żeby zacząć tworzyć programy w Pythonie będziesz potrzebować dwóch rzeczy:

  • interpretera tego języka,
  • edytora kodu.

Interpreter.

Interpreter języka to program, który wykonuje programy napisane w danym języku.  Jeśli program nie spełnia wymogów, np. popełniliśmy literówkę w jednej z instrukcji – interpreter powinien nas poinformować o tym, gdzie wystąpił błąd i z jakiego powodu. Interpretery Pythona są dostępne na każdy z najpopularniejszych systemów operacyjnych (najnowszą wersję znajdziesz na oficjalnej stronie).

Najpopularniejsze edytory.

Narzędzi, które można wykorzystać do pisania programów w Pythonie jest sporo, natomiast poniżej znajdują się najpopularniejsze opcje:

  • PyCharm – komercyjne zintegrowane środowisko programistyczne, dedykowane profesjonalnemu tworzeniu serwisów i aplikacji w Pythonie. Posiada wiele funkcjonalności zwiększających produktywność (np. autouzupełnianie i formatowanie kodu) oraz integruje wiele narzędzi do, m.in. testowania, debugowania, pracy z bazami danych oraz deployowania. PyCharm opracowywany jest przez firmę JetBrains – jego pełna wersja jest płatna, natomiast istnieje również wersja Community pozbawiona części funkcjonalności, ale darmowa.
  • Visual Studio Code – program rozwijany przez Microsoft i udostępniony jest w pełnej wersji za darmo. Nie jest to program dedykowany do Pythona – z założenia ma to być uniwersalny edytor kodu. Duża ilość rozszerzeń sprawia, że możemy dopasować ten edytor do naszych potrzeb. Jednym z najpopularniejszych jest rozszerzenie, które umożliwia pracę z notebookami Jupyter, co nie jest możliwe, np. w PyCharm Community.
  • Spyder – program dedykowany naukowym zastosowaniom. Jest darmowym projektem ze sporą bazą rozszerzeń, które dodają nowych funkcjonalności. Spyder w swoim wyglądzie przypomina takie programy jak Matlab czy RStudio.
  • Jupyter – nazwa nawiązuje do trzech języków programowania, które są wspierane przez projekt (Julia, Python oraz R). Umożliwia on tworzenie programów w formie interaktywnych zeszytów. Takie zeszyty składają się z komórek z kodem, które możemy niezależnie od siebie uruchamiać oraz opisowych komórek, w których możemy opisać co robimy. Przez swój unikatową formułę takie interaktywne zeszyty ułatwiają dzielenie się swoimi dokonaniami. Czasopismo Nature w 2021 roku uznało Jupyter za jeden z 10 projektów które zmieniły oblicze nauki.