Python: kompletny przewodnik biznesowy

Dla cyfrowych przedsiębiorców i product ownerów

Przyjemny, wszechstronny, swobodny, wyjątkowo popularny i po trzydziestce. Nie, to nie opis z Tindera. Wszystkie te słowa opisują jeden z najpopularniejszych i najbardziej lubianych języków programowania na świecie: Pythona. 

Powstały w 1991 roku Python jest dziś u szczytu powodzenia, stale pnąc się w rankingach popularności. Jednym z powodów może być jego wszechstronność; jako język  uniwersalny Python nieustannie znajduje nowe zastosowania. Szeroko wykorzystuje się go w najnowszych technologiach, takich jak AI, RPA, blockchain i edge computing

Język ma armię zagorzałych zwolenników, a także sporą legię zaciekłych przeciwników. Mimo to w 2021 roku wydaje się nie do zatrzymania. Dlatego postanowiliśmy podzielić się naszymi spostrzeżeniami z odbiorcami biznesowymi.

Witaj w kompletnym przewodniku biznesowym po Pythonie!

Kto powinien przeczytać nasz przewodnik po Pythonie?

Ten przewodnik jest skierowany do właścicieli firm i startupów, cyfrowych przedsiębiorców, product managerów i product ownerów oraz innych osób z biznesu, które chcą być na bieżąco z trendami technologicznymi.

Przeczytaj ten przewodnik zwłaszcza wtedy, gdy:

Nie znasz jeszcze Pythona.

Musisz zatrudnić programistów Python.

Zaraz startujesz z projektem opartym na Pythonie.

Decydujesz o stosie technologicznym kolejnego produktu.

Choć przewodnik dotyka pewnych technicznych aspektów języka, nie jest przeznaczony przede wszystkim dla odbiorców technicznych. Mimo to początkujący i mniej doświadczeni programiści Python mogą z niego skorzystać. Dla zaawansowanych specjalistów Pythona będzie jednak zapewne zbyt ogólny i zbyt biznesowy. 

Czego się dowiesz?

Zrobiliśmy, co w naszej mocy, żeby zbudować wyczerpujący przewodnik po Pythonie dla ludzi biznesu. Obejmuje podstawy języka, jego filozofię projektową i historię powstania, a także główne koncepcje architektoniczne i wdrożenia w branży. 

Po przeczytaniu przewodnika poznasz odpowiedzi na następujące pytania:

Dlaczego powstał Python?

Kto stworzył Pythona?

Czy Python jest językiem kompilowanym, czy interpretowanym?

Do czego nadaje się Python?

Czym Python różni się od innych języków programowania?

I wiele więcej.

Ale przede wszystkim dowiesz się:

Czy Python nadaje się do zbudowania Twojego pomysłu na produkt.

Jaką dodatkową wartość może wnieść do Twojego projektu w porównaniu z innymi językami.

Jak zatrudnić świetny zespół programistów Python, który zrealizuje projekt szybko i w budżecie.

Które narzędzia, frameworki i biblioteki Pythona najlepiej posłużą Twojej branży i produktowi.

POBIERZ TEN PRZEWODNIK JAKO E-BOOK

Przewodnik dzieli się na przystępne sekcje, dzięki czemu łatwo poruszysz się po treści i przejdziesz od razu do tematu, którego potrzebujesz.

A jeśli i tak nie masz teraz czasu, żeby przez nie przejść, mamy dla Ciebie rozwiązanie! Oto wersja PDF.

Klikając „Pobierz e-booka”, wyrażasz zgodę na przetwarzanie Twoich danych przez Ideamotive Sp. z o. o. w celach marketingowych, w tym marketingu e-mailowego. Szczegóły znajdziesz w naszej Polityce prywatności.

Spis treści

      00 Stan Pythona w 2022 roku [INFOGRAFIKA]

      python pillar infographic

       

      01 Czym jest język programowania Python?

      Oficjalna definicja, którą znajdziemy na stronie Pythona, brzmi:

      „Python to interpretowany, obiektowy język programowania wysokiego poziomu o dynamicznej semantyce”.

      Ale co to znaczy? I co to zmienia dla Twojej firmy? Przeanalizujmy to zdanie punkt po punkcie. 

      Interpretowany

      Kompilacja to proces tłumaczenia kodu czytelnego dla człowieka na kod maszynowy i generowania pliku wykonywalnego, który uruchamia operacje zdefiniowane przez programistów. 

      Interpretowanie wymaga natomiast interpretera, czyli oprogramowania, które wykonuje program linia po linii w locie, bez tworzenia pliku uruchamianego przez system operacyjny. 

      Python zaliczany jest do języków interpretowanych, choć w jego wykonaniu pojawia się też pewna kompilacja. Zamiast kompilować się do kodu maszynowego, kod Pythona tłumaczony jest na prosty zestaw instrukcji zwany bytecode. Instrukcje te wykonuje maszyna wirtualna, a nie procesor komputera. Ma to pewne zalety. 

      Na przykład języki interpretowane bywają bardziej elastyczne, co ułatwia aktualizacje i przyspiesza wydania. Zwykle są też bardziej zwięzłe niż ich kompilowane odpowiedniki. Kod jest przenośny, czyli można go wykorzystać na różnych platformach i w różnych środowiskach. Przykłady języków interpretowanych to Ruby, Perl i BASIC. 

      Obiektowy

      Podejście obiektowe, najpopularniejszy paradygmat programowania, korzysta z pojęć klas i obiektów. Służą one do porządkowania kodu w samodzielne moduły wielokrotnego użytku, które łatwo ze sobą łączyć. Takie podejście umożliwia ponowne wykorzystanie kodu, co przyspiesza prace i zwykle ułatwia diagnozowanie oraz rozwiązywanie problemów. 

      Programowanie obiektowe (OOP) korzysta też z dziedziczenia, żeby uniknąć zbędnej powtórnej pracy i przyspieszyć wytwarzanie. Java, C++, PHP, Ruby i Swift to tylko kilka przykładów języków obiektowych. Warto zaznaczyć, że choć Python jest obiektowy z założenia, obsługuje również inne paradygmaty programowania.

      Wysokopoziomowy

      Jako język wysokopoziomowy Python jest mocno oderwany od języka maszynowego i dość łatwy dla programistów do zrozumienia i użycia. Języki wysokopoziomowe są bliskie językowi ludzkiemu, co obniża próg wejścia i ułatwia kodowanie. Są też niezależne od maszyny, przenośne i łatwiejsze w debugowaniu niż technologie niskopoziomowe. Popularne dziś języki wysokopoziomowe to JavaScript, Java, Visual Basic i C#.

      Dynamiczna semantyka

      Python jest też typowany dynamicznie. Bez wchodzenia w szczegóły techniczne oznacza to mniej więcej tyle, że wiele operacji (jak rozszerzanie i aktualizowanie kodu) Python wykonuje w czasie działania programu i nie wymaga tylu deklaracji typów co języki typowane statycznie. W efekcie kod Pythona jest zwykle bardziej zwięzły i odporny na zmiany. Można go też testować i debugować w locie. Poza Pythonem popularne dynamiczne języki programowania to R, PHP, JavaScript, Groovy i Erlang.

      ---

      Trzeba jeszcze dodać, że Python jest otwartoźródłowy i może być swobodnie rozpowszechniany, także komercyjnie. Pomaga to obniżyć koszty projektu przez niższe opłaty licencyjne, poprawia zgodność z innymi standardami i systemami oraz otwiera drogę do własnych rozszerzeń kodu, czasem niemożliwych w technologii licencjonowanej.

      Jako język modułowy Python łatwo integruje się z innymi językami i technologiami, co jest cenną cechą w złożonych projektach obejmujących setki komponentów. Czytelność kodu to kolejna wrodzona cecha Pythona, bardzo korzystna z perspektywy zarządzania projektem. 

      Python: podstawowe pojęcia

      Jako osoba z biznesu nie musisz umieć programować w Pythonie (chyba że chcesz, do czego gorąco zachęcamy). Podstawowe rozumienie kluczowych pojęć tego języka pomoże Ci jednak przejść przez spotkania projektowe z udziałem osób technicznych. 

      Moduł a pakiet w Pythonie

      Pythonowe moduły i pakiety mogły Ci się już obić o uszy; te dwa pojęcia często się myli. Wyjaśnijmy różnicę między nimi.

      Moduł w Pythonie

      Moduł to po prostu plik Pythona zawierający instrukcje i definicje (klasy, funkcje i zmienne). 

      Programiści używają modułów, żeby podzielić kod na małe, łatwe do ogarnięcia części, które prościej się czyta i rozumie. Definicje z modułu można importować do innych modułów, dzięki czemu nie trzeba pisać tego samego kodu ponownie. 

      Przykładem modułu Pythona jest acme.py, gdzie acme to nazwa modułu, a .py oznacza rozszerzenie Pythona.

      Pakiet w Pythonie

      Pakiet to hierarchiczny zbiór modułów. Pomyśl o nim jak o folderze na komputerze, który grupuje powiązane pliki. 

      Tak jak foldery, pakiety pomagają utrzymać czytelną, dobrze zorganizowaną strukturę projektu. Pełnią rolę katalogu, który ułatwia śledzenie modułów i zarządzanie nimi. Każdy pakiet można podzielić na podpakiety, a moduły można importować między poszczególnymi pakietami.

      Żeby folder został uznany za pakiet, musi spełnić jeden ważny warunek: zawierać plik __init__.py. Plik może być pusty, ale bez niego kod się nie zainicjuje.

      Obiekty i klasy w Pythonie

      Kolejne ważne rozróżnienie w Pythonie to różnica między obiektami a klasami.

      Jak wskazaliśmy w pierwszej sekcji, wiele wdrożeń Pythona opiera się na paradygmacie programowania obiektowego. W tym podejściu obiekty są pojęciem fundamentalnym. 

      Każdy obiekt to unikalny zbiór atrybutów i funkcji działających na tych zmiennych. Te właściwości definiuje się w klasie, która służy za szablon obiektu. Na podstawie szablonu tworzy się konkretne instancjeobiektu.

      Wyobraź sobie obiekt pies . Klasa definiuje, jakich atrybutów i funkcji potrzebuje obiekt, żeby dało się go zaklasyfikować jako psa. Będzie miał imię, wiek, wielkość, rasę, kolor itd. Instancja obiektu odpowiada konkretnemu psu, który ma określone wartości każdego z atrybutów zdefiniowanych w klasie.

      W tym momencie potrzebna nam będzie też konstrukcja opisująca zachowanie psa. Jeśli chcesz, żeby pies aportował piłkę, jakie instrukcje musisz mu przekazać? Sprawdźmy to w kolejnej sekcji. 

      Czym są funkcje w Pythonie?

      Obiekty, klasy i instancje dotyczą atrybutów obiektu. Funkcje i metody mają związek z jego zachowaniem.

      Funkcja to blok kodu, który programista może uruchomić, żeby wykonać konkretne zadanie albo zwrócić dane jako wynik. W naszym przypadku funkcja aportuj piłkę zawierałaby instrukcje do wykonania przez Twojego psa. 

      Każda funkcja może składać się z parametrów (nazw zmiennych) i argumentów (wartości zmiennych) przekazywanych do funkcji przy jej wywołaniu. Funkcje można wykorzystywać wielokrotnie i wywoływać w dowolnym miejscu, bo nie są przypisane do konkretnych obiektów ani klas. 

      Metody również składają się z zestawu instrukcji wykonywanych w określonej kolejności. W przeciwieństwie do funkcji nie da się ich jednak wywołać po nazwie. Każda metoda jest niejawnie używana dla konkretnego obiektu i konkretnej klasy.

      Popularność Pythona

      Od kilku lat pozycja Pythona jako jednej z czołowych technologii programistycznych na świecie jest dość stabilna. Zdarzają się wzloty i spadki, ale dominuje ogólny trend wzrostowy. Kluczowe są tu dwa czynniki: przystępność i wszechstronność Pythona (żeby zobaczyć, jak Python wykorzystywany jest w różnych branżach, przejdź do sekcji Do czego używa się Pythona?). 

      W rankingu języków programowania RedMonk z czerwca 2020 roku Python zajmuje drugie miejsce wśród najpopularniejszych języków programowania (bez zmian względem poprzedniej edycji). To „pierwszy język inny niż Java czy JavaScript, który samodzielnie znalazł się w pierwszej dwójce tego rankingu”.

      Choć w badaniu Stack Overflow Developer Survey 2020 TypeScript wyprzedził Pythona o włos jako drugi najbardziej lubiany język programowania świata, Python utrzymał pozycję najbardziej pożądanej technologii, już czwarty rok z rzędu! Mniej więcej jedna trzecia ankietowanych specjalistów chciałaby się go nauczyć. 

      Według indeksu TIOBE Python zajmuje trzecie miejsce wśród języków programowania. W ciągu ostatnich pięciu lat awansował o dwie pozycje, a w skali dwóch dekad wykonał ogromny skok: w 2001 roku był na 24. miejscu. 

      Wreszcie rzut oka na światowe Google Trends z ostatnich pięciu lat potwierdza duże zainteresowanie Pythonem na całym świecie. 

      Python - chart 1

      Popularność Pythona w porównaniu z Javą, C++ i PHP w ciągu ostatnich 5 lat (źródło: Google Trends)

      Kto stworzył Pythona?

      Python powstał w latach 80., a jego pierwsze wydanie ukazało się 20 lutego 1991 roku za sprawą Guida van Rossuma. W tamtym czasie Van Rossum był programistą w Centrum Wiskunde & Informatica (CWI) w Holandii, finansowanym przez państwo laboratorium badawczym. Jego zespół pracował nad językiem programowania ABC, skupionym na przyjazności dla użytkownika i efektywności programisty. 

      Projekt okazał się nieudany, ale nawet gdy Van Rossum zajął się innymi przedsięwzięciami, nie porzucił go całkowicie. On i jego współpracownicy potrzebowali łatwego w użyciu języka skryptowego dla Amoeba, systemu operacyjnego, który tworzyli. Wtedy właśnie narodził się pomysł na Pythona. Następca ABC przejął wiele jego kluczowych koncepcji i cech, w tym:

      • wysokopoziomowe struktury danych
      • możliwości typowania dynamicznego
      • nacisk na efektywność programowania

      Chcesz dowiedzieć się więcej o historii Pythona? Posłuchaj jej od samego Guida van Rossuma:

      Python Pillar - Guido van Rossum yt

      Później Van Rossum rozwinął część tych cech w zestaw zasad leżących u podstaw filozofii projektowej Pythona. Zgodnie z nimi Python ma być:

      • „językiem łatwym i intuicyjnym, a jednocześnie tak potężnym jak języki głównych konkurentów
      • otwartoźródłowym, żeby każdy mógł przyczynić się do jego rozwoju
      • tak zrozumiałym jak zwykły angielski
      • odpowiednim do codziennych zadań, pozwalającym skrócić czas pracy”.

      Mimo licznych aktualizacji i wydań (najnowsze duże wydanie Pythona to wersja 3.9.2, a Python 4.0 spodziewany jest w ciągu najbliższych kilku lat) te cele wciąż obowiązują.

      Dlaczego Python nazywa się Python?

      Czas na ciekawostkę. Wbrew powszechnemu przekonaniu nazwa języka programowania ma niewiele wspólnego z niejadowitym wężem dusicielem. 

      Jak głosi historia, Guido van Rossum nazwał Pythona na cześć kultowego serialu komediowego BBC Monty Python’s Flying Circus

      Czy Van Rossum był jakoś zainspirowany swoim ulubionym serialem, czy po prostu chciał złożyć mu hołd, tego nie wiemy. Ale między serialem komediowym a jego programistycznym „dzieckiem” faktycznie jest kilka punktów wspólnych:

      • Oba są niesamowicie popularne w swoich dziedzinach.
      • Python jest pełen odwołań do serialu: format dystrybucji .egg, biblioteka Lumberjack czy zmienne spam .
      • Fani Pythona powiedzą Ci, że kodowanie w nim jest zabawne, eksperymentalne i wszechstronne. Tak samo jak serial Monty Pythona.

      NAJWAŻNIEJSZE WNIOSKI:

      • Python jest z nami od końca lat 80., a mimo to pozostaje w ścisłej czołówce najpopularniejszych i najczęściej używanych języków programowania.
      • Język został pomyślany tak, by był bardzo czytelny, i kładzie nacisk na efektywność oraz szybkość programowania. 
      • Jako język wysokopoziomowy Python przypomina język ludzki, co obniża próg wejścia i ułatwia pracę.
      • Wszechstronny i elastyczny Python sprawdza się w bardzo różnych zastosowaniach. Interpreter obsługiwany jest przez główne systemy operacyjne. 
      • Python jest otwartoźródłowy, co sprzyja innowacji i obniża koszty projektów programistycznych.

      02 Zalety i wady Pythona

      Kilka zalet Pythona dla Twojego biznesu powinno być widocznych już po pierwszej sekcji. Zbierzmy je razem i dołóżmy jeszcze kilka przekonujących powodów, dla których warto rozważyć Pythona w kolejnym projekcie.

      Zalety Pythona dla biznesu

      Jeśli wrócimy na oficjalną stronę języka, dowiemy się, że:

      „Python jest potężny... i szybki; dobrze współpracuje z innymi; działa wszędzie; jest przyjazny i łatwy do nauki; jest otwarty”.

      Brzmi to niemal zbyt dobrze, żeby było prawdziwe; mimo to Python pod wieloma względami faktycznie wyróżnia się na tle innych języków programowania. Jak? W tej sekcji przejdziemy przez najważniejsze zalety Pythona i pokażemy, co każda z nich daje Twojej firmie.

      Niski koszt i oszczędności

      Rozwijany na licencji otwartoźródłowej Python nie kosztuje Twojej firmy nic. Każdy może pobrać jego kod źródłowy, zaktualizować go i rozpowszechniać bez kupowania kosztownych licencji. Co więcej, większość narzędzi i bibliotek potrzebnych do pracy z Pythonem (patrz sekcja  Python: środowisko technologiczne ) jest również darmowa. Ponieważ nie musisz pokrywać żadnych opłat licencyjnych, całkowity koszt projektu mocno spada. 

      Szybkie i efektywne wytwarzanie 

      Efektywność jest wpisana w Pythona. Prosta składnia oznacza mniej linii kodu, a wysokopoziomowe podejście, czytelność kodu i uporządkowane formatowanie ułatwiają programistom życie. Do tego Python ma obszerny zbiór bibliotek, które ułatwiają i przyspieszają pracę. Wszystko to sprawia, że Twój zespół musi napisać mniej kodu, żeby szybciej osiągnąć znakomite wyniki. 

      Łagodna krzywa uczenia się

      Ze względu na względną prostotę i nastawienie na programistę Python uchodzi za świetny język na start kariery programistycznej. Bliski językowi naturalnemu, jest dość łatwy do przyswojenia, zrozumienia i pisania, przynajmniej do pewnego poziomu biegłości. Do tego materiały do nauki Pythona, w tym darmowe kursy i tutoriale, są szeroko dostępne. 

      Dzięki łagodnej krzywej uczenia się programiści szybciej przyswajają język. Ale przystępność Pythona pomaga też project managerom i product ownerom: lepiej rozumieją powstające oprogramowanie i mają nad nim większą kontrolę, więc podejmują trafniejsze decyzje biznesowe. Osoby nietechniczne, takie jak specjaliści data science, statystycy czy analitycy finansowi, również korzystają na poznaniu Pythona, który leży u podstaw wielu narzędzi, z jakimi mają do czynienia na co dzień.

      Szeroki wachlarz zastosowań

      Wspominaliśmy o tym już kilka razy i powtórzymy raz jeszcze: kluczową zaletą Pythona dla biznesu jest zapewne jego uniwersalność. Jako język ogólnego przeznaczenia Python jest niezwykle produktywny i obejmuje szeroki wachlarz zastosowań w wielu branżach. 

      Pythona powszechnie używa się w projektach data science, AI i uczenia maszynowego. Może służyć jako język skryptowy aplikacji webowych albo standardowy komponent większości dystrybucji Linuksa i macOS. Pracownicy naukowi wykorzystują go w badaniach. Python stał się też kluczowym narzędziem w obliczeniach naukowych, zastosowaniach z obszaru bezpieczeństwa IT i w branży gier. Oprogramowanie dla przedsiębiorstw również mocno korzysta z tego języka. 

      → → Żeby dowiedzieć się więcej o różnorodnych zastosowaniach Pythona, przejdź do sekcji Które branże używają Pythona?.

      Elastyczne integracje

      Kolejną zaletą Pythona jest to, że łatwo rozszerza się go o inne języki, takie jak C++, PHP czy Java. Przydaje się to zwłaszcza w projektach rozproszonych, obejmujących wiele zespołów i technologii. Elastyczność Pythona pozwala skleić ze sobą duże komponenty oprogramowania bez czasochłonnego i kosztownego przepisywania kodu. Dodatkowo możesz wykorzystać szybkość i efektywność Pythona do budowania szybkich prototypów produktu. Gdy zostaną przetestowane i zatwierdzone, łatwo przełożysz je na inny obsługiwany język (jak Java czy C++), żeby wydać wersję produkcyjną.

      Przenośność kodu

      Python trzyma się zasady wieloplatformowości: ten sam program uruchomisz na różnych platformach bez rozszerzania ani modyfikowania kodu. To, że kod Pythona możesz napisać raz i uruchomić (niemal) wszędzie, oszczędza mnóstwo czasu i daje Ci wsparcie wielu platform od ręki. 

      Żywy ekosystem programistów

      19. edycja raportu SlashData State of the Developer Nation , opublikowana w październiku 2020 roku, szacuje, że na świecie jest około 9 milionów programistów Python, więcej niż programistów Javy. Raport sugeruje też, że w ciągu roku do społeczności Pythona dołączyło ponad 2,2 miliona osób, co jest wymownym sygnałem szybkiego wzrostu ekosystemu tego języka. 

      Co to oznacza dla Twojego biznesu? Po pierwsze, łatwiejszy dostęp do doświadczonych programistów Python. Po drugie, silna społeczność dba o to, by stos technologiczny języka pozostawał aktualny i rozwijany. To pozytywnie odbija się na jakości, bezpieczeństwie i stabilności Twojego oprogramowania opartego na Pythonie. 

      → → Jeśli chcesz dowiedzieć się więcej o społeczności programistów Python, sprawdź sekcję Społeczność Pythona: kto, co, gdzie i jak?.

      Mocna pozycja w dużych firmach

      Oto kolejna zaleta Pythona, która może wpłynąć na Twoją decyzję o wypróbowaniu go w następnym projekcie. Otóż to pełnoprawny język dla największych firm. 

      Przejdź do sekcji Python dla przedsiębiorstw, jeśli chcesz wiedzieć, co dokładnie czyni Pythona idealnym wyborem do budowania krytycznych aplikacji biznesowych. Tutaj rzućmy tylko od niechcenia kilka nazw firm, które intensywnie korzystają z Pythona: MIT, Google, Facebook, NASA, AstraZeneca, Amazon, Instagram, Revolut, PayPal, Goldman Sachs, Spotify, Netflix, Udemy, Uber… i tak dalej. 

      Python - Infographic 1-1

      Wady Pythona

      Nie chcemy się do tego przyznawać, ale wszystko ma swoje plusy i minusy. Nawet Python. Choć podziwiamy ten język, ma pewne ograniczenia, które trzeba uwzględnić:

      Ograniczenia szybkości

      Szybkość kodu to prawdopodobnie największa słabość Pythona. Ponieważ Python potrzebuje interpretera, bywa wolniejszy niż Java czy C++. Skoro już przy tym jesteśmy, warto jednak odróżnić wydajność procesora (parametr techniczny) od czasu dostarczenia kodu, który dla Ciebie, jako osoby z biznesu, liczy się najbardziej. 

      Kiedy spojrzymy na twarde dane, to owszem: mimo regularnych optymalizacji Python wciąż nie przelicza liczb tak szybko jak najwydajniejsze języki programowania. Rzadko wpływa to jednak na to, co prawdopodobnie liczy się dla Ciebie najbardziej: czas wejścia na rynek. 

      Jeśli chodzi o zdolność zamienienia pomysłu na oprogramowanie w rzeczywistość, Python bywa nawet dwa razy szybszy i bardziej produktywny niż „szybsze” języki. Składa się na to kilka czynników, w tym zwięzłość kodu Pythona, przystępność języka czy mnogość bibliotek zewnętrznych. 

      Chcesz wiedzieć więcej o szybkości Pythona? Porozmawiajmy!

      Nie będziemy tu poświęcać temu więcej miejsca; jeśli chcesz omówić to szczegółowo, napisz do nas

      Możesz też sprawdzić znakomity wpis Nicka Humricha, który rozwija ten temat. W skrócie jednak: ograniczenia szybkości Pythona rzadko mają istotny wpływ na czas realizacji projektu.

      Brak natywnego wsparcia dla aplikacji mobilnych

      Ten zarzut często pojawia się w dyskusjach o słabościach Pythona. I faktycznie: Python nie jest oficjalnie wspierany przez Androida ani iOS i nie ma wbudowanych narzędzi do tworzenia aplikacji mobilnych. 

      Nie oznacza to jednak, że nie ma dobrych aplikacji mobilnych napisanych w Pythonie. Społeczność Pythona obeszła te ograniczenia, wypuszczając kilka bibliotek i pakietów, takich jak Kivy, PyQt i Toga, które pozwalają tworzyć aplikacje mobilne w Pythonie. 

      Jak pokazuje w swoim wpisie nasz CTO, tworzenie aplikacji mobilnych w Pythonie jest możliwe, i to ze znakomitym skutkiem, o ile zespół ma odpowiednie narzędzia i umiejętności. 

      Ból głowy z wersjami

      Ktoś powiedział „programistyczne bolączki”? 3 grudnia 2008 roku to przełomowa data w historii Pythona: tego dnia narodził się Python 3.0. Przyniósł monumentalne zmiany, naprawiając poważne wady wcześniejszych wydań i mocno upraszczając składnię. Był jednak jeden problem. Py3K, jak go ochrzczono, nie był kompatybilny wstecz ze swoim poprzednikiem. Wywołało to lawinę problemów w pracy. Na przykład mimo że część wersji stała się przestarzała i oficjalne wsparcie się skończyło, kluczowych bibliotek nie zaktualizowano tak, by działały z nową wersją. 

       Problemy ze zgodnością często oznaczają dodatkową pracę programistyczną i wymagają większej uwagi przy pisaniu kodu. W efekcie programiści Pythona muszą dobrze orientować się w zgodności funkcji, żeby wiedzieć, której wersji Pythona użyć, i świadomie wybierać biblioteki, menedżery oraz inne narzędzia.  

      Skłonność do błędów w czasie wykonania

      Programowanie w Pythonie jest szybkie i efektywne. Niestety daje też programistom więcej okazji, by przeoczyć potencjalnie krytyczne błędy. Bez jawnej deklaracji typów danych Python jest bardziej podatny na błędy ujawniające się dopiero w czasie działania programu. 

      Ta cecha Pythona wymaga czasem dokładniejszych lub dodatkowych testów, co może wydłużyć etap QA w projekcie. I znów: rozwiązanie istnieje. Python ma szereg narzędzi i bibliotek do tworzenia testów automatycznych, które pomagają przyspieszyć debugowanie.

      NAJWAŻNIEJSZE WNIOSKI

      • Python został zaprojektowany tak, by był łatwy, szybki, przyjazny i intuicyjny.
      • To technologia otwartoźródłowa, co obniża koszty projektu.
      • Jest też niezwykle wszechstronny, więc możesz go użyć w bardzo różnych zastosowaniach. 
      • Mnóstwo frameworków, bibliotek i narzędzi ułatwia i przyspiesza pracę.
      • Python dobrze łączy się z innymi językami programowania, a jego kod jest przenośny.
      • Choć jest ulubieńcem startupów, Python jest też szeroko używany przez największe firmy świata.
      • Python bywa wolniejszy niż Java czy C++ i jest bardziej podatny na błędy w czasie wykonania.
      • Z założenia nie jest technologią mobilną. Mimo to wciąż możesz go użyć do tworzenia aplikacji mobilnych.
      • Największą wadą Pythona jest brak zgodności wstecznej między głównymi wydaniami.

      03 Zastosowania Pythona. Do czego używa się Pythona?

      Jednym z kluczowych powodów ogromnej popularności Pythona, obok łatwości użycia i bogatego wsparcia bibliotek, jest jego zastosowanie w wielu dziedzinach i branżach. Python to język uniwersalny; dzięki swojej strukturze i otwartoźródłowemu charakterowi znajduje zastosowanie w wielu obszarach, którym przyjrzymy się w tej sekcji.

      Python w aplikacjach webowych i internecie

      W styczniu 2021 roku na świecie działało blisko 1,2 miliarda aktywnych stron internetowych . Prowadzenie skutecznej działalności biznesowej w XXI wieku bez obecności online jest praktycznie niemożliwe. W niektórych branżach, jak e-commerce, każda minuta niedostępności strony to tysiące dolarów utraconych przychodów. Do tego przestój dłuższy niż 15 minut wpływa już na pozycję Twojej strony w wyszukiwarce. A ponowne zaindeksowanie serwisu, żeby odrobić utraconą pozycję, jest zawsze żmudne, a bywa niewykonalne. 

      Godzina niedostępności strony mogłaby kosztować Amazon ponad 13 milionów dolarów utraconych przychodów.

      [Źródło: Gremlin]

      To tłumaczy, dlaczego nowoczesne firmy inwestują w niezawodne, sprawdzone technologie do budowy swoich stron i aplikacji webowych. Wiele z nich wybrało Pythona jako technologię backendową ze względu na różnorodne biblioteki wsparcia, uporządkowaną strukturę danych i szybkie tempo pracy. Python pozwala też tworzyć intensywnie korzystające z danych, dynamiczne strony z własnymi animacjami i eleganckim wyglądem.

      JavaScript wykonywany jest zwykle po stronie klienta. Python z kolei służy przede wszystkim do budowania aplikacji webowych po stronie serwera, które obsługują routing adresów URL, zarządzanie żądaniami HTTP, dostęp do bazy danych, bezpieczeństwo i inne kluczowe zadania leżące u podstaw działania stron i aplikacji. Mnogość narzędzi, bibliotek i pakietów dostępnych w tym języku sprzyja szybkiej pracy. 

      →→ Rozróżnienie między pakietami, frameworkami i bibliotekami wydaje Ci się mylące? Przejdź do sekcji Python: środowisko technologiczne, która wyjaśnia te podstawowe definicje i omawia najpopularniejsze narzędzia Pythona.

      Python w data science i uczeniu maszynowym

      Jeśli chodzi o data science, ML i AI, Python jest pierwszym wyborem. Język odgrywa wiodącą rolę we wdrażaniu algorytmów uczenia maszynowego, rozwiązań analityki predykcyjnej i scenariuszy inżynierii danych.

      Jednym z powodów jest obfitość narzędzi i pakietów do pracy z danymi, które Python udostępnia praktycznie na każdą okazję. Numpy, Matplotlib, Pandas: to tylko kilka fundamentalnych bibliotek, które upraszczają i przyspieszają projekty przetwarzania danych. Są niezastąpione przy wykonywaniu zaawansowanych funkcji matematycznych i statystycznych, przy manipulowaniu i wizualizowaniu danych oraz przy pracy z obszernymi zbiorami danych. Te zasoby dobrze nadają się też do programowania numerycznego i statystyki. 

      Przy zadaniach z zakresu uczenia maszynowego i AI zarówno programiści, jak i specjaliści data science mogą korzystać z narzędzi takich jak scikit-learn, Theano i TensorFlow. Te i inne pythonowe biblioteki ML ułatwiają pracę z sieciami neuronowymi, umożliwiają przetwarzanie języka naturalnego i usprawniają typowe zadania uczenia maszynowego oraz eksploracji danych.

      Kolejnym czynnikiem sprzyjającym szerokiemu zastosowaniu Pythona w obliczeniach naukowych i uczeniu maszynowym jest wysoka przystępność języka. Dzięki czytelnej składni i obszernemu zestawowi bibliotek wsparcia Python obniża próg wejścia dla początkujących i osób nieprogramujących. To czyni go najczęściej używanym językiem programowania w data science.

      Python w AI, uczeniu maszynowym i data science

      Oto typowe zastosowania Pythona w kontekście data science i inteligencji maszynowej:

      • Wykrywanie oszustw kartami kredytowymi
      • System rekomendacji filmów
      • Rozpoznawanie emocji w mowie
      • Wykrywanie płci i wieku
      • Tworzenie chatbotów
      • Wykrywanie senności kierowcy
      • Wykrywanie znaków drogowych
      • Rozpoznawanie pisma odręcznego
      • Wykrywanie fake newsów
      • Generowanie opisów obrazów
      • Klasyfikacja raka piersi

      Python w aplikacjach audio i wideo

      Skoro Python jest językiem ogólnego przeznaczenia, dlaczego nie użyć go do tworzenia aplikacji audio i wideo? Python oferuje szeroki wybór bibliotek multimedialnych, takich jak GStreamer, FUPlayer czy Boxtream, które pozwalają programistom pracować z obrazem i dźwiękiem. Wykorzystuje się je w szczególności do:

      • nagrywania, edycji, miksowania i eksportu dźwięku,
      • odtwarzania plików audio i wideo w różnych formatach,
      • edycji materiału głosowego i wideo, 
      • streamingu dźwięku.

      Dodatkowo istnieje kilka pythonowych modułów i bibliotek do konwersji audio i wideo. Należą do nich soundfile, wavio i pydub.

      Tworzenie interfejsów graficznych w Pythonie

      Pythona powszechnie używa się do tworzenia rozszerzalnych i wygodnych desktopowych interfejsów użytkownika przy minimalnej ilości kodu. Twórcy gier mogą wybierać spośród wielu otwartoźródłowych zestawów narzędzi i bibliotek GUI, w tym PyQt, PySide, Kivy i Tkinter. Wybór zależy od zakresu i wymagań projektu, typu aplikacji oraz indywidualnych preferencji programisty. 

      Dostępne funkcje oraz wsparcie platform i urządzeń różnią się między frameworkami i bibliotekami. Na przykład framework Qt i powiązane pakiety są wieloplatformowe, więc mocno skracają czas potrzebny na wypuszczenie aplikacji na poszczególne systemy operacyjne. Inne narzędzia, jak Tinker, dają programistom konfigurowalne wbudowane widgety, żeby usprawnić dostarczanie aplikacji i zmniejszyć rozmiar kodu. Niektóre moduły rozszerzeń pozwalają programistom Pythona tworzyć natywne interfejsy dobrze dopasowane do nowoczesnych urządzeń dotykowych.

      Python w aplikacjach biznesowych 

      Aplikacje biznesowe muszą być skalowalne i rozszerzalne oraz zapewniać szybki i bezpieczny dostęp do wrażliwych danych firmowych. I mimo powszechnego przekonania, że języki typowane dynamicznie nie spełnią tych wymagań, Python dobrze nadaje się do tworzenia oprogramowania dla dużych firm. 

      • Jako bardzo elastyczny język z ogromnym katalogiem narzędzi i bibliotek na każdą okazję Python łatwo dostosowuje się do zmieniających się wymagań biznesowych
      • Python jest zgodny z wieloma platformami i dobrze łączy się z innymi językami programowania (w tym z Javą, C++, Rustem i Go), co jest bezcennym atutem z perspektywy dużej organizacji pracującej z setkami starszych i nowoczesnych aplikacji, które muszą się ze sobą płynnie komunikować. 
      • Poza tym rozległy i dobrze utrzymany otwartoźródłowy ekosystem Pythona świadczy o niezawodności i stabilności języka, które są niezbędnymi składnikami każdej aplikacji biznesowej.

      Python w platformach ERP

      Kilka uznanych systemów ERP (jak Tryton czy Odoo) opiera swój backend na Pythonie, korzystając z jego możliwości szybkiej pracy i skutecznego ponownego wykorzystania kodu. To podejście ma wiele zalet.

       Zacznijmy od oszczędności czasu i budżetu. Kodowanie w Pythonie zajmuje mniej czasu niż w Javie, tradycyjnej technologii wdrożeń ERP. Po drugie, Python ma schludną, uporządkowaną architekturę, w której każda funkcja biznesowa jest osobnym modułem. Pozwala to szybko dodawać kolejne funkcje, gdy pojawia się potrzeba biznesowa. Czysty, bardzo czytelny kod Pythona łatwiej też debugować i naprawiać, gdy pojawią się problemy. Wreszcie, i to duża przewaga nad Javą, Python jest pełnoprawnym językiem, którego można używać na wszystkich poziomach, od funkcji rdzeniowych po skrypty. Takie podejście pomaga zmniejszyć złożoność systemu, czyniąc go bardziej elastycznym i odpornym. 

      Python w praktyce: znane firmy korzystające z Pythona 

      Wymieniliśmy już kilku znaczących komercyjnych użytkowników Pythona, ale przyjrzyjmy się niektórym dokładniej. Poświęć chwilę na kilka rzeczywistych przykładów znanych firm, które używają Pythona na co dzień.

      Google

      Google intensywnie korzysta z Pythona: to jedna z oficjalnie wspieranych technologii giganta z Mountain View. Większość rdzeniowych algorytmów wyszukiwania używa Pythona, podobnie jak większość aplikacji webowych Google, w tym Google Drive.

      Programiści Google używają Pythona również do budowania skryptów testowych, wdrożeniowych i automatyzujących, do analityki danych, tworzenia i uruchamiania zadań monitorujących oraz szybkiego wypuszczania narzędzi. 

      „Python był ważną częścią Google od samego początku i pozostaje nią, gdy system rośnie i się zmienia. Dziś dziesiątki inżynierów Google używa Pythona, a my szukamy kolejnych osób z umiejętnościami w tym języku”. 

      1517714179374_auto_x2 2 (2)

      Peter Norvig, Director of Research, Google

       

      Instagram

      Za ogromną kolekcją pieczołowicie podrasowanych selfie i zdjęć z podróży na Instagramie stoi Python. Zjawiskowa aplikacja mobilna firmy jest niemal w całości napędzana Pythonem.

      Inżynierowie Instagrama chwalą prostotę języka, która pozwala im szybko iterować i testować nowe, odważne pomysły produktowe. Wskazują jednak też na pewne wyzwania wydajnościowe związane z ogromną skalą, jaką aplikacja Instagrama musi obsłużyć.

      „Początkowo wybraliśmy Pythona ze względu na jego reputację prostoty i praktyczności, która dobrze pasuje do naszej filozofii »najpierw rób rzeczy proste«”. 

      Cytat z bloga programisty Instagrama

       

      Citigroup

      Python zyskuje na znaczeniu w sektorze fintech i bankowym, a coraz więcej instytucji wyposaża swoich nietechnicznych pracowników w umiejętności programowania w Pythonie. Jeden z przykładów to Citigroup, bank ze ścisłej czołówki. Bank dodał Pythona do programu szkoleń dla swoich analityków, żeby zyskać przewagę konkurencyjną i lepiej obsługiwać klientów. 

      Co ważne, Citi nie jest wyjątkiem. Inne organizacje bankowe, księgowe i finansowe, w tym JPMorgan i Goldman Sachs, idą jego śladem, przekwalifikowując dotychczasowych pracowników i zatrudniając najlepszych specjalistów Pythona.

      „Coraz szybciej wchodzimy w ten (pythonowy) świat. Wygląda na to, że wartościowe jest przynajmniej rozumienie kodu”. 

      1517714179374_auto_x2 2

      Lee Waite, Managing Director, Citigroup

       

      NASA

      Python stoi za setkami fascynujących projektów amerykańskiej agencji rządowej, takich jak zestaw narzędzi do komunikacji z symulatorami lotu, zestaw odczytujący dane o temperaturze jasnościowej z geolokalizacją czy pythonowy algorytm wykrywania turbulencji. Pełna lista otwartoźródłowych projektów NASA opartych na Pythonie dostępna jest na tej stronie

      Główny wykonawca wsparcia promów kosmicznych NASA, United Space Alliance, używa tego języka od 1994 roku. Firma uzasadniła wybór Pythona jego prostotą, zwięzłością i łagodną krzywą uczenia się. 

      „Dwadzieścia minut po pierwszym zetknięciu z Pythonem miałem go pobranego, skompilowanego i zainstalowanego na mojej stacji SPARCstation. Zadziałał od razu!” 

      1517714179374_auto_x2 2 (3)

      Robin Friedrich, Former Senior Engineer, United Space Alliance

       

      Netflix

      Gdyby nie Python, nie urządzalibyśmy sobie maratonów Netfliksa. Ten język stoi za każdym elementem treści, które wszyscy maniakalnie pochłaniamy na platformie streamingowej, zwłaszcza w czasie lockdownu. 

      Programiści Netfliksa używają Pythona wszędzie: od funkcji bezpieczeństwa po budowanie tych podstępnych silników rekomendacji, które trzymają nasz nos przy ekranie. Python leży u podstaw algorytmów uczenia maszynowego Netfliksa, wykrywania podatności, klasyfikacji ryzyka i wielu innych funkcjonalności.

      „Python od dawna jest popularnym językiem programowania w obszarze sieci, bo to intuicyjny język, który pozwala inżynierom szybko rozwiązywać problemy sieciowe”. 

      1517714179374_auto_x2 2 (4)

      Amjith Ramanujam, Senior Software Engineer, Netflix

       

      RealEstateAgent.com

      Największy amerykański katalog agentów nieruchomości to jedna z tysięcy firm na rynku nieruchomości , które wykorzystują możliwości Pythona, żeby dopasować kupujących do idealnych domów (i cen). 

      „Python w połączeniu z PHP wielokrotnie pozwolił nam tworzyć szybkie i sprawne aplikacje, dzięki którym Real Estate Agent .com działa przy minimalnych zasobach. Python jest kluczową częścią naszego dynamicznie rosnącego katalogu agentów nieruchomości”. 

      1517714179374_auto_x2 2 (5)

      Gadi Hus, Former CTO, RealEstateAgent.com

      Tworzenie gier w Pythonie

      The Sims 4, Battlefield 2, World of Tanks, Civilization IV: wszystkie te rekordowe tytuły używają Pythona do różnych zadań. Umożliwiły to dziesiątki pythonowych bibliotek do tworzenia gier, takich jak PyGame, Pycap czy Pyglet, które dostarczają kluczowych zasobów między innymi do szybkiego prototypowania, testowania i debugowania gier. 

      Ogromny arsenał narzędzi Pythona do tworzenia gier jest też bardzo przydatny dla początkujących programistów, którzy dopiero budują swoją pierwszą grę. Mogą korzystać z niezliczonych elementów GUI, widgetów, motywów i kontrolek, żeby ułatwić sobie tworzenie bogatych wizualnie gier w Pythonie.

      Python w blockchainie

      Wszechstronny, elastyczny i nowoczesny Python świetnie nadaje się też do wdrażania blockchaina. Korzystając z pakietów standardowych i rozszerzeń (jak Flask), programiści Pythona mogą tworzyć pojedyncze bloki, kodować je w niezmienny łańcuch oraz testować i udostępniać ten łańcuch przez REST API. Prosta składnia i zwięzły kod Pythona eliminują komplikacje i ułatwiają bezpieczne oraz trwałe łączenie bloków. 

      Schodząc do konkretnego zastosowania blockchaina w kryptowalutach, Python wspiera programistów szeregiem dedykowanych bibliotek. Jedną z nich jest CryptoCompare, wiodący serwis z newsami o krypto oraz informacjami i statystykami rynkowymi. Cryptofeed to kolejna przydatna biblioteka. Pozwala streamować dane rynkowe z różnych giełd prosto do aplikacji użytkownika. 

      Python w mikroserwisach

      Jeszcze kilka lat temu uznawane za technologię przełomową, mikroserwisy weszły do głównego nurtu, a wiele firm przestawia swoje platformy na ten wzorzec architektoniczny. Żeby to zrobić albo zbudować platformę mikroserwisową od zera, mogą sięgnąć po Pythona. 

      Python ma szeroki wachlarz otwartoźródłowych narzędzi ułatwiających wdrażanie mikroserwisów, a najważniejszym z nich jest Nameko. Ten dedykowany i rozszerzalny framework mikroserwisowy pozwala między innymi stworzyć usługę, która odpowiada na komunikaty RPC, nasłuchuje zdarzeń i wysyła je przy określonych wyzwalaczach. Narzędzie zajmuje się wszystkimi połączeniami, transportem i współbieżnością, dzięki czemu programiści mogą tworzyć usługę zwykłymi klasami i metodami Pythona.

      Python w tworzeniu aplikacji mobilnych: tak, nie, może?

      Tworzenie aplikacji mobilnych to jedna z naszych specjalizacji w Ideamotive. I choć uwielbiamy Pythona, musimy przyznać, że nie jest to nasz język pierwszego wyboru w tym kontekście. Python nie ma wbudowanych możliwości tworzenia aplikacji mobilnych i jeszcze niedawno w ogóle nie polecalibyśmy go do budowy aplikacji mobilnej. 

      Sytuacja się jednak zmieniła i Python staje się coraz popularniejszym wyborem przy tworzeniu aplikacji mobilnych. 

      Istnieje kilka solidnych pakietów, które pozwalają programistom budować w Pythonie mocne front-endy aplikacji mobilnych. Te, po które nasi eksperci Pythona sięgają w projektach szczególnie często, to framework Kivy do wieloplatformowego programowania w Pythonie oraz BeeWare, czyli narzędzie typu „napisz raz, wdrażaj wszędzie”, które umożliwia tworzenie natywnych aplikacji mobilnych w Pythonie. Do tego narzędzia takie jak Python-for-Android czy PyJNIus dają programistom mobilnym kolejne możliwości budowania wydajnych aplikacji w Pythonie.

      →→ Myślisz o zbudowaniu aplikacji mobilnej? Dowiedz się więcej o naszym ulubionym frameworku mobilnym, React Native. Zyskaj efektowny, natywny wygląd i najwyższą wydajność bez rujnowania budżetu. Dowiedz się więcej tutaj.

      NAJWAŻNIEJSZE WNIOSKI

      • Python to wszechstronny język ogólnego przeznaczenia.
      • Oferuje bogaty zestaw frameworków i bibliotek używanych w mnóstwie różnych zastosowań.
      • Data science, analityka biznesowa i uczenie maszynowe to kluczowe obszary użycia Pythona.
      • Język stosuje się też w backendzie aplikacji biznesowych, w tym systemów ERP.
      • Python ma arsenał narzędzi do wdrażania nowoczesnych technologii.
      • Na przykład powszechnie używa się go w blockchainie i aplikacjach opartych na mikroserwisach.
      • Wiele gier i aplikacji multimedialnych wykorzystuje Pythona do obsługi dynamicznych treści. 
      • Wieloplatformowe frameworki Pythona są coraz częściej używane w tworzeniu aplikacji mobilnych.

      04 Które branże używają Pythona?

      Dobry we wszystkim i mistrzowski w wielu obszarach, Python nie ogranicza się do jednej dziedziny. Uniwersalny, bardzo przystępny i przyjazny, stosowany jest w wielu branżach. Biorąc pod uwagę jego mocne ciągoty do data science, ML i AI, trudno się dziwić, że dominuje w takich sektorach jak ubezpieczenia, bankowość, ochrona zdrowia czy marketing cyfrowy, a wszystkie one mocno opierają się na danych. 

      Kluczowe mocne strony Pythona czynią go też pożądanym językiem w innych zastosowaniach. Zanim więc zanurzymy się w techniczne szczegóły Pythona i przyjrzymy się konkretnym narzędziom i bibliotekom do uczenia maszynowego, analityki i wizualizacji danych, rzućmy okiem na branże, które używają Pythona w swoich rozwiązaniach.

      Python w finansach i bankowości

      Python zrobił karierę w fintechu, stając się jedną z najpowszechniejszych technologii branży. Należy do kluczowych języków w kilku ogromnych instytucjach finansowych, w tym w Bank of America, Citigroup i JP Morgan, napędzając analitykę finansową i systemy księgowe, platformy bankowe oraz portfele i płatności cyfrowe. 

      Język oferuje zestaw narzędzi i bibliotek , które przydają się przy budowie aplikacji finansowych. Używa się ich przede wszystkim do pozyskiwania, przetwarzania i wizualizacji danych, dając brokerom ubezpieczeniowym, bankowcom i doradcom finansowym głęboki wgląd w dane. 

      Na przykład NumPy to podstawowy pythonowy pakiet do obliczeń naukowych, często stosowany w systemach wykonujących obliczenia statystyczne i analizy ryzyka. Biblioteka Pandas jest częstym wyborem przy wizualizacji danych finansowych i wdrożeniach blockchaina. Inne narzędzia Pythona wykorzystywane w projektach finansowych to pyrisk (do oceny ryzyka i wyników finansowych), scikit-learn (do stosowania uczenia maszynowego w oprogramowaniu bankowym i finansowym) oraz Zipline (dedykowana biblioteka do aplikacji tradingowych).

      Typowe zastosowania: analiza finansowa, obliczenia, przetwarzanie danych, wnioski biznesowe, obsługa płatności, rozwiązania oparte na blockchainie

      Firmy, które używają Pythona: ING Bank, Bank of America, Citigroup, Revolut, PayPal

      Python w e-commerce

      Firmy e-commerce intensywnie korzystają z dużych zbiorów danych, żeby usprawnić ścieżkę zakupową klienta i optymalizować stany magazynowe. Do tego, w obliczu rosnących oczekiwań kupujących wobec spersonalizowanego doświadczenia, coraz częściej sięgają po AI i automatyzację, żeby podpowiadać produkty, umożliwiać omnichannel i dostarczać szyte na miarę usługi. Aby to osiągnąć, wiele z nich zwraca się ku Pythonowi.

      Poza bibliotekami data science, takimi jak NumPy, Pandas czy SciPy, które pomagają w agregacji, czyszczeniu i przetwarzaniu danych, platformy e-commerce korzystają z możliwości deep learningu i AI dostarczanych przez pythonowe narzędzia i pakiety (w tym PyTorch, Keras czy MXNet). Używają ich do budowy skutecznych systemów rekomendacji, analizy zachowań kupujących i wdrażania obsługi przez chatboty. Część firm wykorzystuje też przetwarzanie języka naturalnego, żeby dodać obsługę wielu języków na stronach i w aplikacjach albo umożliwić wyszukiwanie głosowe dla wygodniejszego doświadczenia użytkownika.

      Typowe zastosowania: analityka danych o kupujących, rekomendacje produktów, cross-selling i up-selling, rozpoznawanie obrazów, rozpoznawanie mowy, obsługa przez chatboty

      Firmy, które używają Pythona: Amazon, Walmart, Shopify, American Eagle, Zalando, eBay

      Python w nieruchomościach

      Miliony ogłoszeń, tysiące klientów, obszerne historie sprzedaży: branża nieruchomości produkuje ogromne ilości danych. Właściwie obsłużone, prowadzą do trafniejszych decyzji opartych na faktach. Python udostępnia ogromny zbiór bibliotek, takich jak PyDoop, PySpark czy scikit-learn, które wspierają agencje i pośredników nieruchomości. Na przykład oprogramowanie w Pythonie pomaga zbierać dane z ogłoszeń, analizować je i wybierać właściwe nieruchomości (zobacz ten zgrabny przykład prostego bota do web scrapingu w Pythonie , który pomaga zautomatyzować wstępną selekcję ofert). 

      Programiści wzbogacają platformy nieruchomościowe o pythonowe biblioteki AI i ML, żeby dostarczyć analitykę predykcyjną łączącą dane historyczne, analizę zachowań i informacje w czasie rzeczywistym. Wszystko to pozwala uczestnikom rynku trafnie ocenić popyt, przygotować dokładne wyceny i przewidywać zachowania klientów, by odpowiednio dopasować ofertę. Pythona używa się w nieruchomościach także w mniej wyrafinowanych scenariuszach. Na przykład pythonowe API umożliwiają płynną komunikację i wymianę danych między stronami, bazami danych, aplikacjami mobilnymi i innymi platformami używanymi przez agentów, właścicieli, najemców i potencjalnych kupujących. Oprogramowanie w Pythonie można też zintegrować z czujnikami i urządzeniami IoT, żeby napędzić automatykę domową i usprawnić zarządzanie nieruchomościami.

      Wykorzystanie Pythona przez organizacje z branży nieruchomości ma długą historię, co pokazuje ten film (pochodzący jeszcze z 2015 roku). Dr Aleksandar Velkoski, Director of Data Science w National Association of Realtors, pokazuje w nim, jak połączyć Pythona i Elasticsearch, żeby zbudować mocną wyszukiwarkę nieruchomości. 

      Typowe zastosowania: scraping danych, wnioski o nieruchomościach i kupujących, ocena ryzyka i prognozowanie cen, sprawniejsze zarządzanie nieruchomościami, IoT i inteligentny dom

      Firmy, które używają Pythona: Zillow, Opendoor, Insurami, Remarkably 

      Python w ochronie zdrowia i farmacji

      Ponieważ Python jest językiem pierwszego wyboru w data science i badaniach naukowych, jego użycie naturalnie rozciąga się na medycynę. I znów: nie sposób wymienić wszystkich zastosowań w ochronie zdrowia ze względu na mnogość praktycznych narzędzi, bibliotek i pakietów (jak pyhealth, MedPy, PythonMed czy Seaborn). Wymienimy więc tylko kilka, które wysuwają się na pierwszy plan. 

      Przede wszystkim Python daje ochronie zdrowia możliwości predykcyjne. Korzystając z pythonowych bibliotek AI i ML, naukowcy tworzą zaawansowane narzędzia analityczne, które potrafią wykryć choroby na podstawie wczesnych objawów, a nawet przewidzieć je, zanim jakiekolwiek objawy się pojawią, na podstawie danych medycznych i historii pacjenta. Te same rozwiązania służą do opracowania skutecznego, spersonalizowanego planu leczenia. Biblioteki Pythona często wykorzystuje się też w platformach do zarządzania obłożeniem łóżek i rozwiązaniach pomagających przewidzieć długość pobytu.

      Kolejnym popularnym obszarem programowania w Pythonie jest komputerowa analiza obrazów medycznych. Programiści i specjaliści data science używają kodu Pythona, żeby wdrożyć deep learning w systemach wizualizacji obrazów. Modele uczenia maszynowego poprawiają szybkość, dokładność i wyniki diagnostyki obrazowej, przyspieszając przegląd przypadków i ograniczając błędy diagnostyczne. 

      Pythona często używa się także do budowania platform zarządzania zdrowiem: od oprogramowania do umawiania wizyt po samoobsługowe portale zdrowotne dla pacjentów. Firmy farmaceutyczne z kolei często korzystają z pythonowych modeli sieci neuronowych przy odkrywaniu leków. Żeby „wynaleźć” lek, algorytmy AI przesiewają potencjalne związki i weryfikują je względem ogromnej bazy parametrów. Tą metodą dokonano wielu niezwykłych odkryć. Jednym z przykładów jest związek antybiotykowy z MIT, który potrafi zabijać szczepy bakterii odporne na antybiotyki. AstraZeneca to kolejny znany entuzjasta Pythona. Farmaceutyczny gigant używa go w swoim inteligentnym oprogramowaniu do wspólnego odkrywania leków.

      Typowe zastosowania: prognozowanie wyników leczenia, wykrywanie chorób, automatyzacja triażu, diagnostyka obrazowa, zarządzanie pacjentami, aplikacje zdrowotne, odkrywanie leków

      Firmy, które używają Pythona: AstraZeneca, UnitedHealth Group, Philips, Sema4, Novartis

      Python w marketingu cyfrowym

      Marketing cyfrowy mocno korzysta na Pythonie, co jest naturalne, bo analityka danych leży u podstaw każdej strategii i działań marketingu cyfrowego. W zależności od zakresu pracy marketerzy mogą wykorzystywać aplikacje i usługi oparte na Pythonie do eksploracji i analizy danych, planowania i automatyzacji kampanii, automatyzacji raportów, wniosków o klientach i wielu, wielu innych zadań. 

      Możliwości Pythona w zakresie data science wykorzystuje się w różnych obszarach marketingu cyfrowego: od analizy ruchu na stronie, przez kampanie SEO i SEM, po spersonalizowane kampanie e-mailowe. Python usprawnia automatyzację marketingu dzięki gotowym bibliotekom, które pomagają zarządzać powtarzalnymi procesami obsługi danych, i wbudowanym modułom obsługującym złożone wzory z zakresu data science, AI i inżynierii.

      Jeśli szukasz konkretnych przykładów, oto kilka. Kodem Pythona możesz zaprogramować rozwiązania zbierające dane ankietowe, informacje o leadach czy subskrybentach albo śledzące produkty, ceny i promocje konkurencji. Skrypty Pythona nadają się do automatyzacji masowych operacji na plikach czy powtarzalnego formatowania danych. Pomogą też przeanalizować skuteczność kampanii w różnych mediach i prognozować wartość klienta w czasie, odpływ, konwersję i inne kluczowe wskaźniki marketingowe. 

      Bogaty zbiór bibliotek Pythona, takich jak Pandas, Matplotlib, Advertools czy Selenium, przydaje się w zadaniach SEO. Usprawniają one prace związane z pozyskiwaniem i analizą danych, web scrapingiem i wizualizacją danych.

      Typowe zastosowania: planowanie i automatyzacja kampanii, analityka leadów, wnioski z kampanii, raportowanie, targetowanie odbiorców, SEO

      Firmy, które używają Pythona: Facebook, HubSpot, Zapier, SEMrush, Mailchimp 

      Python w startupach i MŚP

      Z założenia Python jest świetnym wyborem dla startupów, które często pracują pod presją czasu, przy niskich budżetach i muszą szybko iterować odważne pomysły. To wyjątkowo popularna technologia stojąca za wieloma MVP i PoC, które niekoniecznie muszą być bezbłędne czy w pełni rozbudowane, ale muszą być działającymi i użytecznymi produktami.

      Kilka cech Pythona sprawia, że pasuje do dynamicznych, szybkich biznesów i projektów. Wymienimy je tutaj, nie rozwijając tych punktów, bo omówiliśmy je w sekcji Zalety Pythona (dla biznesu).

      • Niski koszt: otwartoźródłowa licencja Pythona i mnóstwo darmowych narzędzi oraz bibliotek dają oszczędność, a to duża korzyść dla młodych firm z napiętym budżetem.
      • Przystępność: ponieważ Pythona stosunkowo łatwo się nauczyć, wielu technologicznych przedsiębiorców wybiera go do budowy i testowania pierwszych produktów.
      • Innowacyjność: zastosowania Pythona są nieograniczone, a wiele z nich obejmuje najnowsze technologie, jak AI, ML, analityka danych czy blockchain. Idealnie dla spragnionych innowacji startupów!
      • Uniwersalność: wszechstronność to mocny atut Pythona, więc czy startup chce zbudować aplikację webową, czy zautomatyzować żmudną pracę, zrobi jedno i drugie w jednym języku.
      • Łatwość aktualizacji: oparta na modułach logika biznesowa Pythona pozwala szybko aktualizować i zmieniać kod, co w dynamicznym środowisku startupowym jest bardzo częste.

      Python dla przedsiębiorstw

      Ze względu na (względną) prostotę Pythona część osób kwestionuje jego przydatność w oprogramowaniu dla dużych firm. Niesłusznie.

      Choć Python nie obsługuje wszystkich zastosowań (jak żaden język programowania), z powodzeniem wykorzystano go w bardzo różnych projektach na dużą skalę. Lista dużych firm stosujących ten język w swoich projektach jest nieskończona i obejmuje takie nazwy jak Google, Netflix, Deloitte, IBM, NASA, PayPal, Microsoft czy Spotify.

      Jeszcze do niedawna opór wobec Pythona w dużych firmach był niemal namacalny. Globalne organizacje wolały w swoich projektach bardziej konserwatywne technologie, takie jak C# czy Java. 

      Obecność Pythona w dużych firmach zaczęła jednak szybko rosnąć, gdy przedsiębiorstwa otworzyły się na otwarte, chmurowe i tworzone przez społeczność platformy (patrz choćby Microsoft) oraz zaczęły wdrażać przełomowe technologie wymagające nowego podejścia do programowania. W efekcie Python nadrabia dziś dystans do innych języków, stając się językiem pierwszego wyboru w wielu projektach dużych firm. 

      Jakie cechy Pythona przekonały przedsiębiorstwa do szerszego korzystania z tego języka? Oto kilka z nich:

      • Szybkość: potrzeba szybkiego pisania kodu i nastawienie na informację zwrotną nie są już domeną startupów. W mocno konkurencyjnym świecie dużych firm brak innowacji oznacza przegraną. Python daje czołowym graczom możliwość szybkiego wypuszczania nowych funkcji i natychmiastowego wprowadzania zmian.
      • Popularność: ponieważ społeczność Pythona jest ogromna, przedsiębiorstwom znacznie łatwiej zebrać wymarzony, doświadczony zespół do swoich projektów. Co więcej, dzięki łatwemu dostępowi do doświadczonych specjalistów Pythona firmy mogą swobodnie skalować zasoby w górę i w dół, zależnie od bieżących potrzeb.
      • Elastyczność: podobnie jak startupy, przedsiębiorstwa chętnie korzystają z wszechstronności Pythona. Ponieważ język służy wielu celom, jeden zespół może używać go wielokrotnie do realizacji różnych celów automatyzacyjnych i optymalizacyjnych. To spora zaleta, która pomaga szybko usprawniać procesy biznesowe. 

      NAJWAŻNIEJSZE WNIOSKI

      • Python jest szeroko używany w branżach opierających się na ogromnych ilościach danych.
      • Język lubią też osoby nieprogramujące, ze względu na jego wysoką czytelność.
      • Ochrona zdrowia, farmacja oraz finanse i bankowość: wszystkie korzystają na Pythonie.
      • Wiele platform e-commerce i marketingu cyfrowego opiera się na Pythonie.
      • Jednym z największych beneficjentów technologii Pythona jest branża nieruchomości.
      • Python jest popularny wśród startupów, które korzystają z jego szybkości i elastyczności.
      • Jego użycie w aplikacjach dużych firm stale rośnie.

      05 Python: środowisko technologiczne

      W pierwszym kwartale 2021 roku The Python Package Index, oficjalne repozytorium Pythona, wymieniał blisko 300 000 projektów, 2,5 miliona wydań i 4 miliony plików. Te liczby dowodzą dwóch rzeczy. Po pierwsze, Python jest wszędzie. Po drugie, policzenie stale rosnącej liczby jego frameworków, bibliotek i pakietów graniczy z niemożliwością. 

      Dlatego nawet nie próbujemy. Zamiast tego pokrótce przejdziemy przez najpopularniejsze i najczęściej używane frameworki, narzędzia i biblioteki Pythona. Te, których ogromne organizacje używają, by usprawnić dostarczanie aplikacji na dużą skalę, a zwinne startupy, by błyskawicznie wypuszczać MVP i świetne aplikacje na rynek. 

      Bez zbędnych wstępów: oto wszystko, co musisz wiedzieć o stosie technologicznym Pythona, gdy rozmawiasz z programistami i architektami systemów. Miłej lektury!

      Framework, biblioteka, toolkit: jaka jest różnica? 

      Python ma mnóstwo wyspecjalizowanych narzędzi, które czynią pracę zespołów łatwiejszą, szybszą i wygodniejszą. Zanim jednak je omówimy, uporządkujmy terminologię. Oto krótkie przypomnienie różnic między frameworkiem, biblioteką i toolkitem.

      Framework

      Jak sama nazwa wskazuje, frameworki dają programistom szkielet architektury do budowy oprogramowania. Niczym fundamenty domu przychodzą z gotowym kodem szablonowym, podstawowym przepływem programu i komponentami niskiego poziomu. Inżynierowie używają ich, by kodować efektywniej i szybciej. 

      Korzystając z frameworków, programiści Pythona mogą skupić się wyłącznie na logice aplikacji, zamiast programować rutynowe procesy, które są takie same w różnych projektach. Frameworki pomagają też zadbać o to, by kod był łatwy w utrzymaniu i niezawodny.

      → → Listę najpopularniejszych i najszerzej używanych frameworków webowych Pythona znajdziesz w sekcji Frameworki webowe Pythona.

      Biblioteka

      Biblioteka to zbiór pakietów (przydatnych modułów i funkcji), które programiści mogą wywoływać ze swojego kodu, żeby usprawnić pracę. Na przykład popularne biblioteki Pythona ułatwiają tworzenie programów i funkcji związanych z data science i wizualizacją, obliczeniami, obróbką obrazów, uczeniem maszynowym czy przetwarzaniem języka naturalnego. 

      Podobnie jak frameworki, biblioteki Pythona pomagają programistom nie wymyślać koła na nowo i nie pisać za każdym razem tych samych fragmentów kodu od zera. Dzięki temu skracają też czas pisania i zmniejszają rozmiar kodu. Frameworki są jednak mocno rozszerzalne i mogą składać się z zestawu bibliotek. Biblioteki z kolei są zwykle mniej złożone i można ich używać wybiórczo. 

      Toolkit

      Toolkit to pojęcie bardziej abstrakcyjne, które oznacza w istocie zestaw narzędzi dla programistów przyspieszających i usprawniających pisanie kodu. Toolkity mogą obejmować pakiety i biblioteki, a także ogólne metody i funkcje. 

      Python: IDE, SDK i API

      Poza powyższymi trzema pojęciami przy prowadzeniu projektu w Pythonie natkniesz się też na terminy IDE, SDK i API. 

      • IDE oznacza zintegrowane środowisko programistyczne (Integrated Development Environment), czyli aplikację, która optymalizuje pracę programisty dzięki automatyzacji. Choć nie jest niezbędne, mocno skraca czas i wysiłek przy takich czynnościach jak refaktoryzacja kodu czy debugowanie.
      • SDK to skrót od Software Development Kit, czyli zestawu oprogramowania używanego do tworzenia aplikacji. Może obejmować przykłady kodu, dokumentację, biblioteki, debuggery i inne narzędzia przydatne przy budowaniu i dostarczaniu kodu na konkretną platformę.
      • API oznacza Application Programming Interface. To definicja protokołu, którego można użyć do wymiany danych między dwoma fragmentami kodu. API określają dozwolone formaty danych, rodzaje żądań, jakie mogą wysyłać obie aplikacje, i inne konwencje zapewniające sprawną i bezpieczną komunikację.

      Frameworki webowe Pythona

      Zanim przejrzymy konkretne frameworki, warto zwrócić uwagę na jedno drobne rozróżnienie. Frameworki Pythona zwykle dzielą się na dwie kategorie: frameworki micro-stack i frameworki full-stack

      • Frameworki micro-stack, zwane też mikroframeworkami, są zwarte, proste, łatwe w użyciu i najlepiej nadają się do szybkiego budowania małych aplikacji, MVP i programów będących częścią większego projektu. Kilka przykładów mikroframeworków to Flask, CherryPy czy Web.py.
      • Frameworki full-stack są z natury o wiele potężniejsze i bardziej złożone. Dają programistom wszystko, czego potrzeba, żeby zbudować pełnoprawne aplikacje od podstaw. Poza obszernym zestawem bibliotek obejmują też inne usługi, takie jak silniki szablonów i komponenty do zarządzania danymi. Popularne pythonowe frameworki full-stack to Django, Web2py i TurboGears.

      Python - Infographic 2 a

      Django. Wszechstronny framework „z bateriami w zestawie”, który ma wszystko, czego programiści potrzebują do budowy aplikacji webowych w Pythonie.


      Najlepszy do: szybkiego tworzenia kompletnych aplikacji webowych przy mniejszej ilości kodu
      Funkcje: routing, szablony, administracja bazą danych, wbudowane uwierzytelnianie, formularze 
      Zalety: kompletny, szybki, skalowalny
      Full-stack czy micro-stack: full-stack
      Kto go używa: The Washington Post, Udemy, YouTube, Instagram, NASA, Pinterest

      Python - Infographic 2 b

      Web2py powstał, żeby umożliwić szybkie tworzenie skalowalnych, bezpiecznych i przenośnych aplikacji webowych opartych na bazach danych.

      Najlepszy do: aplikacji do zbierania i analizy danych
      Funkcje: debugger, edytor kodu, system zgłoszeń, narzędzie wdrożeniowe, obsługa żądań HTTP, ciasteczka, silnik internacjonalizacji
      Zalety: łatwość wdrożenia, wieloplatformowość, obsługa wysyłania i pobierania ogromnych plików
      Full-stack czy micro-stack: full-stack
      Kto go używa: PikHotel, Groupthink, Formatics, Tech Fuel

      Python - Infographic 2 c

      Turbogears pozwala inżynierom Pythona ułatwić sobie tworzenie aplikacji webowych i ograniczyć pisanie kodu dzięki wielu wtyczkom i standardowym komponentom. 


      Najlepszy do: blogów, wiki, łatwych w utrzymaniu aplikacji opartych na bazach danych
      Funkcje: szablony, mapper, debugger, autoryzacja, CRUD, sesje, cache, wtyczki 
      Zalety: obsługa wielu baz danych, skalowalność, szybkość
      Full-stack czy micro-stack: full-stack (ale może działać też jako mikroframework)
      Kto go używa: SourceForge, 1000 Corks, Bisque, The Voice of Turkey

      Python - Infographic 2 d

      Flask to świetny wybór do mniejszych, zwinnych i mniej złożonych aplikacji, bo nie narzuca programistom struktury projektu.

      Najlepszy do: małych i średnich projektów, pilnych prac
      Funkcje: routing adresów URL, obsługa żądań i błędów, szablony, testy jednostkowe, wsparcie dla Google App Engine, debugger, serwer deweloperski
      Zalety: prosty, elastyczny, rozszerzalny
      Full-stack czy micro-stack: micro-stack
      Kto go używa: Disqus, Eventbrite, Netflix, Uber

      Python - Infographic 2 h

      Tornado, pythonowy framework webowy i biblioteka sieciowa, został zaprojektowany do obsługi tysięcy procesów asynchronicznych.


      Najlepszy do: budowania aplikacji obsługujących wielu jednoczesnych klientów
      Funkcje: szablony webowe, uwierzytelnianie użytkowników, tłumaczenie i interpretacja, biblioteka sieciowa, biblioteka korutyn, wsparcie dla uwierzytelniania i autoryzacji przez zewnętrznych dostawców 
      Zalety: wysoka wydajność, jednoczesne połączenia, mały rozmiar
      Full-stack czy micro-stack: micro-stack
      Kto go używa: Zalando, Facebook, Delivery Hero, Uploadcare

      Python - Infographic 2 e

      Bottle, pierwotnie stworzony do budowania webowych API, dystrybuowany jest jako pojedynczy moduł w jednym pliku, co pozwala szybko i łatwo tworzyć proste aplikacje webowe.


      Najlepszy do: prostych aplikacji do użytku własnego, projektów prototypowych
      Funkcje: wbudowany serwer webowy, narzędzia, szablony, routing
      Zalety: lekki, prosty, może działać samodzielnie
      Full-stack czy micro-stack: micro-stack
      Kto go używa: Netflix, Scommerce, Paysa

      Python - Infographic 2 f

      CherryPy to „minimalistyczny pythonowy framework webowy”, który może działać samodzielnie albo uruchomić się na dowolnym frameworku obsługującym Pythona.


      Najlepszy do: startupów, prototypowania
      Funkcje: kodowanie, cache, sesje, uwierzytelnianie, treści statyczne, wbudowane wsparcie profilowania i testów
      Zalety: mocno konfigurowalny, elastyczny, wieloplatformowy
      Full-stack czy micro-stack: micro-stack
      Kto go używa: Netflix, Hulu, YouGov Global, Learnit

      Python - Infographic 2 g

      Zdaniem twórców Falcon nadaje się do budowania wydajnych mikroserwisów, responsywnych backendów aplikacji i frameworków wyższego poziomu.


      Najlepszy do: API RESTful i mikroserwisów
      Funkcje: routing, testy jednostkowe, obsługa wyjątków, odpowiedzi z błędami HTTP 
      Zalety: rozszerzalność, wieloplatformowość, znakomita wydajność
      Full-stack czy micro-stack: micro-stack
      Kto go używa: Rackspace, LinkedIn, Leadpages, Wargaming

      Python - Infographic 2 i

      Największe atuty Pyramid to elastyczność i skalowalność. Programiści mogą od razu zbudować szkielet architektury i rozwijać go dalej, stopniowo dodając funkcje i komponenty.


      Najlepszy do: aplikacji specjalistycznych i dziedzinowych każdej wielkości
      Funkcje : generowanie adresów URL, szablony, walidacja struktury HTML, uwierzytelnianie, zdarzenia i subskrybenci 
      Zalety: minimalistyczny, konfigurowalny, stabilny
      Full-stack czy micro-stack: micro-stack
      Kto go używa: SurveyMonkey, Mozilla, Yelp, Dropbox, Substance-D

      Szacowanie kosztów projektów w Pythonie

      Poniżej wypisaliśmy kluczowe obszary kosztowe, które trzeba uwzględnić przy szacowaniu budżetu kolejnej aplikacji opartej na Pythonie. 

      Rodzaj i zakres projektu

      Pierwszą rzeczą przy ocenie każdego projektu programistycznego jest zakres prac. Żeby przygotować ogólny obraz potrzebnej inwestycji, jasno opisz docelowy produkt wraz z jego kluczowymi funkcjami. Pomoże to również określić harmonogram i czas trwania projektu, które bezpośrednio wpływają na budżet. 

      O koszcie decyduje też rodzaj aplikacji. Na przykład platformy bankowe czy zdrowotne będą wymagać dodatkowych funkcji zapewniających podwyższone bezpieczeństwo i zgodność z przepisami. Rozbudowana platforma e-commerce potrzebuje integracji z AI dla spersonalizowanych rekomendacji i innych funkcji nastawionych na klienta. I tak dalej.

      Funkcje i złożoność

      Gdy masz już szacunek z grubsza, możesz zejść do poszczególnych funkcji, żeby dokładnie rozbić koszty. Przygotuj kompletną listę funkcji docelowych. Ich zakres i złożoność bezpośrednio wpływają na czas realizacji, wielkość zespołu, a w konsekwencji na koszt projektu. Standardowe funkcjonalności wymagają mniej pracy i pieniędzy niż rozwiązania szyte na miarę. Im bardziej wyrafinowane i unikalne funkcje, tym większej wiedzy o Pythonie wymagają. Na całkowity koszt wpłynie też poziom doświadczenia Twojego zespołu. 

      Nie zapomnij o priorytetach. Ułatwią przycięcie wymagań, jeśli łączny szacunek przekroczy zaplanowany budżet. Przygotowanie szczegółowej specyfikacji funkcji na starcie pomoże ograniczyć nagłe wydatki w trakcie prac. 

      Narzędzia i licencje

      Rzetelna wycena projektu w Pythonie (jak zresztą każdego projektu programistycznego) musi uwzględniać koszt narzędzi użytych do jego realizacji. W przeciwieństwie do niektórych innych technologii Python ma darmową licencję; dostosowanie klas generycznych nic nie kosztuje, a zdecydowana większość narzędzi i bibliotek Pythona jest bezpłatna. Mimo to warto określić potrzebny zestaw narzędzi na starcie, przynajmniej w zakresie kluczowych funkcji.

      Na tym etapie trzeba też pamiętać o zewnętrznych czynnikach kosztowych związanych z tworzeniem każdej aplikacji webowej czy mobilnej. Należą do nich nazwa domeny, serwer hostingowy i szablony graficzne (chyba że chcesz stworzyć własny projekt od zera, co jeszcze podniesie koszt). 

      Design, wytwarzanie i QA

      Ten czynnik obejmuje kilka kluczowych etapów: od researchu, przez projekt architektury i wireframing, aż po dostarczenie makiet i finalny start projektu na środowisku produkcyjnym. W zależności od ustalonej wielkości i zakresu projektu Twój zespół Pythona będzie liczył od trzech do ponad dwunastu osób. 

      Dlaczego trzy to minimum? Jeśli nie mówimy o dostarczeniu jednej czy dwóch dodatkowych funkcji albo małym projekcie rozszerzającym, do sprawnej pracy potrzebujesz project managera, programisty i specjalisty QA. 

      W miarę jak projekt rośnie i staje się bardziej złożony, pojawi się potrzeba kolejnych ról: projektanta UI/UX, architekta, analityka biznesowego oraz kolejnych programistów i testerów. Rzecz jasna stawki każdego z tych specjalistów Pythona wpływają na koszt projektu. Ponieważ większość z nich nie będzie zaangażowana na pełen etat, wielu firmom bardziej opłaca się część tych ról zlecić na zewnątrz.

      →→ Żeby sprawdzić standardowe stawki specjalistów Pythona na świecie, przejdź do sekcji Stawki programistów Python

      Warto też zauważyć, że duży wybór bibliotek, frameworków i innych wbudowanych zasobów Pythona dodatkowo zmniejsza złożoność prac i obniża końcowe koszty projektu. Dlatego szybkość pracy w Pythonie czyni go idealnym kandydatem do szybkiego i taniego wypuszczania prototypów oraz MVP. Ta zaleta traci jednak na znaczeniu w ogromnych projektach z wieloma zespołami, gdzie coraz mocniej wchodzą w grę inne czynniki.

      Model rozliczeń w projekcie programistycznym 

      Jeśli zdecydujesz się zatrudnić programistów Python do realizacji projektu, kolejnym czynnikiem kosztowym będzie rodzaj umowy. W zależności od Twoich wymagań i zakresu projektu możesz wybrać jeden z trzech standardowych modeli współpracy albo postawić na wariant hybrydowy:

      • Stała cena . Ustalasz łączną cenę projektu na podstawie zdefiniowanego i zatwierdzonego zakresu prac oraz uzgodnionego terminu. W tym układzie płacisz zespołowi dokładnie za zamówioną pracę, nie mniej i nie więcej. Stała cena sprawdza się zwykle w małych, krótkich projektach o jasno określonym zakresie, dobrze opracowanych wymaganiach i ograniczonym budżecie. Daje Ci jednak niewielką kontrolę nad procesem i jest mało elastyczna. 
      • Time and material (T&M). Tutaj wynagradzasz zespół za liczbę godzin spędzonych na projekcie i poniesione koszty (licencje, narzędzia zewnętrzne, podróże itd.). To bardzo elastyczny model, idealnie pasujący do projektów zwinnych, dający Ci pełną kontrolę nad zakresem i zmianami. Takie podejście umożliwia dynamiczne podejmowanie decyzji, ale w zamian wymaga znacznie większego zaangażowania z Twojej strony. Ze względu na dużą elastyczność time and material zwykle bardziej wymaga pilnowania harmonogramu i budżetu.
      • Outsourcing (dedykowany zespół). Wreszcie trzeci model współpracy sprowadza się do powiększenia zespołu bez kłopotów z rekrutacją i HR. Podobnie jak w T&M rozliczenie opiera się na stawkach godzinowych wykonawców, z doliczoną opłatą za zarządzanie. Wynajęty zespół pracuje pod Twoim kierunkiem i można go łatwo skalować w górę i w dół, zależnie od bieżących potrzeb projektu. Choć zwykle wymaga największego budżetu, ten rodzaj umowy jest znakomitym wyborem przy długoterminowych projektach o szerokim zakresie. Zamiast przypadkowych osób dorzucanych doraźnie do prac dostajesz starannie dobrany, dedykowany zespół specjalistów, którzy szybko poznają cele i oczekiwania Twojej firmy i stają się solidnym rozszerzeniem Twojej kadry.

      Zakres integracji

      Integracja oprogramowania to jeden z najbardziej pracochłonnych i kosztownych etapów wytwarzania. Sam ten proces może kosztować od 10 000 dolarów w górę. Rozbudowane integracje w dużych firmach mogą sięgać 50 000-100 000 dolarów! Poza integracją z wieloma zewnętrznymi systemami i platformami rozbudowane aplikacje w Pythonie muszą zapewnić komponent bazodanowy oraz szybką i bezpieczną autoryzację i uwierzytelnianie dostępu.

      Na szczęście pomysłowa konstrukcja Pythona czyni go wyjątkowo skutecznym w integracji z innymi językami (jak Java, C++, Rust i inne). Zwykle programiści Pythona nie muszą przebudowywać kodu, żeby się z nimi komunikować. Zamiast tego mogą po prostu wykorzystać istniejące pythonowe API i interfejsy języków obcych. 

      Tak samo jest z aplikacjami i interfejsami zewnętrznymi. Python obsługuje różne protokoły webowe, w tym JSON, HTML i XML. Jeśli musisz podpiąć aplikację do PayPala czy Amazona, obsłużyć system fakturowania albo uzyskać dostęp do plików w Dropboksie czy OneDrivie, Python użyje do tego bezpiecznych API. Jeśli chodzi o połączenia z bazami danych, język integruje się z nimi bardzo sprawnie dzięki gotowym bibliotekom.

      Utrzymanie

      Często pomijane utrzymanie należy do kluczowych czynników wpływających na koszt każdego projektu programistycznego. Aplikacje webowe i mobilne trzeba regularnie aktualizować, żeby zapewnić płynne doświadczenie użytkownika i wysokie bezpieczeństwo. To oznacza dodatkowe koszty po starcie oprogramowania. 

      Minimum, jakie musisz uwzględnić, to regularne aktualizacje aplikacji, naprawianie problemów pojawiających się w nowych wersjach oraz ulepszenia designu i użyteczności niezbędne, by nadążać za zmieniającymi się preferencjami użytkowników i trendami. Pamiętaj też, że jeśli Twoja aplikacja jest skalowalna, przyszłe aktualizacje i rozszerzenia trzeba będzie wycenić osobno. 

      Rezerwa

      Na koniec nie zapomnij uwzględnić w wycenie odpowiedniej rezerwy budżetowej. Powinna być na tyle duża, by pokryć zarówno „znane niewiadome”, jak i „nieznane niewiadome”, które mogą pojawić się w trakcie projektu. W zależności od złożoności i czasu trwania projektu rezerwa może wynosić 20-50% całkowitego szacowanego budżetu. 

      Frameworki testowe Pythona

      Python oferuje wybór narzędzi do automatyzacji testów, które wykonują plany testowe, uruchamiając wcześniej skonfigurowane skrypty. Oto kilka pythonowych frameworków testowych, które warto znać:

      • Robot.  Prosty, otwarty i rozszerzalny framework ogólnego przeznaczenia z solidnym ekosystemem bibliotek i narzędzi do testów akceptacyjnych i wytwarzania sterowanego testami. Obsługuje automatyzację na różnych platformach dla aplikacji webowych, mobilnych i desktopowych. Można go też wykorzystać do robotycznej automatyzacji procesów. 
      • PyUnit (unittest). Domyślny pythonowy framework do testów jednostkowych, PyUnit, dostarczany jest wraz ze standardową biblioteką Pythona. Zainspirowany javowym JUnit, oferuje znajome funkcje, takie jak agregacja testów, współdzielenie kodu testów czy niezależność testów.
      • doctest. Kolejny standardowy framework testowy, doctest, to uzupełniający moduł, który pozwala łatwo generować testy, zamieniając komentarze Pythona w przypadki testowe. To skuteczny i wygodny sposób sprawdzania podstawowych scenariuszy i prostych funkcji.
        Nose2. Nose2 to test runner ułatwiający pracę z testami napisanymi w PyUnit. Ma przyjazną, modułową architekturę wtyczek i oferuje bogate możliwości konfiguracji. Można na przykład testować tylko wybrane funkcje oprogramowania albo uruchamiać testy wyłącznie na określonych danych wejściowych.
      • Pytest. Choć ten samodzielny framework jest uniwersalny, szczególnie dobrze sprawdza się w testach funkcjonalnych i testach API. Mimo że jest bardzo prosty i łatwy w użyciu, radzi sobie z różnymi scenariuszami testowymi: od bardzo podstawowych po złożone testy funkcjonalne.
      • Testify. Testify to minimalistyczny i elegancki mikroframework testowy, który stara się uprościć proces testowania. Wyróżnia się prostą składnią i rozszerzalnymi wtyczkami, dzięki którym testy jednostkowe, integracyjne i systemowe są łatwe.
      • Lettuce. Stworzony jako narzędzie do testów w podejściu behavior-driven development, Lettuce wykonuje zwykłe, funkcjonalne opisy, żeby zautomatyzować testowanie projektów w Pythonie. Narzędzie jest łatwe, skalowalne i intuicyjne. Nadaje się dla osób bez doświadczenia programistycznego.

      Biblioteki Pythona

      Ekosystem narzędzi Pythona jest tak ogromny, że wymienienie wszystkich, a nawet większości bibliotek graniczy z niemożliwością. Zamiast tego przedstawiamy przegląd najlepszych bibliotek i pakietów Pythona, na jakie prawdopodobnie natkniesz się w projektach, uporządkowany według obszaru zastosowania. 

      Biblioteki Pythona do analizy danych

      Jednym z obszarów, w którym biblioteki Pythona znajdują szerokie zastosowanie, jest analiza danych, a szerzej data science. Raz za razem Python okazuje się najpopularniejszym językiem programowania wśród specjalistów data science. Python i data science pasują do siebie z kilku powodów, w tym ze względu na elastyczność języka, wszechstronność, przyjazność dla użytkownika i efektywność pisania kodu.

      Python oferuje mnóstwo specjalistycznych pakietów i bibliotek do zbierania, eksploracji, przetwarzania i wizualizacji danych. Razem pozwalają operować na wszelkiego rodzaju danych w różnych formatach. Oto kilka uznanych bibliotek Pythona umożliwiających złożone operacje na danych:

      NumPy

      NumPy to biblioteka Pythona do pracy z dużymi, wielowymiarowymi tablicami. Przyspiesza przetwarzanie tablic i wspiera programistów w złożonych implementacjach matematycznych. Co istotne, mnóstwo innych bibliotek, w tym TensorFlow, PyTorch, Matplotlib czy Pandas, wykorzystuje ją jako podstawę swoich obliczeń. 

      Cechy:

      • Szeroko używana w data science oraz w projektach uczenia maszynowego.
      • Coraz częściej znajduje zastosowanie w obszarze wizualizacji danych.
      • Otwartoźródłowa, rozwijana i utrzymywana publicznie przez społeczność GitHuba.
      • Bardzo dobrze współpracuje z szeroką gamą sprzętu, platform i bibliotek.
      • Stworzona z myślą o najwyższej wydajności, zachowuje prostą i przystępną składnię Pythona.

      Typowe zastosowania: obliczenia kwantowe, statystyka, grafy i sieci, wnioskowanie bayesowskie, modelowanie symulacyjne

      Branże: fizyka, matematyka, psychologia poznawcza, chemia, bioinformatyka, analityka sportowa, astronomia

      Pandas

      Nazywana czasem „SQL-em Pythona”, Pandas to narzędzie do analizy i przetwarzania danych, zoptymalizowane pod kątem wydajności i zaprojektowane z myślą o łatwym użyciu. Obsługuje dwuwymiarowe tabele danych w Pythonie, pozwalając wczytywać, wybierać, grupować i filtrować dane oraz wykonywać na nich różne operacje.

      Cechy:

      • To fundamentalna biblioteka Pythona do analizy danych i statystyki.
      • Udostępnia szeroki zestaw wbudowanych narzędzi wejścia i wyjścia, co ogranicza pisanie kodu. 
      • Obsługuje różne formaty plików, od plików tekstowych i Excela po bazy SQL i JSON.
      • Inteligentne etykietowanie umożliwia wycinanie, indeksowanie i wybieranie podzbiorów z ogromnych zbiorów danych.
      • Pandas jest darmowa i wydana na licencji BSD.

      Typowe zastosowania: ilościowa analiza danych, przetwarzanie danych, obsługa big data 

      Branże: finanse, księgowość, ekonomia, neuronauka, statystyka, reklama, analityka internetowa

      Pillow

      Pillow, czyli Python Imaging Library, Pillow pozwala otwierać, zapisywać i przetwarzać obrazy. Obsługuje różne formaty plików graficznych i udostępnia wszystkie podstawowe funkcje obróbki obrazu. Należą do nich filtrowanie i poprawianie obrazów, obsługa przezroczystości, konwersja formatów, praca z tekstem i tak dalej.

      Cechy:

      • Pillow powstał jako fork repozytorium Python Imaging Library, żeby wspierać Pythona 3.
      • Działa na wszystkich głównych systemach operacyjnych i obsługuje różne interfejsy wyświetlania. 
      • Poza podstawowymi funkcjami Pillow dostarcza też histogramy do analizy statystycznej. 

      Typowe zastosowania: obróbka obrazów, analiza statystyczna

      Branże: badania i rozwój, szkolnictwo wyższe, ICT, usługi finansowe, księgowość

      Matplotlib

      Jeśli chodzi o bardziej zaawansowaną wizualizację danych, w wielu projektach matplotlib jest właściwym wyborem. Ta rozbudowana biblioteka zbudowana na tablicach NumPy pozwala tworzyć w Pythonie złożone, wysokiej jakości i interaktywne wizualizacje. Choć sam matplotlib jest ogromny i liczy tysiące linii kodu, sprowadza tworzenie dobrych wykresów do kilku poleceń.

      Cechy:

      • Matplotlib potrafi generować między innymi wykresy liniowe, wykresy 3D, wykresy konturowe i histogramy. 
      • Oferuje szerokie możliwości konfiguracji, np. stylów linii, czcionek, schematów kolorów itd.
      • Można go rozszerzać narzędziami zewnętrznymi o dodatkowe funkcje.
      • Dla zapewnienia niezawodnej wydajności biblioteka opiera się na NumPy.
      • Matplotlib współpracuje z różnymi backendami i platformami.

      Typowe zastosowania: wizualizacja i modelowanie danych, szybka analiza danych, GUI

      Branże: wydawnictwa, ubezpieczenia, badania, ochrona zdrowia, e-commerce, media społecznościowe

      Biblioteki Pythona do uczenia maszynowego

      Kolejna grupa bibliotek Pythona pomaga programistom budować solidne platformy analityki predykcyjnej i uczenia maszynowego. Obejmuje też narzędzia niezbędne przy tworzeniu oprogramowania i komponentów do przetwarzania języka naturalnego. Przyjrzyjmy się najpopularniejszym z nich.

      TensorFlow

      Jedno z najpopularniejszych narzędzi Pythona, TensorFlow, to kompletna biblioteka deep learningu, która ułatwia tworzenie i trenowanie modeli uczenia maszynowego. Powstała, by definiować i wykonywać obliczenia na tensorach, czyli podstawowej strukturze danych sieci neuronowych. Ten szeroki i elastyczny ekosystem narzędzi, bibliotek i zasobów społeczności wykorzystują głównie badacze i programiści do napędzania algorytmów ML i wykonywania złożonych operacji obliczeniowych. 

      Cechy:

      • Intuicyjny i szybki w użyciu dzięki wysokopoziomowym API oraz częstym aktualizacjom i wydaniom.
      • Bardzo elastyczny, z modułami, których można używać samodzielnie albo łączyć ze sobą.
      • Zaprojektowany do pracy z różnymi backendami, z modelami wdrażanymi lokalnie i w chmurze.
      • Stworzony przez Google, jest otwarty i ma ogromną społeczność kontrybutorów.
      •  Niezwykle popularny: korzystają z niego między innymi Twitter, Uber, LinkedIn, Google, Coca-Cola, Lenovo, Xiaomi, Airbnb i PayPal, obok tysięcy innych firm. 

      Typowe zastosowania: opisywanie obrazów, klasyfikacja danych, rozpoznawanie mowy, aplikacje tekstowe, wykrywanie wideo i ruchu, głębokie sieci neuronowe

      Branże: produkcja, ochrona zdrowia, e-commerce i handel detaliczny, telekomunikacja, ICT, transport i logistyka, fintech i bankowość, media społecznościowe

      Scikit-learn

      Kolejną kluczową biblioteką Pythona w kontekście uczenia maszynowego jest Scikit-learn. Udostępnia zestaw dedykowanych metod do predykcyjnej analizy danych, w tym klasteryzację, regresję, klasyfikację danych, wybór modelu i wiele innych. Pod warunkiem że programista korzysta z dobrej jakości danych, właściwie dobranych, oczyszczonych i sformatowanych, uruchamianie algorytmów uczenia maszynowego w Scikit-learn jest całkiem proste.

      Cechy:

      •  Scikit-learn skupia się na modelowaniu danych i obsługuje większość algorytmów uczenia nadzorowanego i nienadzorowanego. 
      • To idealne narzędzie do zaawansowanego przetwarzania obrazów, na przykład do ekstrakcji cech.
      • Biblioteka korzysta z NumPy, sciPy i matplotliba.
      • Stawia na wygodę użytkownika, minimalizując zależności i dostarczając funkcje od ręki.
      • Wśród użytkowników są betaworks, Spotify, Change.org, JPMorgan, Evernote i Booking.com

      Typowe zastosowania: analityka predykcyjna, rozpoznawanie obrazów, wykreślanie danych, drzewa decyzyjne, wykrywanie wartości odstających, ekstrakcja tematów, modelowanie danych, prototypowanie

      Branże: nauka i uczelnie, finanse i bankowość, e-commerce, media cyfrowe, ochrona zdrowia i diagnostyka obrazowa, nauka online, inżynieria oprogramowania, sprzedaż i marketing

      Keras

      Keras to prosta i elastyczna biblioteka Pythona, zaprojektowana tak, by zmniejszyć obciążenie poznawcze użytkownika i uprościć pisanie kodu przy tworzeniu wysokopoziomowych sztucznych sieci neuronowych. Ta bardzo produktywna biblioteka pełni rolę interfejsu dla TensorFlow, ułatwiając tworzenie i ocenę modeli deep learningu. 

      Cechy:

      • Zasady przewodnie Kerasa to minimalizm, modułowość i elastyczność.
      • Zaprojektowana z myślą o szybkim eksperymentowaniu, biblioteka świetnie nadaje się do prototypowania.
      • Kerasa można łatwo rozszerzać własnymi klockami.
      • Pozwala uruchamiać modele głębokie na urządzeniach mobilnych, w sieci i na maszynach wirtualnych.
      • Wśród użytkowników Kerasa są NASA, CERN, Facebook, Verizon i JPMorgan.

      Typowe zastosowania: niskopoziomowe operacje na tensorach, skalowanie obliczeń, deep learning, wizja komputerowa, NLP, prototypowanie

      Branże: szkolnictwo wyższe i badania, medycyna, biotechnologia, produkcja oprogramowania, telekomunikacja, startupy 

      PyTorch

      Pierwotnie stworzony przez laboratorium AI Research Facebooka, PyTorch ma wiele podobieństw (i wspólnych komponentów) z TensorFlow. Solidny, a przy tym elastyczny, oferuje szybkie i zwinne rozwiązanie do dynamicznych projektów z zakresu deep learningu i NLP. Natywnie pythonowy z założenia, przejmuje to, co w tym języku najlepsze: modułowość, prostotę i oszczędne podejście do wytwarzania oprogramowania. 

      Cechy:

      • Podobnie jak wiele innych pythonowych bibliotek ML, PyTorch kładzie nacisk na elastyczność i łatwość użycia.
      • Można go rozszerzać innymi bibliotekami i pakietami, żeby zyskać kolejne funkcje.
      • PyTorch umożliwia płynne przechodzenie między CPU a GPU. 
      • Daje też solidną platformę do generowania dynamicznych grafów obliczeniowych.
      • Wśród firm używających PyTorcha są Facebook, Microsoft, Udacity, Salesforce i Airbnb.

      Typowe zastosowania: wizja komputerowa, NLP, tłumaczenie maszynowe, wsparcie dialogu, sieci neuronowe, prototypowanie AI

      Branże: edukacja, tworzenie SaaS, matematyka, lingwistyka, onkologia, produkcja samochodów 

      Python - table 3b

      Inne biblioteki Pythona warte poznania

      • Requests: zgrabna i prosta standardowa biblioteka Pythona do wykonywania i konfigurowania żądań HTTP
      • Theano: biblioteka i kompilator zbudowane na NumPy do definiowania, optymalizowania i obliczania wyrażeń matematycznych operujących na wielowymiarowych tablicach. 
      • StatsModels: moduł obsługujący analizę i estymację modeli statystycznych, eksplorację danych statystycznych oraz testowanie statystyczne. 
      • Scipy: ekosystem obejmujący zestaw pakietów do obliczeń naukowych, wykresów 2D, struktur danych i analizy oraz obliczeń o wysokiej wydajności. 
      • Plotly: ta biblioteka służy do tworzenia interaktywnych wykresów i dashboardów w 
      • Beautiful Soup: pythonowy parser HTML używany do łatwego pozyskiwania informacji ze stron internetowych. 
      • Scrapy: jak sama nazwa wskazuje, to narzędzie jest w użyciu dość podobne do Beautiful Soup. Oferuje jednak kilka dodatkowych funkcji. 

      Toolkity GUI dla Pythona

      Na koniec warto wspomnieć o kilku frameworkach i toolkitach GUI dla Pythona. Programiści używają ich do tworzenia efektownych, interaktywnych interfejsów użytkownika dla stron, platform i aplikacji, więc szkoda byłoby je pominąć!

      Tkinter

      Tkinter, standardowa biblioteka GUI dla Pythona, służy do tworzenia elementów interfejsu, takich jak menu, przyciski, pola danych i inne. Jest wieloplatformowa i korzysta z natywnych elementów systemu, dzięki czemu tworzone interfejsy zachowują natywny, naturalny wygląd. 

       

      Zalety: dostępny od ręki, wydajny, dobrze udokumentowany

      Wady: słabe możliwości personalizacji, przestarzały wygląd, nie nadaje się do złożonych interfejsów

      PyGObject

      Ten pakiet rozszerzeń to zestaw wzorców adaptera dających dostęp do bibliotek GObject (takich jak GTK, GStreamer, GIO i inne) bez modyfikowania ich kodu źródłowego.

       

      Zalety: nowoczesny i natywny wygląd, oparty na znanym projekcie GNOME

      Wady: działa tylko w systemach obsługujących GNOME

      PyQt

      PyQt, dostępny jako darmowa wtyczka, to wiązanie wieloplatformowego frameworka Qt. Ma bogaty zestaw wbudowanych widgetów i pozwala na szeroką personalizację.

       

      Zalety: łatwy w użyciu, umożliwia pracę wieloplatformową, obsługa baz SQL

      Wady: brak dokumentacji dedykowanej Pythonowi, stroma krzywa uczenia się, tylko Python 3

       

      PySide

      PySide pod wieloma względami przypomina PyQt. Licencjonowany na LGPL nie wymaga udostępniania kodu źródłowego własnych aplikacji.

       

      Zalety: łatwy do wykorzystania w projektach komercyjnych, wsparcie dla Pythona 2.7, wbudowane widgety

      Wady: wymaga znajomości C++, ograniczone materiały do nauki

      Kivy

      Kivy służy do tworzenia innowacyjnych, bogatych multimedialnie interfejsów GUI, takich jak aplikacje multi-touch. Narzędzie ma umożliwiać szybkie prototypowanie i błyskawiczne projektowanie interakcji. 

       

      Zalety: wsparcie wieloplatformowe, niezawodna wydajność, rozszerzalne widgety

      Wady: nienatywny wygląd, duży rozmiar pakietu, mała społeczność

      NAJWAŻNIEJSZE WNIOSKI

      • Python ma kolosalny ekosystem frameworków, bibliotek i pakietów.
      • Programiści używają ich, żeby ułatwić i przyspieszyć pisanie kodu oraz zmniejszyć jego rozmiar.
      • Mnogość dedykowanych narzędzi sprawia, że Python świetnie nadaje się do projektów uczenia maszynowego.
      • Kolejnym obszarem, w którym język błyszczy, jest analityka i wizualizacja danych.
      • Python ma też standardowy zestaw narzędzi testowych i toolkitów GUI.
      • Zdecydowana większość pythonowych pakietów, bibliotek i narzędzi jest całkowicie darmowa.

      06 Python a inne języki programowania

      Dlaczego Python mieszka na lądzie? Bo jest ponad poziomem C. 

      Za każdym kiepskim żartem stoi ziarno prawdy. Jako jeden z czołowych języków na świecie Python góruje nad wieloma technologiami pod względem łatwości pisania kodu, wsparcia bibliotek, popularności, rozmiaru kodu i czytelności. 

      Choć jednak błyszczy w wielu obszarach, Python nie jest odpowiedzią na wszystkie potrzeby projektowe. Pod pewnymi względami ustępuje konkurentom. Zrozumienie kluczowych różnic między Pythonem a innymi popularnymi językami ułatwi Ci decyzję, który z nich spełnia Twoje konkretne wymagania biznesowe.

      Porównanie Pythona z innymi językami

      Znamy już mocne i słabe strony Pythona. Zobaczmy więc, jak wypada na tle innych technologii. Żeby to ustalić, w poniższym porównaniu oceniliśmy takie czynniki jak wydajność i stabilność, łatwość użycia, tempo pisania kodu, dostępną pulę specjalistów i wiele innych.

      Python a Java 

      Zaczynamy od najczęstszego porównania technologii, czyli Pythona z Javą. Oba języki są z nami od dziesięcioleci i mają wiele wspólnego (jak mocne wsparcie wieloplatformowe, ogromne społeczności i bogate biblioteki). Jak więc zdecydować, który lepiej pasuje do Twojego projektu?

      Kluczowe cechy

      Python i Java są przede wszystkim językami obiektowymi. Dzięki temu ich kod da się wykorzystywać wielokrotnie, sprawnie się go pisze i stosunkowo łatwo utrzymuje. Jedna zasadnicza różnica polega jednak na tym, że Python jest językiem interpretowanym i typowanym dynamicznie. Zyskuje przez to bardzo czytelny i zwięzły kod, co podnosi produktywność programistów. Na minus: ta cecha sprawia, że Python jest wolniejszy niż języki kompilowane, takie jak Java. 

      Wydajność Javy zależy od wielu czynników, w tym od wersji, architektury sprzętowej, dostawcy i systemu operacyjnego. Ogólnie język wypada nieco lepiej wydajnościowo niż Python. Wciąż jednak ustępuje technologiom kompilowanym natywnie, jak C czy C++. Do tego praca w Javie wymaga znacznie więcej kodu niż w Pythonie, co przekłada się na dłuższy czas przeglądu i utrzymania.

      Wydajność i tempo pracy

      Konieczność użycia interpretera zamiast kompilatora dokłada Pythonowi narzutu przy przetwarzaniu. Dodatkowo Python 2 nie jest zgodny z Pythonem 3, co wpływa na tempo pracy, zwłaszcza u junior developerów. Mimo to w wielu projektach opóźnienie wydajnościowe jest nieistotne, szczególnie gdy uwzględnimy inne zalety Pythona, jak niski próg wejścia i oszczędność.

      Jako język kompilowany Java startuje wolniej, ale działa szybciej niż Python. Ponieważ jej kod jest sprawdzany przed uruchomieniem, w czasie działania pojawia się zwykle mniej błędów. Z drugiej strony Java zwykle wymaga więcej pracy i kodu niż Python, żeby coś zadziałało. Jej kod bywa rozwlekły i trudny do czytania, co odbija się na wszystkich etapach projektu, od programowania po testy i aktualizacje. Oznacza to również, że w wielu przypadkach, gdy pojawia się problem, programiści Javy raczej napiszą coś od zera, niż będą debugować kod. 

      Krzywa uczenia się

      Czysty kod, prosta składnia, solidna społeczność i szerokie wsparcie bibliotek składają się na łagodną krzywą uczenia się Pythona. Język zaprojektowano tak, by uczyć się go szybko i łatwo, co czyni go dobrym wyborem dla początkujących. Do tego Python to technologia, którą osoby biznesowe (analitycy danych czy project managerowie) łatwo zrozumieją i przeanalizują, co znacznie usprawnia realizację projektu.

      Java, z jej złożonym i szerokim środowiskiem programistycznym, leży na drugim końcu krzywej uczenia się. Stanowi więc spore wyzwanie dla junior developerów. Nauka wymaga pogłębionego rozumienia API i wzorców projektowych, a to zajmuje czas. 

      Na szczęście przyszli eksperci Javy mogą liczyć na liczne darmowe kursy, tutoriale i interaktywne materiały. Poza tym, choć próg wejścia w Javę jest dość wysoki, po opanowaniu początkowych pojęć krzywa uczenia się łagodnieje.

      Zastosowania

      Duże zespoły pracujące nad oprogramowaniem dla dużych firm często sięgają po Javę ze względu na jej stabilność i odporność. Język poradzi sobie też z projektami AI i uczenia maszynowego, ale Python jest w tych zastosowaniach znacznie popularniejszy i bardziej opłacalny. 

      Choć Java często napędza aplikacje webowe i desktopowe aplikacje GUI, Python jest pierwszym wyborem w projektach data science. Jest też powszechny przy szybkim tworzeniu prototypów, MVP i projektach szybkiego testowania pomysłów.

      Społeczność 

      Gigantyczna społeczność 12,5 miliona programistów czyni Javę najpopularniejszym językiem programowania na świecie. Zna ją blisko 68% specjalistów ankietowanych przez Stack Overflow. Dzięki temu język ma ogromny ekosystem sprawdzonych frameworków i bibliotek obsługujących tysiące przypadków wdrożeniowych.

      Python depcze jednak Javie po piętach. Z 9 milionami użytkowników na świecie jest jedną z najpopularniejszych, najbardziej lubianych i najczęściej używanych technologii. Do tego liczba projektów tworzonych w Pythonie wynosi obecnie około 300 000, co dodatkowo świadczy o szerokim zastosowaniu języka. 

      Werdykt

      Python i Java to wpływowe języki, które dają znakomite wyniki w wybranych obszarach zastosowań. Ogólnie Java oferuje większą stabilność i lepiej nadaje się do rozległych projektów dużych firm, obejmujących wiele zespołów. Python z kolei jest zwinny, dynamiczny i intuicyjny: spełnia wszystkie warunki, by szybko budować prototypy i błyskawicznie iterować.

      Jeśli pracujesz zwinnie albo musisz zbudować oprogramowanie związane z data science, AI czy ML, wybierz Pythona. To samo dotyczy niewielkich aplikacji o krótkich cyklach. W przypadku większości rozwiązań dla dużych firm i desktopowych GUI standardowym wyborem będzie jednak Java.

      Python a Ruby/Ruby on Rails

      Kolejne na liście jest porównanie Pythona z Ruby. Ruby to wysokopoziomowy, interpretowany język programowania ogólnego przeznaczenia, stworzony w połowie lat 90. przez Yukihiro Matsumoto. Jak mówią jego twórcy, Ruby „skupia się na prostocie i produktywności. Ma elegancką składnię, którą naturalnie się czyta i łatwo pisze”.

      Kluczowe cechy

      Ruby obsługuje programowanie obiektowe, a także inne paradygmaty. Podobnie jak Python jest otwartoźródłowy, więc jego użycie nie wymaga opłat licencyjnych. Tak samo jest technologią wieloplatformową i uniwersalną o szerokim spektrum zastosowań, od web developmentu, przez analizę danych, po prototypy i MVP. Kolejną wspólną cechą obu języków jest priorytet dla wygody programisty i tempa pracy dzięki łatwej do czytania składni.

      Wydajność i tempo pracy

       Python i Ruby to języki interpretowane, czyli z natury wolniejsze niż technologie kompilowane, jak Java czy C#. Oferują jednak szereg optymalizacji (usprawnienia procesora, optymalizacje pamięci, poprawki garbage collectora), dzięki którym kod działa o rzędy wielkości szybciej. A jeśli chodzi o tempo pracy, tu zarówno Python, jak i Ruby wychodzą na prowadzenie. 

      Ruby jest łatwy i przyjemny w użyciu (zwłaszcza Ruby on Rails). Podejście „konwencja ponad konfigurację” stosuje w kodzie wartości domyślne, przyspieszając pracę i ograniczając wysiłek programistów. Kolejne pojęcie związane z Ruby to „magia” Railsów, czyli zbiór abstrakcyjnych wzorców obsługujących złożone konfiguracje, takie jak przygotowanie środowiska serwerowego czy spinanie modeli z kontrolerami. Wzorce te ograniczają ręczne pisanie kodu i czynią prace nad projektem efektywniejszymi.

      W porównaniu z Pythonem Ruby daje programistom więcej swobody. Choć to, że zawsze jest kilka sposobów na osiągnięcie tego samego efektu, często pozytywnie wpływa na doświadczenie programisty, może też szkodzić efektywności. Zbyt duża autonomia prowadzi czasem do niepotrzebnej złożoności kodu i opóźnień w projekcie. Do tego bycie jedną z najbardziej permisywnych technologii oznacza, że Ruby bywa niestabilny. 

      Krzywa uczenia się

      Nastawienie Ruby na prostotę i produktywność usprawnia naukę i obniża bariery wejścia, zwłaszcza w przypadku frameworka Rails. Filozofia „konwencja ponad konfigurację” daje też nowym programistom kluczowe wskazówki i pomaga pisać dobry kod od początku.

      Ponieważ jednak język stosuje unikalne podejście do kodowania, zrozumienie zasad magii Ruby może początkowo zająć trochę czasu. Skromny rozmiar społeczności oznacza też, że początkującym programistom Ruby może być trudniej wystartować niż nowicjuszom w Pythonie. Bez dwóch zdań Python jest dla początkujących dużo łatwiejszy do przyswojenia.

      Zastosowania

      Ruby powstał od podstaw z myślą o front-endowych i back-endowych aplikacjach webowych. I ma wiele frameworków, które ten cel wspierają. Najważniejszy z nich nazywa się Ruby on Rails i ułatwia tworzenie aplikacji webowych opartych na bazach danych.

      Jak już wspominaliśmy, język służy jednak różnym celom. Typowe przykłady to analiza danych, prototypowanie i proof of concept. Brzmi znajomo? Tak, to również główne obszary zastosowań Pythona. 

      A gdy pomyślimy o firmach korzystających z Ruby i Ruby on Rails, ich lista nie ma końca. Od usług noclegowych (Couchsurfing, Airbnb), przez serwisy fundraisingowe i finansowe (Kickstarter, Indiegogo), po media społecznościowe i aplikacje streamingowe (Twitter, Hulu, Twitch): setki wiodących organizacji budują strony i aplikacje webowe w Ruby.

      Społeczność 

      Gdy spojrzymy na społeczność, Ruby nie ma jednak szans z Pythonem. Tylko około 7% programistów na świecie zna Ruby. To niewiele w porównaniu z ponad 44% specjalistów używających Pythona. Jednocześnie społeczność Ruby, choć mała, jest zżyta i wierna technologii. To dlatego, że język od początku skupiał się przede wszystkim na web developmencie i programowaniu funkcyjnym. 

      Większość ekspertów Ruby pracuje z frameworkiem Ruby on Rails, ale ostatnio zyskują na popularności mniej znane narzędzia, takie jak dry-rb, mRuby czy Hanami. Podsumowując, można uczciwie powiedzieć, że o ile zwolennicy Pythona są liczni i różnorodni, o tyle wyznawcy Ruby wydają się bardziej lojalni i zaangażowani.

      Werdykt

      W skrócie: Python i Ruby są jak rodzeństwo: mają wspólne DNA, ale idą własnymi, oddzielnymi drogami. Ruby świetnie pasuje do tworzenia aplikacji webowych. Python z kolei oferuje znacznie szerszy wachlarz zastosowań. 

      Dzięki szybkiemu działaniu Ruby lepiej radzi sobie z serwisami i aplikacjami o dużym ruchu. Python z kolei wyróżnia się w zastosowaniach obejmujących operacje matematyczne i naukowe na ogromnych ilościach danych. 

      Python a Julia

      Julia to wschodząca gwiazda analizy numerycznej, data science i programowania uczenia maszynowego. Zbudowano ją od podstaw z myślą o wysokiej wydajności, oferując błyskawiczne tempo wykonania. Co jeszcze czyni ją godnym rywalem Pythona i jak ocenić, który język lepiej sprawdzi się w Twoim przypadku? Zobaczmy.

      Kluczowe cechy

      Komponowalna, typowana dynamicznie, kompilowana przed uruchomieniem i otwartoźródłowa: oto Julia w pigułce. Język oferuje odtwarzalne środowiska, w których możesz powtarzać eksperymenty bez budowania kodu od zera. Julia łączy zalety typowania dynamicznego i statycznego, jest wyjątkowo interaktywna i stosuje tę samą prostą, łatwą do czytania składnię co Python. 

      Wydajność i tempo pracy

      Zaprojektowana z myślą o ekstremalnej szybkości Julia bije niezoptymalizowanego Pythona pod względem tempa wykonania w swoich docelowych obszarach (czyli eksploracji danych, uczeniu maszynowym i obliczeniach naukowych). Do tego kompilacja kodu pozwala Julii rozwiązać wiele problemów wydajnościowych, na które często natrafia Python. 

      Język ma pełny cykl wydawniczy, z wydaniami LTS (długoterminowego wsparcia), stabilnymi i beta/nightly. Jak dotąd nie było przełomowych wydań, które poważnie zaburzyłyby stabilność Julii. To może się zmienić wraz z wersją 2 w przyszłości, choć nie musi.

      Krzywa uczenia się

      Najwyższa szybkość, solidna wydajność i łatwość użycia sprawiają, że Julia jest ulubionym językiem 73% programistów zajmujących się data science. Język ma jednak szczątkową dokumentację, skupioną ściśle na zastosowaniach z data science i uczenia maszynowego. W efekcie stosowanie go w innych obszarach jest niesamowicie ambitne.

      Poza tym używanie Julii nawet w jej docelowych zastosowaniach wymaga od programistów dużego wysiłku. Niestety mikroskopijna społeczność też nie pomaga początkującym, bo jako nowicjusz nie masz od kogo się uczyć. 

      Zastosowania

      Jedną z kluczowych mocnych stron Pythona jest jego ogromna wszechstronność. Obsłuży aplikacje webowe, automatyzację, skrypty webowe, a nawet programowanie aplikacji dla dużych firm. 

      W teorii Julia potrafi to samo. Choć jednak faktycznie ma szereg pakietów nienaukowych, w praktyce jest przeznaczona do programowania naukowego i niewiele poza tym. 

      Społeczność 

      Zwolennicy Julii są stali i zaangażowani, ale nieliczni. Głównymi użytkownikami są specjaliści data science, przez co adopcja języka w sektorach komercyjnych pozostaje znikoma. I choć dwóch na trzech użytkowników Julii ją uwielbia, ich łączna liczba jest drastycznie niska. Na razie skromne 0,9% programistów zna Julię, co czyni ją najmniej popularnym językiem programowania. Minie sporo czasu, zanim stanie się filarem informatyki naukowej, o ile w ogóle do tego dojdzie.

      Werdykt

      Stworzona specjalnie do obliczeń naukowych i operacji uczenia maszynowego, Julia przewyższa Pythona wydajnością w tych obszarach. Dlatego wielu uważa, że w dłuższej perspektywie może go tam zastąpić. 

      Mimo to nie poleca się tej technologii do projektów spoza obszaru data science i ML, bo wymaga jawnych dostosowań i pisania kodu od zera. Do tego skromna społeczność i braki w dokumentacji to główne przeszkody w szerokiej adopcji Julii. Poza tym Python jest znacznie dojrzalszy. Jest z nami od trzech dekad i raczej nigdzie się szybko nie wybiera. 

      Python a C#

      Python i C# to zupełnie inna para kaloszy. Pierwszy od początku powstawał jako kod otwarty, napędza zwinne, dynamiczne strony i aplikacje webowe i jest dynamicznie interpretowanym językiem stworzonym dla wygody programistów. Drugi wywodzi się z ekosystemu rozwiązań Microsoftu i otworzył się dopiero kilka lat temu. 

      C# powstał jako język programowania ogólnego przeznaczenia dla CLI i jest kompilowany statycznie dla maksymalnej wydajności i stabilności. Czy to jednak wystarczy, by pokonać zalety Pythona?

      Kluczowe cechy

      C# to ugruntowany, potężny język programowania, który dziedziczy po C i C++, zachowując przy tym prostotę. Stworzony przez Microsoft, ma wiele wspólnego z Javą. 

      Język obejmuje typowanie statyczne oraz dyscypliny programowania imperatywnego i funkcyjnego. Można go kompilować na różnych platformach, a stosuje się go szeroko w aplikacjach mobilnych i desktopowych, na stronach, w usługach chmurowych, oprogramowaniu dla firm i przy tworzeniu gier. Podobnie jak Python, C# jest obiektowy.

      Wydajność i tempo pracy

      Wspierany przez Microsoft i dojrzały (wydano go ponad 20 lat temu), C# jest wyjątkowo stabilny i spójny. Język narzuca programistom ograniczenia, żeby tworzyli niezawodny i solidny kod. Jako język kompilowany jest też szybszy niż jego interpretowane odpowiedniki, w tym Python.

      Trzeba jednak dodać, że C#, tak jak Java, osiąga stabilność kosztem rozmiaru i czytelności kodu. Mimo mocno uporządkowanej struktury jego składnia bywa dość złożona: C# używa na przykład wcięć, średników i nawiasów klamrowych oraz rozróżnia wielkość liter. Te cechy generują setki linii dodatkowego kodu, które zajmują cenne miejsce i wymagają dodatkowego czasu.

      Kolejnym czynnikiem wpływającym na tempo wdrożenia w C# jest to, że język jest pedantem, jeśli chodzi o zasady. Pominiesz nawias albo użyjesz złego typu zmiennej i masz kłopot. W efekcie programiści muszą sprawdzać każdą napisaną linię. Dodatkowa praca zwiększa presję związaną z terminem.

      Krzywa uczenia się

      Choć nie tak prosty jak Python, C# ma stosunkowo łagodną krzywą uczenia się. Język oferuje mnóstwo darmowych materiałów, jego społeczność jest całkiem duża, a wiele złożonych zadań jest zabstrahowanych, więc początkujący nie muszą rozumieć, jak działają od środka. 

      C# ma jednak swoje wyzwania. Na przykład przed rozpoczęciem pisania kodu trzeba dobrze rozumieć pewne zasady i wzorce projektowe. Poza tym opanowanie C# to coś więcej niż poznanie składni. Żeby używać tego języka, programiści muszą ogarnąć cały ekosystem Microsoftu, co bywa przytłaczające. Zwłaszcza na początku.

      Zastosowania

      Ze względu na swoje korzenie C# jest językiem pierwszego wyboru przy tworzeniu aplikacji na Microsoft Windows. Szczególnie chętnie sięgają po niego zespoły dużych firm budujące solidne, rozbudowane aplikacje biznesowe. Gdy jednak spojrzymy na obliczenia naukowe, C# ustępuje Pythonowi i jego ogromnej liczbie frameworków oraz bibliotek do data science, uczenia maszynowego, AI i obliczeń. 

      Społeczność 

      Dojrzałe narzędzia, obszerny ekosystem bibliotek i aktywna społeczność programistów: C# ma to wszystko. Mniej więcej jedna trzecia programistów na świecie używa tego języka w swoich projektach, co plasuje go wśród najpopularniejszych języków programowania (po Javie i Pythonie). 

      Do tego programiści C# mogą liczyć na wsparcie Microsoftu, gdy utkną przy programowaniu albo naprawianiu błędów. Ta pomoc bywa bezcenna, gdy zbliżają się terminy. Niestety tego Python zapewnić nie może.

      Werdykt

      C# sprawdza się najlepiej w złożonym oprogramowaniu dla dużych firm. Język jest wyjątkowo potężny i pozwala budować zaawansowane, wydajne programy oraz aplikacje webowe. Oczywiście przy projektach wymagających integracji z Microsoftem albo opartych na firmowych standardach składni i bibliotek C# jest właściwym wyborem.

      Teoretycznie C# najpewniej zrobi wszystko to, co Python, i to wydajniej. Jego próg wejścia jest jednak znacznie wyższy niż Pythona. Wielu programistów uważa też, że w Pythonie pisze się łatwiej i szybciej. Dlatego przy projektach dynamicznych, eksperymentalnych czy pokazowych sugerujemy Pythona. Podobnie w uczeniu maszynowym i data science zwycięzcą byłby Python.

      Python a C#

      Python i C# to zupełnie inna para kaloszy. Pierwszy od początku powstawał jako kod otwarty, napędza zwinne, dynamiczne strony i aplikacje webowe i jest dynamicznie interpretowanym językiem stworzonym dla wygody programistów. Drugi wywodzi się z ekosystemu rozwiązań Microsoftu i otworzył się dopiero kilka lat temu. 

      C# powstał jako język programowania ogólnego przeznaczenia dla CLI i jest kompilowany statycznie dla maksymalnej wydajności i stabilności. Czy to jednak wystarczy, by pokonać zalety Pythona?

      Kluczowe cechy

      C# to ugruntowany, potężny język programowania, który dziedziczy po C i C++, zachowując przy tym prostotę. Stworzony przez Microsoft, ma wiele wspólnego z Javą. 

      Język obejmuje typowanie statyczne oraz dyscypliny programowania imperatywnego i funkcyjnego. Można go kompilować na różnych platformach, a stosuje się go szeroko w aplikacjach mobilnych i desktopowych, na stronach, w usługach chmurowych, oprogramowaniu dla firm i przy tworzeniu gier. Podobnie jak Python, C# jest obiektowy.

      Wydajność i tempo pracy

      Wspierany przez Microsoft i dojrzały (wydano go ponad 20 lat temu), C# jest wyjątkowo stabilny i spójny. Język narzuca programistom ograniczenia, żeby tworzyli niezawodny i solidny kod. Jako język kompilowany jest też szybszy niż jego interpretowane odpowiedniki, w tym Python.

      Trzeba jednak dodać, że C#, tak jak Java, osiąga stabilność kosztem rozmiaru i czytelności kodu. Mimo mocno uporządkowanej struktury jego składnia bywa dość złożona: C# używa na przykład wcięć, średników i nawiasów klamrowych oraz rozróżnia wielkość liter. Te cechy generują setki linii dodatkowego kodu, które zajmują cenne miejsce i wymagają dodatkowego czasu.

      Kolejnym czynnikiem wpływającym na tempo wdrożenia w C# jest to, że język jest pedantem, jeśli chodzi o zasady. Pominiesz nawias albo użyjesz złego typu zmiennej i masz kłopot. W efekcie programiści muszą sprawdzać każdą napisaną linię. Dodatkowa praca zwiększa presję związaną z terminem.

      Krzywa uczenia się

      Choć nie tak prosty jak Python, C# ma stosunkowo łagodną krzywą uczenia się. Język oferuje mnóstwo darmowych materiałów, jego społeczność jest całkiem duża, a wiele złożonych zadań jest zabstrahowanych, więc początkujący nie muszą rozumieć, jak działają od środka. 

      C# ma jednak swoje wyzwania. Na przykład przed rozpoczęciem pisania kodu trzeba dobrze rozumieć pewne zasady i wzorce projektowe. Poza tym opanowanie C# to coś więcej niż poznanie składni. Żeby używać tego języka, programiści muszą ogarnąć cały ekosystem Microsoftu, co bywa przytłaczające. Zwłaszcza na początku.

      Zastosowania

      Ze względu na swoje korzenie C# jest językiem pierwszego wyboru przy tworzeniu aplikacji na Microsoft Windows. Szczególnie chętnie sięgają po niego zespoły dużych firm budujące solidne, rozbudowane aplikacje biznesowe. Gdy jednak spojrzymy na obliczenia naukowe, C# ustępuje Pythonowi i jego ogromnej liczbie frameworków oraz bibliotek do data science, uczenia maszynowego, AI i obliczeń. 

      Społeczność 

      Dojrzałe narzędzia, obszerny ekosystem bibliotek i aktywna społeczność programistów: C# ma to wszystko. Mniej więcej jedna trzecia programistów na świecie używa tego języka w swoich projektach, co plasuje go wśród najpopularniejszych języków programowania (po Javie i Pythonie). 

      Do tego programiści C# mogą liczyć na wsparcie Microsoftu, gdy utkną przy programowaniu albo naprawianiu błędów. Ta pomoc bywa bezcenna, gdy zbliżają się terminy. Niestety tego Python zapewnić nie może.

      Werdykt

      C# sprawdza się najlepiej w złożonym oprogramowaniu dla dużych firm. Język jest wyjątkowo potężny i pozwala budować zaawansowane, wydajne programy oraz aplikacje webowe. Oczywiście przy projektach wymagających integracji z Microsoftem albo opartych na firmowych standardach składni i bibliotek C# jest właściwym wyborem.

      Teoretycznie C# najpewniej zrobi wszystko to, co Python, i to wydajniej. Jego próg wejścia jest jednak znacznie wyższy niż Pythona. Wielu programistów uważa też, że w Pythonie pisze się łatwiej i szybciej. Dlatego przy projektach dynamicznych, eksperymentalnych czy pokazowych sugerujemy Pythona. Podobnie w uczeniu maszynowym i data science zwycięzcą byłby Python.

      Python a Golang

      Wydany publicznie przez Google w 2012 roku Go (Golang) powstał, żeby naprawić wady innych rozpowszechnionych języków programowania. Miał zachować typowanie statyczne i wydajność wykonania z C, dorównać czytelnością i użytecznością Pythonowi oraz dorzucić szczyptę wydajnej obsługi sieci i wieloprocesowości. Czy ta próba się powiodła?

      Kluczowe cechy

       Go to statycznie typowany, kompilowany język programowania stworzony i rozwijany przez Google. Wzoruje się na językach z rodziny C, dokładając garbage collector do obsługi wycieków pamięci. Jednym z głównych założeń przy tworzeniu Go było zapewnienie znakomitej czytelności i uproszczenie pisania kodu. Chodziło o zwiększenie wydajności i szybkości oraz ułatwienie programowania. 

      Wydajność i tempo pracy

      Go to całkiem nowa technologia. Ma więc mnóstwo nowoczesnych mechanizmów poprawiających stabilność, takich jak garbage collector, bezpieczeństwo pamięci czy strukturalny system typów. Jako język kompilowany Go jest też wyjątkowo wydajny. Dane pokazują, że potrafi działać nawet czterokrotnie szybciej niż Python czy Java. Zwięzła składnia i wsparcie dla współbieżności dodatkowo podnoszą szybkość wykonania. 

      Gdy jednak przyjrzymy się tempu pisania kodu, sprawy nie wyglądają już tak różowo. W porównaniu z Pythonem kod Go jest znacznie bardziej rozwlekły i wymaga więcej pracy. Na przykład funkcja, która w Pythonie zajmuje kilka linii, w Go pochłania znacznie więcej miejsca. Z tego powodu Go nie nadaje się do prac eksperymentalnych i szybkiej weryfikacji projektów.

      Krzywa uczenia się

      Programistom znającym C czy Javę Go przyjdzie opanować dość łatwo. Zupełnie początkujący mogą jednak na starcie mieć problem ze zrozumieniem niektórych jego pojęć. Mimo to składnia Go jest zwarta i czysta, a język, podobnie jak Python, stawia na czytelność kodu. To czyni go przyjaznym dla uczących się i obniża barierę wejścia.

      Zastosowania

      Pierwotnie Go powstał do programowania systemowego, ale zakres jego zastosowań od tego czasu się poszerzył. Język świetnie wspiera skalowalność, przez co nadaje się do pracy z dużymi zbiorami danych. Jest też popularnym wyborem przy wdrażaniu architektur opartych na mikroserwisach, aplikacji chmurowych i oprogramowania do obliczeń klastrowych. Z Golanga korzysta również wiele wydajnych serwisów e-commerce.

      Społeczność 

      Ledwie nastoletni Go jest wciąż stosunkowo młodym językiem, więc zrozumiałe, że nie dorównuje Pythonowi wielkością społeczności ani dostępem do materiałów. Programiści mogą przez to czasem mieć trudność ze znalezieniem potrzebnych narzędzi.

      Młody wiek Go działa jednak także na jego korzyść. Cały istniejący kod i materiały są aktualne i dobrze dopasowane do współczesnych potrzeb projektowych. A społeczność języka, choć niewielka (Go używa tylko około 9% programistów na świecie), jest bardzo aktywna. Jeśli chodzi o dokumentację, Golang ma kompletny ekosystem programistyczny obejmujący edytory, IDE i wtyczki, które przyspieszają i ułatwiają pisanie kodu.

      Werdykt

      Na pierwszy rzut oka Go i Python są dość różne. W rzeczywistości mają jednak wspólne fundamentalne podejścia. Oba języki służą temu, by programowanie było jak najszybsze i najbardziej efektywne. Oba skupiają się też na usprawnieniu doświadczenia programisty i wspieraniu nowych technologii.

      Go wygrywa, gdy weźmiemy pod uwagę wydajność i szybkość wykonania kodu. Python z kolei wychodzi na prowadzenie we wsparciu społeczności i wszechstronności języka. W wielu przypadkach Go jest sensowną alternatywą dla Pythona. Ostateczny wybór między nimi zależy od wielkości, celu i priorytetów Twojego projektu.

      Python a SQL

      Możesz pomyśleć, że zestawianie Pythona z SQL-em to porównywanie jabłek z pomarańczami. Python kojarzy się bowiem z oprogramowaniem data science, prototypami czy pełnowymiarowymi aplikacjami webowymi, podczas gdy SQL jest językiem zapytań. 

      Jedną z największych zalet Pythona jest jednak to, że można go używać do stosunkowo prostych zadań, jak pobieranie i prezentowanie danych ze zbioru w różnych formatach. I właśnie z tej perspektywy przeprowadzimy porównanie Pythona z SQL-em.

      Kluczowe cechy

      SQL, czyli Structured Query Language, sięga lat 70. (!). Powstał, żeby służyć jednemu głównemu celowi: definiowaniu zapytań pobierających konkretne dane z tabel bazy danych. Ten ustandaryzowany język jest niezbędnym narzędziem każdego, kto pracuje z relacyjnymi bazami danych, raportowaniem i analityką dashboardową. Instrukcje SQL wykonują zadania takie jak aktualizacja i pobieranie danych z popularnych systemów zarządzania relacyjnymi bazami danych (w tym Oracle, Microsoft SQL czy Amazon RDS).

      Wydajność i tempo pracy

      Jako potężna technologia zapytań służąca do komunikacji z bazami danych SQL jest z założenia bardzo wydajny. Pozwala szybko i sprawnie pobierać ogromne ilości danych i błyskawicznie wykonywać na nich różne operacje. Co więcej, język radzi sobie z dużą liczbą jednoczesnych transakcji i pozwala realizować złożone, wieloetapowe zapytania.

      Jednocześnie z góry określony i mało elastyczny model danych SQL wymaga wprowadzania poważnych zmian przy każdej migracji danych czy zmianie modelu. To samo dotyczy zarządzania konwersjami danych między SQL-em a innymi językami: bywa to trudne, więc proces wymaga eksperckich umiejętności.

      Krzywa uczenia się

      SQL to język wymagający zupełnie innego sposobu myślenia niż większość „typowych” języków programowania. Nie generuje niezliczonych linii kodu. Zamiast tego korzysta z garstki operatorów i podstawowych reguł składniowych. 

      Choć istnieją rozszerzenia głównych zapytań, do większości operacji na bazie danych wystarczy kilka operatorów, takich jak „Select”, „Insert”, „Update”, „Delete” itd. Z tej perspektywy SQL jest dość prosty, nawet dla osób nieprogramujących. Do tego jako język ustandaryzowany oferuje solidne wsparcie wszystkim uczącym się i użytkownikom. 

      Choć możemy zaryzykować stwierdzenie, że SQL jest PROSTSZY niż Python (mniej pojęć, mniejsza gramatyka, przyjazna składnia), nie znaczy to, że ŁATWIEJ się go nauczyć. Owszem, do pewnego poziomu wysiłek potrzebny do poznania kilku poleceń SQL jest znacznie mniejszy niż zgłębianie zawiłości Pythona. Ale osiągnięcie biegłości w SQL-u z pewnością nie jest spacerkiem.

      Zastosowania

      Przykłady branż opierających się na SQL-u to finanse: aplikacje bankowe, procesory płatności, silniki uzgadniania danych; media społecznościowe: zarządzanie informacjami profilowymi, aktualizacje bazy (np. przy wgraniu nowego zdjęcia); media i rozrywka: pobieranie utworów i książek z biblioteki, przechowywanie i aktualizowanie preferencji użytkownika i wiele innych.

      Choć jednak SQL jest jednym z najszerzej używanych języków w biznesie, rzadko występuje w aplikacjach samodzielnie. Narzędzia business intelligence, zapytania do baz danych i backendowe aplikacje data science opierają się na SQL-u, ale nie jako jedynej technologii.

      Społeczność 

      Znany, popularny i ugruntowany SQL ma gigantyczną społeczność na całym świecie. Zna go blisko 57% programistów. Najpopularniejsze bazy SQL, jak MySQL, Oracle, PostgreSQL czy Microsoft SQL Server, mają miliony użytkowników indywidualnych i firmowych. 

      Z ekosystemu SQL korzysta ponad 60% organizacji na świecie. Mimo powracających plotek o śmierci tej technologii wygląda więc na to, że SQL zachował znaczenie biznesowe, zwłaszcza że coraz częściej stosuje się go w projektach big data i data science.

      Werdykt

      Na dziś SQL pozostaje językiem pierwszego wyboru do zapytań do baz danych. Używanie Pythona czy innego języka tylko po to, by naśladować funkcje SQL, w większości przypadków byłoby zbędne. SQL potrafi jednak tylko pobierać dane i łączyć je z wielu tabel. Jeśli musisz wykonać bardziej złożone operacje, jak przetwarzanie danych czy zamiana ich na inne formaty, język nie sprosta Twoim potrzebom, bo oferuje ograniczony zestaw poleceń. 

      I tu wkracza Python ze swoją zdolnością do eksperymentowania na ogromnych zbiorach danych. Oferuje wiele wyspecjalizowanych frameworków i bibliotek do analizy, przetwarzania i wizualizacji danych; szczególnie dobrze radzą sobie one z danymi ustrukturyzowanymi. W efekcie zarządzanie danymi w Pythonie nie ma właściwie ograniczeń. Oczywiście pod warunkiem, że masz na pokładzie zespół doświadczonych programistów Python .

      Python a Rust

      W porównaniu z Pythonem Rust to zupełnie inna bajka, i to nie tylko dlatego, że jest językiem kompilowanym. Zasady leżące u jego podstaw są zupełnie inne niż paradygmaty Pythona. Mimo zasadniczych różnic oba języki mają jednak pewne cechy wspólne. Jakie? Sprawdź poniżej.

      Kluczowe cechy

       Zdaniem twórców „Rust jest błyskawicznie szybki i oszczędny pamięciowo”. Język faktycznie obiecuje rozwiązać bolączki obecne w wielu innych językach, takie jak spadki wydajności i wysokie zużycie pamięci. Na pierwszy rzut oka jego składnia jest bardzo podobna do C/C++, ale z lepszym bezpieczeństwem pamięci, łatwiejszą współbieżnością i pedantycznymi kontrolami kompilatora. 

      W efekcie Rust pozwala bardzo szybko pisać stabilny i bezpieczny kod. Do tego język oszczędnie gospodaruje pamięcią. Ograniczając ryzyko niejasnego kodu, sprzyja też długoterminowej utrzymywalności. Wszystko to pozytywnie wpływa na Twój projekt.

      Wydajność i tempo pracy

      Rust szczyci się byciem bardzo produktywnym językiem. Oferuje różnorodne zintegrowane narzędzia, które przyspieszają pisanie kodu dzięki funkcjom takim jak autouzupełnianie i wsparcie wielu edytorów. 

       Podobnie jak Go, Rust należy do młodszego pokolenia języków programowania i stosuje podobne metody, żeby osiągnąć najwyższą niezawodność i wydajność. Należą do nich garbage collector, dla wydajniejszego dostępu do pamięci, oraz kompilacja bezpośrednio do kodu maszynowego, dla większej szybkości. Poza tym Rust pozwala dodawać optymalizacje wydajnościowe. Z tego powodu jest idealnym kandydatem do projektów, w których liczy się szybkość i które opierają się na operacjach mocno obciążających procesor. 

      Jednocześnie Rust wciąż jest językiem niskopoziomowym. W konsekwencji generuje znacznie więcej kodu niż Python, co wydłuża czas pracy. Potencjalnym problemem dla programistów pracujących z Rustem bywa też konieczność korzystania z zewnętrznych zależności. Wreszcie dokumentacja frameworków i bibliotek Rusta potrafi być bardzo myląca. 

      Krzywa uczenia się

      Rust ma swoje dziwactwa, a część jego pojęć, jak ownership czy kontrola aliasowania, jest zupełnie nowa dla większości programistów, nawet doświadczonych w innych technologiach. Te rozbudowane mechanizmy wymagają znacznie więcej czasu na zrozumienie niż podstawy Pythona. Nawet tak elementarne rzeczy jak podział kodu na pliki wymagają przebrnięcia przez długie strony dokumentacji Rusta. Zanim nowicjusz poczuje się w tym języku swobodnie, mogą minąć tygodnie. 

      Z tego powodu Rusta trudno przyswoić przy okazji. Bardziej nadaje się dla zawodowych programistów z solidnym opanowaniem innych języków. To dokładne przeciwieństwo Pythona, który nie wymaga żadnych umiejętności programistycznych. 

      Zastosowania

      Kod Rusta wpisuje się w cztery główne koncepcje programowania: proceduralną, równoległą, funkcyjną i obiektową. Rust jest więc językiem uniwersalnym, który można stosować w wielu obszarach. Należą do nich programowanie aplikacji klienckich i serwerów webowych, blockchain, budowanie własnych systemów operacyjnych, pisanie silników przeglądarek i gier oraz wiele innych.

      Społeczność 

      Choć Rust pozostaje technologią niszową (zna go tylko około 5% programistów na świecie), większość jego użytkowników to zagorzali fani. Aż 86,1% użytkowników Rusta go uwielbia. To czyni go najbardziej lubianym językiem programowania na świecie, przed TypeScriptem i Pythonem. 

      Co więcej, tempo adopcji języka stale rośnie. Biorąc pod uwagę wsparcie, jakie Rust daje najnowszym wdrożeniom, wkrótce możemy zobaczyć go w głównym nurcie.

      Werdykt

      Ponieważ są dość różne, nie uznalibyśmy Pythona i Rusta za konkurujące technologie. Oba języki mają raczej swoje własne obszary zastosowań i unikalne mocne strony.

      Na przykład Python błyszczy w obliczeniach naukowych, czego po Rustcie raczej szybko nie zobaczymy. Podobnie nie ma większego sensu pisać skryptów powłoki w Rustcie, jeśli łatwo zrobisz to w Pythonie. 

      Rust jest jednak bardzo potężnym językiem z solidnymi fundamentami, liberalną licencją, wspierającą społecznością i demokratycznym podejściem do rozwoju języka. Jego przyszłość rysuje się jasno, a jeśli chcesz zrealizować swój projekt w Rustcie, chętnie pomożemy!

      Python a Bash

      Bash, dostępny domyślnie na urządzeniach z Linuksem i macOS, nie jest właściwie językiem programowania. To powłoka użytkownika, która interpretuje polecenia i udostępnia usługi systemu operacyjnego człowiekowi albo innemu programowi. 

      Umieściliśmy go na tej liście z powodu automatyzacji. Podobnie jak Pythona, Basha można używać do automatyzacji wykonywania zadań i ograniczenia pracy ręcznej. Jak więc wypada obok Pythona w tym kontekście?

      Kluczowe cechy

      Bash działa zwykle w oknie terminala, czytając i wykonując polecenia skryptów powłoki. Można go też używać jako języka programowania w wierszu poleceń do podstawowych zadań. Bash daje prosty, a przy tym potężny sposób interakcji z urządzeniem: pozwala wykonywać obliczenia, operować na plikach i uruchamiać programy z konkretnych katalogów. Powłoka nie wymaga instalowania aplikacji zewnętrznych i nie ma do czynienia z żadnymi frameworkami. 

      Wydajność i tempo pracy

      Bash uruchamia się szybko (szybciej niż Python), ale ma słabą wydajność wykonania. Wystarcza to jednak do nieskomplikowanych operacji, które tradycyjnie wykonuje. 

      Język wydano po raz pierwszy ponad trzy dekady temu i jest dość stabilny, bo aktualizacje pojawiają się rzadko. Jest preinstalowany w większości systemów uniksowych i można go używać wprost z wiersza poleceń. 

      Bashowi brakuje zaawansowanych funkcji, obiektów i struktur danych, co ułatwia pisanie kodu. Z tego samego powodu wielu obliczeń czy zadań na danych nie da się w nim wykonać. We wszystkich operacjach związanych z obsługą plików i strumieni tekstu Bash bywa szybszą i bardziej efektywną alternatywą dla Pythona i innych języków. Jego prostota mocno ogranicza go jednak w trudniejszych scenariuszach.

      Krzywa uczenia się

      Bardzo prosty i praktyczny Bash jest intuicyjny i łatwy w użyciu. W internecie jest mnóstwo materiałów, artykułów i tutoriali dla uczących się. Zwykle wystarczają, żeby w kilka dni zdobyć podstawowe rozeznanie w Bashu.

      Osoba bez doświadczenia programistycznego może początkowo mieć problem ze zrozumieniem, jak działają skrypty i polecenia. Bash pozostaje jednak jedną z najłatwiejszych technologii do nauki, zwłaszcza dla osób z jakąkolwiek wcześniejszą znajomością języków programowania. Co innego jednak znać Basha, a co innego go używać. Składnia bardziej złożonych zadań programistycznych ogólnego przeznaczenia bywa myląca i nieintuicyjna nawet dla doświadczonych programistów.

      Zastosowania

      Skrypty Basha służą wielu celom: wykonywaniu poleceń powłoki, automatyzacji prostych zadań czy uruchamianiu wielu poleceń naraz. Ułatwiają też życie administratorom, usprawniając część czynności i radząc sobie z dużą ilością tekstu i plików. Gdy jednak sprawy się komplikują, zwykle bardziej opłaca się pisać skrypty w języku programowania takim jak Python.

      Pythona można używać do pisania skryptów powłoki za pomocą projektów takich jak scriptine. Takie podejście ma kilka zalet. Po pierwsze, zastąpienie złożonych skryptów powłoki kodem Pythona często upraszcza pisanie i czyni je efektywniejszym. Po drugie, Python daje bardziej precyzyjną kontrolę nad zużyciem pamięci w aplikacjach wykraczających poza programowanie powłoki. Wreszcie użycie Pythona oznacza, że możesz sięgnąć po jego funkcje obliczeniowe i analityczne, co przy czystym skryptowaniu nie jest możliwe. 

      Społeczność 

      Według badania programistów Stack Overflowco trzeci programista zna Basha. Znajomość Basha jest jednak zwykle raczej efektem ubocznym administrowania serwerami i automatyzowania procesów, więc trudno mówić o społeczności Basha jako takiej. Zwykle nie ma potrzeby szukania dedykowanych programistów Bash.

      Werdykt

      W przypadku Basha i Pythona nie powinno być pytania „albo-albo”. Proste zadania administracyjne (jak utworzenie katalogu czy usunięcie pliku) z powodzeniem obsłuży skrypt Basha. Gdy jednak zarządzasz złożonymi strukturami danych albo szybko wykonujesz zaawansowane obliczenia, znacznie lepiej wyjdziesz na Pythonie. Do tego Bashowi brakuje kluczowych funkcji i zasobów wspierających zwinne programowanie, więc nie będzie dobrym wyborem, jeśli pracujesz w tym podejściu.

      Python a R

       Jeśli chodzi o programowanie w data science, Python i R idą łeb w łeb. Oba są otwartoźródłowe, nowoczesne i uwielbiane przez swoje społeczności. Skoro mają tyle wspólnego, co je różni? 

      Kluczowe cechy

      R powstał blisko 30 lat temu za sprawą naukowców i statystyków. Ma dzięki temu bogaty ekosystem bibliotek i pakietów do zaawansowanej analityki, analizy statystycznej i wizualizacji danych. Język mocno opiera się na modelach statystycznych, oferuje wsparcie wieloplatformowe i potrafi wykonywać złożone operacje na różnych typach danych: od wektorów i tablic po macierze i obrazy.

      Jako język interpretowany R nie potrzebuje kompilatora. Podobnie jak Python oferuje pełną zgodność z wieloma innymi językami programowania. R płynnie współpracuje też z bazami danych.

      Wydajność i tempo pracy

      Choć R powstał specjalnie do tworzenia oprogramowania statystycznego i zadań analitycznych, jego wydajność pozostawia wiele do życzenia. Na przykład jego pakiety są znacznie wolniejsze niż w MATLAB-ie czy Pythonie. Do tego język zużywa znacznie więcej pamięci niż inne technologie, zwłaszcza przy pracy z dużymi zbiorami danych.

      Mimo to dzięki licznym wbudowanym funkcjom sprawdzenie hipotez statystycznych często zajmuje zaledwie kilka linii kodu. Co więcej, podstawowe metody statystyczne są zaimplementowane jako standardowe funkcje, co dodatkowo przyspiesza pracę. Wygodne i przejrzyste konstrukcje językowe to zdecydowana zaleta dla osób nieprogramujących zawodowo. Ogólnie rzecz biorąc, w swoim docelowym obszarze R jest bardzo produktywnym językiem.

      Krzywa uczenia się

      Mimo wszystkich zalet R ma opinię trudnego do nauki. Z pewnością wymaga trochę czasu na przyzwyczajenie, zwłaszcza u osób bez wcześniejszej wiedzy o programowaniu i data science. 

      W porównaniu z innymi technologiami analizy statystycznej R stanowi wyzwanie, bo wymaga głębszego zrozumienia zasad programowania. Jako język programowania odbiega od części standardowych konwencji, którymi często kierują się Python i jego odpowiedniki. Dla wielu uczących się połączenie światów wytwarzania oprogramowania i data science bywa trudne.

      Zastosowania

      R ma ogromny zbiór pakietów i narzędzi testowych do szybkiej realizacji projektów analitycznych, wizualizacyjnych i przetwarzania danych. Jako język stworzony przez statystyków błyszczy w obliczeniach statystycznych, analityce predykcyjnej i data science. Podobnie jak Python, R potrafi zbierać dane z sieci, a następnie je czyścić i poprawiać. 

      Dodatkowo R jest wyjątkowo mocny w wizualizacji danych. Potrafi stworzyć praktycznie dowolny rodzaj własnego wykresu, głównie dzięki bibliotece ggplot2. 

      Społeczność 

      Jedną z największych zalet R jest ogromny rozmiar jego ekosystemu pakietów. Język zgromadził żywą społeczność aktywnych użytkowników, z których większość zajmuje się projektami data science i analityki predykcyjnej. Pomyśl o dowolnym zastosowaniu, a jest duża szansa, że pakiet je wspierający już istnieje. 

      Ponieważ jednak zakres języka jest raczej ograniczony, R nigdy nie wszedł do głównego nurtu tak jak Python. W efekcie używa go tylko około 5,7% programistów .

      Werdykt

      Choć internet aż kipi od spekulacji, że R zastąpi Pythona albo odwrotnie, nie ma powodu, dla którego oba języki nie mogłyby pokojowo współistnieć. R mocno stawia na modele statystyczne, a Python oferuje szersze podejście do przetwarzania danych. Programiści pracujący nad wdrożeniami uczenia maszynowego znacznie częściej wybiorą Pythona. Osoby nieprogramujące, które muszą przeprowadzić pogłębioną analizę statystyczną, prawdopodobnie wybiorą R.

      Z pewnością pod względem wszechstronności wygrywa Python. Obsługuje wszelkie formaty danych i integracje oraz pozwala pobierać dane z sieci. R z kolei ogranicza się do pracy z Excelem, plikami CVS i tekstowymi i pozwala tylko na podstawowy web scraping. Biorąc jednak wszystko pod uwagę, te dwa języki nie tyle konkurują, ile oferują różne korzyści w tym samym, szeroko rozumianym obszarze data science.

      NAJWAŻNIEJSZE WNIOSKI

      • Python przoduje pod względem łatwości użycia, tempa pracy i produktywności.
      • To jeden z najlepszych języków do projektów data science i analityki.
      • Podobnie jak Ruby (i Ruby on Rails), Python świetnie nadaje się do szybkiego prototypowania.
      • Języki kompilowane, jak Java i C#, przewyższają Pythona wydajnością.
      • Python ma jedną z najsilniejszych i najbardziej aktywnych społeczności ze wszystkich języków.

      07 Ekonomia pracy w Pythonie: ile to kosztuje?

      Oto część, która prawdopodobnie zainteresuje Cię najbardziej: pogadamy o pieniądzach. Jeśli zapytasz: „Ile zapłacę za realizację projektu w Pythonie?”, odpowiemy, że jest tylko jedna odpowiedź: „To zależy”. Podanie konkretnej kwoty bez znajomości szczegółów jest niemożliwe. 

      Koszt pracy w Pythonie może wahać się od 3000 dolarów za drobną modyfikację oprogramowania po 80 000 dolarów za stworzenie średniej wielkości platformy webowej. Przy systemach dla dużych firm kwota bywa znacznie wyższa i przekracza 100 000 dolarów.

      Przy szacowaniu kosztu każdego projektu programistycznego, niezależnie od języka, w grę wchodzi wiele czynników. Omawiamy je poniżej. 

      Koszty wytwarzania oprogramowania. Przewaga Pythona.

      Kilka wrodzonych cech Pythona czyni go bardziej opłacalnym niż niektóre inne języki programowania. Są to między innymi:

      • obszerny katalog bibliotek wsparcia, które przyspieszają pisanie kodu
      • otwarta licencja, która nie wymaga opłat licencyjnych
      • szerokie wsparcie modułów zewnętrznych, które usprawnia integrację
      • duża pula programistów, która ułatwia dostęp do specjalistów
      • silna społeczność, dzięki której problemy rozwiązuje się szybciej i skuteczniej
      • przyjazna składnia, która przyspiesza pracę
      • wsparcie wielu platform, ułatwiające dostarczanie na różne środowiska
      • wsparcie łatwego prototypowania (kod można wykonać od razu)

      Stawki programistów Python

      Wynagrodzenia programistów Python plasują się w średnio-wysokim przedziale na tle innych języków. Programiści C#, C++ czy Javy zarabiają zwykle nieco mniej niż ich koledzy piszący w Pythonie. Językowi daleko jednak do technologii o najwyższych zarobkach, takich jak Scala, Go czy Perl.

      • Według badania Stack Overflowmediana dla specjalistów piszących w Pythonie wynosi średnio 59 000 dolarów rocznie na świecie. 
      • W USA jest znacznie wyższa i sięga 120 000 dolarów rocznie. Liczby te są spójne z danymi z innych źródeł. 
      • Na podstawie ponad 1200 zgłoszonych wynagrodzeń Indeed szacuje, że średnia pensja programisty Python w USA (bez podziału na poziomy doświadczenia) wynosi 52,26 dolara za godzinę 
      • Najlepiej zarabiający specjaliści mieszkają w San Francisco, a następnie w Nowym Jorku i San Jose. Jedne z najniższych zarobków programistów Python w kraju notuje się w Atlancie.
      • Talent.com podaje, że brytyjscy eksperci Pythona zarabiają średnio blisko 80 000 dolarów rocznie(a seniorzy nawet do 117 300 dolarów rocznie), czyli 40,87 dolara za godzinę. Irlandzcy programiści Python zarabiają podobnie, tak samo jak większość ich francuskich kolegów.
      • Niemiecki programista ze znajomością Pythona zarabia zwykle od 58 250 dolarów rocznie do 65 000 dolarów rocznie, w zależności od źródła (odpowiednioPayScale i Glassdoor). 
      • W Polsce wynagrodzenie junior specjalistów Pythona wynosi średnio 13 850 dolarów rocznie. Seniorzy są warci prawie trzy razy więcej. Specjalista Pythona z ponad 10-letnim doświadczeniem może liczyć średnio na 38 600 dolarów rocznie(źródło: Bulldogjob).
      • Im dalej na wschód, tym stawki niższe: programiści Python na Ukrainie dostają od 10 500 dolarów rocznie do 17 150 dolarów rocznie (w podawanych stawkach są ogromne rozbieżności, zależnie od źródła). 
      • Tradycyjnie najniższe stawki mają specjaliści z Indii. Średnia płaca podstawowa programisty Python w Indiach mieści się w przedziale od 7700 dolarów rocznie do 8300 dolarów rocznie.
      • Gdy jednak przeniesiemy się do chińskiego Shenzhen, stawki znów rosną. Junior programiści Python mogą liczyć na 35 200 dolarów rocznie, a seniorzy zarabiają nawet 62 500 dolarów rocznie.

      Python - map 1

      6 wskazówek, jak zatrudnić programistów Python, którzy nie zawiodą

      Jeśli Python okazał się najlepszym wyborem dla Twojego projektu, być może zastanawiasz się, jak znaleźć doświadczonych członków zespołu, którzy zrealizują Twój pomysł. Mamy dla Ciebie coś ekstra. Przygotowaliśmy sześć kompetencji poza samą znajomością Pythona, których warto szukać u rzetelnego programisty.

      Trzymanie się tych wskazówek pomoże Ci uniknąć marnowania czasu i pieniędzy na drugorzędny zespół Pythona. 

      • Solidne opanowanie frameworków Pythona. Ekosystem Pythona jest tak ogromny, że opanowanie wszystkich frameworków i bibliotekjest niemożliwe (i szczerze mówiąc, niepotrzebne). Osoba, którą chcesz zatrudnić, powinna jednak dobrze znać przynajmniej jeden z czołowych frameworków Pythona, jak Django czy Flask. Poza tym powinna znać bardziej wyspecjalizowane narzędzia wspierające pracę w Pythonie w konkretnych scenariuszach, jak analiza czy wizualizacja danych.
      • Znajomość front-endu. Doświadczeni programiści Python powinni też wykazać się rozumieniem technologii front-endowych (w tym JavaScriptu, HTML-a i CSS-a) potrzebnych do tworzenia aplikacji webowych.
      • Obeznanie z bazami danych. Nikt nie oczekuje, że programiści Python będą jednocześnie administratorami baz danych. Pewna wiedza o różnych bazach jest jednak niezbędna. Ponieważ tworzenie większości aplikacji w Pythonie wiąże się z łączeniem z bazami danych, od dobrego kandydata możesz oczekiwać rozumienia modeli danych, znajomości SQL-a i przynajmniej podstawowego rozeznania w mapowaniu obiektowo-relacyjnym (ORM).
      • Znajomość data science i algorytmów ML. Jeśli Twój projekt ma cokolwiek wspólnego z automatyzacją, analizą, czyszczeniem i wizualizacją danych albo wyciąganiem wniosków z danych, sprawdź, jak kandydat radzi sobie z powiązanymi frameworkami i bibliotekami.
      • Orientacja w metodykach zarządzania projektami. Choć metodyk są setki, większość doświadczonych programistów zna zwykle trzy główne: Waterfall, Agile i XP. Im lepiej rozumieją zasady podejścia przyjętego w Twoim projekcie, tym szybsze wdrożenie i płynniejsza dalsza praca.
      • Sprawna komunikacja. W czasach wszechobecnych zespołów zdalnych nie musimy podkreślać, jak kluczowe dla sukcesu projektu są umiejętności komunikacyjne. Biegłość językowa to jedno, ale od przyszłych członków zespołu oczekuj też responsywności, ciekawości i skutecznej komunikacji.

      Zwróć uwagę na powyższe kompetencje, przeglądając kandydatów do swojego projektu w Pythonie. A jeśli czujesz, że szukanie ekspertów Pythona to zbyt duży kłopot, zgłoś się do nas. Dzięki naszej rozległej sieci specjalistów znajdziemy osoby, które od pierwszego dnia pracują na pełnych obrotach i dowożą to, czego oczekujesz.

      08 Społeczność Pythona: kto, co, gdzie i jak?

      Jeśli Python już Cię oczarował (a mamy nadzieję, że tak!), być może zainteresuje Cię, gdzie dowiedzieć się więcej o tej technologii i najnowszych trendach. Twoje życzenie jest dla nas rozkazem! 

      Z tysięcy materiałów o Pythonie, dostępnych online i poza siecią, wybraliśmy najlepsze i przygotowaliśmy ten katalog stron, konferencji, kursów i osób, które warto śledzić, jeśli chcesz pogłębić wiedzę o Pythonie. Część z nich będzie bardziej odpowiednia dla inżynierów oprogramowania i specjalistów QA na różnych poziomach. Inne przydadzą się także osobom po stronie biznesu: przedsiębiorcom, product ownerom, CTO, CIO i project managerom.

      Oto nasza krótka lista niezbędnych materiałów o Pythonie i wydarzeń, których nie można przegapić (wiele z nich w 2021 roku odbywa się wirtualnie). 

      Wydarzenia i konferencje o Pythonie

      SciPy

      Python - Illustration 4 - SciPy

      Lokalizacja: online
      Data: 12-18 lipca 2021
      Bilety: 30-75 dolarów za samą konferencję. Bilety obejmujące warsztaty zaczynają się od 50 dolarów dla studentów i 125 dolarów w cenie standardowej. 
      Odbiorcy: Zarówno techniczni, jak i biznesowi.

      SciPy to coroczne wydarzenie o obliczeniach naukowych w Pythonie, prowadzone w standardowym formacie warsztatów, sprintów i konferencji głównej. Jak podaje strona wydarzenia, konferencja „zbiera uczestników z biznesu, uczelni i administracji, żeby zaprezentowali swoje najnowsze projekty, uczyli się od doświadczonych użytkowników i programistów oraz wspólnie pracowali nad kodem”. Równolegle do głównego wydarzenia odbywają się specjalistyczne ścieżki. W tym roku obejmują wizualizację danych, przetwarzanie obrazów oraz naukowe zastosowania ML i data science. Dostępna jest też seria minisympozjów o narzędziach i bibliotekach branżowych. 

      EuroPython

      Python - Illustration 4 - EuroPython

      Lokalizacja: online/Europa
      Data: od 26 lipca do 1 sierpnia 2021
      Bilety: 175,00 € dla firm, 95,00 € dla osób prywatnych (na podstawie stawek z 2020 roku, ceny na ten rok są jeszcze opracowywane).
      Odbiorcy: Zarówno techniczni, jak i biznesowi.

      EuroPython to największa w Europie konferencja poświęcona językowi Python, organizowana nieprzerwanie od 2002 roku. Regularnie bierze w niej udział 1200-1400 uczestników z całego świata. Konferencja łączy wykłady keynote, sesje posterowe i sprinty kodowe obejmujące szereg tematów związanych z Pythonem, w tym narzędzia, AI i ML, programowanie gier, programowanie sieciowe, API, alternatywne implementacje Pythona i inne.

      Xtreme Python

      Python - Illustration 4 - Xtreme Python

      Lokalizacja: online
      Data: 24 listopada 2021
      Bilety: 20-80 dolarów (w zależności od terminu zakupu).
      Odbiorcy: Techniczni, programiści Pythona na poziomie średnio zaawansowanym i zaawansowanym.

      To jednodniowe wydarzenie online poświęcone narzędziom programistycznym Pythona, big data i pracy po stronie serwera, bibliotekom i frameworkom Pythona oraz innym tematom związanym z tym językiem. Konferencja podzielona będzie na krótkie, 25-minutowe sesje. Dokładny harmonogram i tematy nie zostały jeszcze potwierdzone. 

      Python Web Conference

      Python - Illustration 4 - Python Web Conference

      Lokalizacja: online
      Data: terminy na 2022 rok zostaną podane
      Bilety: 199 dolarów za wstęp profesjonalny, 99 dolarów za wstęp studencki (stawki z 2021 roku).
      Odbiorcy: Biznesowi i techniczni.

      Wirtualne wydarzenie obejmujące szeroki zakres tematów związanych z web developmentem w Pythonie, w tym jeden dzień warsztatów, a także pokoje tematyczne, demonstracje na żywo, czaty, ankiety online i inne aktywności. W 2021 roku program podzielono na cztery ścieżki poświęcone tworzeniu aplikacji, PyData, chmurze i kulturze Pythona. Choć konferencja kierowana jest głównie do programistów webowych, oferuje sporo wiedzy project managerom i innym osobom po stronie biznesu, z tematami wokół tworzenia aplikacji w Pythonie w chmurze, prowadzenia projektów open source, strategii pracy zdalnej i nie tylko.

      PyCon US

      Python - Illustration 4 - PyCon US

      Lokalizacja: online/USA
      Data: terminy na 2022 rok zostaną podane
      Bilety: 100 dolarów dla osób prywatnych i 150 dolarów dla firm. Studentów obowiązuje zniżka. Dostępna jest specjalna stawka „Patron”. Warsztaty płatne dodatkowo, po 50 dolarów za warsztat.  
      Odbiorcy: Zarówno techniczni, jak i biznesowi.

      To największe doroczne spotkanie społeczności Pythona, finansowane przez Python Software Foundation. Biorą w nim udział entuzjaści Pythona na wszystkich poziomach, w tym początkujący i osoby nastawione biznesowo. Program obejmuje konferencję główną z prelekcjami o konkretnych frameworkach i wdrożeniach Pythona, a także o zasadach pisania dobrej dokumentacji oprogramowania.

      Wydarzenie ma swoje edycje regionalne poza USA, w krajach na wszystkich kontynentach (między innymi w Australii, Brazylii, Kamerunie, Chinach, Czechach, Japonii, Indonezji, Indiach, Namibii, Polsce, Pakistanie i Meksyku). 

      DjangoCon

      Python - Illustration 4 - DjangoCon

      Lokalizacja: online/Porto, Portugalia
      Data: terminy na 2022 rok zostaną podane
      Bilety: Ceny early bird zaczynają się od 59 € dla studentów, przez 149 € dla firm, po 299 € dla uczestników wspierających.
      Odbiorcy: Głównie techniczni, zainteresowani web developmentem w Django.

      Jak sama nazwa wskazuje, DjangoCon skupia się na Django, najszerzej używanym frameworku Pythona. Konferencja przyciąga praktyków Django na wszystkich poziomach i ma pomóc im pogłębić wiedzę o frameworku oraz rozwinąć nowe umiejętności. Tegoroczny program wciąż powstaje. W zeszłym roku poruszano między innymi tematy bezpieczeństwa Django, tworzenia własnego serwisu streamingowego w Django oraz wdrażania konkretnych bibliotek i pakietów.

      Python Local User Groups

      Python - Illustration 4 - Python Local User Groups

      Lokalizacja: na całym świecie
      Data: różne
      Bilety: brak danych
      Odbiorcy: Raczej techniczni.

      Python Local User Groups to sieć spotkań na całym świecie, otwartych dla wszystkich entuzjastów Pythona. Spotkania odbywają się w blisko 200 miastach i przyciągają ponad 860 000 członków o różnym poziomie zaawansowania. Sesje są dość nieformalne i sprzyjają dzieleniu się wiedzą, współpracy oraz wymianie doświadczeń z Pythonem.

      Blogi, vlogi i podcasty o Pythonie

      W internecie jest mnóstwo materiałów o Pythonie. Wymienienie wszystkich jest praktycznie niemożliwe, ale od czegoś trzeba zacząć. Żeby Ci to ułatwić, przygotowaliśmy listę starannie wybranych blogów, vlogów i podcastów o Pythonie, które podniosą Twoją wiedzę.

      Planet Python (blog)

      Python Pillar - 1Planet Python to kompletne źródło wiedzy o Pythonie, które zbiera najnowsze wpisy z czołowych blogów o tym języku. Jeśli nie chcesz zapisywać się do dziesiątek różnych źródeł, a wolisz mieć wszystkie informacje o Pythonie w jednym miejscu, to blog dla Ciebie!

      Python Insider (blog)

      Jako agregator newsów o Pythonie, Python Insider to kolejne świetne miejsce po codzienną dawkę informacji. Poza najnowszymi wiadomościami i aktualizacjami (dostępnymi w kilku wersjach językowych) strona zawiera też zbiór odnośników do blogów programistów Pythona.

      Python Software Foundation (blog)

      Python Pillar - 2Kolejny blog prowadzi i utrzymuje Python Software Foundation, organizacja, której misją jest promowanie, ochrona i rozwijanie Pythona. Blog zawiera newsy fundacji i śledzi najnowsze aktualizacje Pythona, nowe funkcje oraz tutoriale.

      Real Python (blog)

      3 (1)

      Jeśli chcesz zapoznać się z programowaniem w Pythonie, zacznij od tego bloga. Oferuje ogromny zbiór darmowych kursów, tutoriali, quizów i innych materiałów pozwalających nauczyć się Pythona od podstaw. Wszystkie materiały podane są w atrakcyjnej wizualnie i wciągającej formie, dzięki czemu nauka staje się przyjemnością.

      The Python Guru (blog)

      4 (2)

      To kolejne świetne miejsce dla każdego, kto chce nauczyć się Pythona od podstaw. Materiały podzielono na krótkie, przyswajalne części, które krok po kroku prowadzą użytkownika przez poszczególne zagadnienia. Choć blog był ostatnio aktualizowany w 2020 roku, wciąż jest wartościowym źródłem dla początkujących.

      Python Bloggers (blog)

      Python Pillar - 5Ten blog społecznościowy jest odpowiedni dla bardziej zaawansowanych użytkowników Pythona. Skupia się w szczególności na newsach i tutorialach z obszaru data science, którymi dzielą się entuzjaści Pythona. Większość wpisów jest dość techniczna i omawia wdrażanie konkretnych funkcji data science albo zastosowanie określonych pakietów i bibliotek do analizy, przetwarzania i wizualizacji danych.

      Talk Python To Me (podcast)

      Python Pillar - 6Talk Python to cotygodniowy podcast programisty i przedsiębiorcy Michaela Kennedy'ego. Obejmuje ogromną gamę tematów związanych z Pythonem. Każdy z ponad 300 dotychczas wydanych odcinków trwa mniej więcej 45 minut i zawiera wywiady z naukowcami, programistami, przedsiębiorcami i innymi specjalistami, którzy opowiadają o swojej pracy z Pythonem z różnych perspektyw. 

      Python Bytes (podcast)

      Python Pillar - 7To kolejny ogromnie popularny podcast Kennedy'ego, tym razem we współpracy z Brianem Okkenem. Obaj prowadzący omawiają najciekawsze newsy o Pythonie w odcinkach trwających od 30 do 60 minut. 

      The Real Python Podcast (podcast)

      Python Pillar - 8 Dostępny na blogu Real Python podcast prowadzony przez Christophera Baileya przynosi wywiady, porady programistyczne i rozmowy z gośćmi ze społeczności Pythona. Program obejmuje wyczerpujący zakres tematów związanych z programowaniem w Pythonie i wchodzeniem do zawodu programisty.

      Profitable Python (podcast)

      Python Pillar - 9Ben McNeill pomaga w swoim podcaście programistom Pythona szlifować umiejętności, oferując różnorodne porady, tutoriale i przykłady z życia. Prowadzący często zagłębia się w tematy związane z data science, informatyką, rzeczywistością mieszaną oraz projektami ML i AI. Równolegle udziela mnóstwa porad zawodowych i mentoringu, poruszając takie obszary pracy programisty jak samokształcenie, opłacalność czy współpraca z nietechnicznymi członkami zespołu.

      PyData (YouTube)

      Python Pillar - 10PyData to program edukacyjny NumFOCUS, amerykańskiej organizacji non-profit w statusie 501(c)3. Ta sama organizacja odpowiada za wspomniane wcześniej wydarzenia PyData na całym świecie. Na swoim kanale PyData udostępnia nagrania prelekcji, wykładów keynote i wywiadów z poszczególnych wydarzeń, a także playlisty tematyczne grupujące filmy o konkretnym zagadnieniu (np. AI, programowanie probabilistyczne, framework Pandas).

      Nagrania sesji PyCon (YouTube)

      Python Pillar - 11 To nie jeden kanał, tylko cała seria kanałów na YouTubie, które dają dostęp do wszystkich nagrań z prelekcji i sesji konferencji Pycon. Widać, że filmy są pogrupowane według miejsca, w którym odbyła się dana dyskusja lub prezentacja.

      Coding for Entrepreneurs (YouTube)

      12 (1)

      Cel tego kanału jest prosty: nauczyć nietechnicznych liderów programowania w Pythonie. Robi to za pomocą mnóstwa przystępnych filmów w trybie „ucz się we własnym tempie”, obejmujących szeroki i głęboki zakres tematów związanych z Pythonem. Jeśli dopiero zaczynasz, sięgnij po serię „30 Days of Python”, która przeprowadzi Cię przez podstawy języka. Bardziej zaawansowani znajdą tu konkretne tematy, jak tworzenie aplikacji w stylu Twittera w Django, integracja Django z front-endami w JavaScripcie czy budowanie Rest API w tym frameworku.

      Książki o Pythonie

      Jeśli wolisz dobre, staroświeckie źródła wiedzy o Pythonie od podcastów i innych formatów, oto lista 10 wybranych książek, które pomogą Ci opanować ten język. Zebraliśmy propozycje zarówno dla początkujących, jak i zaawansowanych użytkowników Pythona, więc znajdziesz coś na swój poziom i doświadczenie.

      Książki dla początkujących w Pythonie

      image4

      Learning Python, 5th Edition | Mark Lutz

      Kompletne wprowadzenie do podstaw Pythona i świetne miejsce, żeby zacząć poznawać ten język.

      Ten przewodnik po Pythonie skierowany jest do programistów dobrze znających inne języki, ale dobrze sprawdzi się też u osób bez doświadczenia programistycznego, bo obejmuje podstawy takie jak główne obiekty Pythona, kluczowe pojęcia, narzędzia programistyczne i różnice między głównymi wydaniami Pythona.

      👉 Kup ją tutaj.

      image44

      Python Crash Course, 2nd Edition | Eric Matthes

      Ta książka, reklamowana jako „najlepiej sprzedający się przewodnik po Pythonie na świecie”, pomaga początkującym poznać podstawowe pojęcia programistyczne i w krótkim czasie nauczyć się pisać czysty kod. 

      W pierwszej części książka rzuca światło na kluczowe pojęcia związane z Pythonem: pętle, klasy, listy, słowniki i inne podstawowe obszary. Druga część ma charakter praktyczny i omawia konkretne projekty w Pythonie z zakresu gier i wizualizacji danych.

      👉 Kup ją  tutaj.

      image30

      Head First Python | Paul Barry

      Jeśli chcesz szybko ogarnąć podstawy Pythona, wybierz ten dynamiczny, przyjazny początkującym przewodnik. Zawiera praktyczne ćwiczenia z kodem, dzięki którym błyskawicznie przejdziesz od podstaw języka do zbudowania własnej prostej aplikacji webowej.

      Do tego treść podana jest w bardzo przystępnej formie wizualnej, co ułatwia przyswajanie wiedzy i pomaga czytelnikom uczyć się szybko i skutecznie.     

      👉 Kup ją tutaj

      image49

      Learn Python in One Day and Learn It Well. Python for Beginners with Hands-on Project | Jamie Chan

      Twierdzenie, że dowolnego języka programowania można nauczyć się w jeden dzień, to spora przesada. Odkładając na bok przesadzony tytuł, ta przydatna książka podchodzi do nauki Pythona praktycznie, ze starannym doborem tematów i przykładów, które rozkładają złożone pojęcia na przyswajalne kawałki i przyspieszają zrozumienie. 

      Przewodnik omawia podstawy takie jak zmienne, typy danych, formatowanie łańcuchów, obiekty i klasy oraz dziedziczenie, a następnie stosuje je w praktycznych projektach, żeby pokazać, jak działają w praktyce. 

      👉 Kup ją tutaj

      image5

      Python Programming: An Introduction to Computer Science | John M. Zelle

      Wydana jako podręcznik akademicki do nauczania wstępu do programowania, ta książka używa Pythona, żeby zilustrować fundamentalne zasady projektowania i pisania kodu.

      Choć nie jest to wprost kurs Pythona, książka może być bardzo przydatna dla osób z biznesu bez wcześniejszej wiedzy o programowaniu. Szczegółowo wyjaśnia podstawy informatyki i programowania.

      👉 Najnowsze wydanie kupisz na Amazonie.

      Książki o konkretnych zastosowaniach Pythona

      image22

      Python Cookbook, 3rd Edition | David Beazley, Brian K. Jones

      Ten obszerny przewodnik po Pythonie szczegółowo omawia wszystkie aspekty pisania kodu w Pythonie 3. Polecany jest zawodowym programistom Pythona, którzy potrzebują odświeżenia wiedzy o działaniu języka w wydaniu 3.X.

      Książka zawiera mnóstwo kompletnych przykładów kodu do wykorzystania w pracy. Ma też praktyczne receptury, dzięki którym czytelnicy zrealizują dane zadanie efektywniej i mniejszą ilością kodu.

      👉Kup ją tutaj.

       👀 Zobacz także: Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code | Zed A. Shaw

      image18

      Python Machine Learning, 3rd Edition | Sebastian Raschka, Vahid Mirjalili

      Uczenie maszynowe i deep learning należą do czołowych obszarów zastosowań Pythona, więc liczba książek w tej dziedzinie jest przytłaczająca. Jedną z propozycji wartych rozważenia jest ten bestsellerowy przewodnik z bogatymi wizualizacjami, jasnymi wyjaśnieniami i działającymi przykładami użycia Pythona w kontekście ML i deep learningu.

      Książka omawia kluczowe frameworki, modele i techniki Pythona, które umożliwiają inteligencję maszynową, ucząc krok po kroku, jak wykorzystać moc języka do budowania rozwiązań w klasyfikacji obrazów, inteligentnych aplikacjach webowych, analizie sentymentu i wielu innych.

      👉Kup ją tutaj

      👀 Zobacz także: Introduction to Machine Learning with Python | Andreas C. Müller, Sarah Guido

      image48

      Python for Data Analysis, 2nd Edition | Wes McKinney

      Jeśli Twój projekt w Pythonie dotyczy przede wszystkim wizualizacji danych, sięgnij po tę książkę. Na praktycznych studiach przypadków uczy, jak rozwiązywać w Pythonie szeroki wachlarz problemów analitycznych. 

      Ten przewodnik, przeznaczony dla specjalistów data science, opiera się głównie na modułach Pythona, a nie na pisaniu własnego oprogramowania, i obejmuje wszystkie podstawowe etapy zbierania, czyszczenia, analizy, modyfikowania i wizualizacji danych z użyciem Pandas, NumPy, Matplotliba i innych narzędzi Pythona. 

      👉Kup ją tutaj

      👀 Zobacz także: Python Data Analytics: With Pandas, NumPy, and Matplotlib | Fabio Nelli

      image43

      Natural Language Processing with Python | Steven Bird, Ewan Klein, Edward Loper

      Jeśli chcesz poznać zastosowania Pythona w przetwarzaniu języka naturalnego, zacznij od tej książki. Pełna praktycznych przykładów, omawia szczegółowo programy w Pythonie pracujące z dużymi zbiorami nieustrukturyzowanych tekstów. 

      Książka analizuje między innymi główne algorytmy analizy i przetwarzania tekstu pisanego, obejmując wszystkie etapy projektów NLP: od przetwarzania surowego tekstu, przez stosowanie tagerów i kategorii, po zarządzanie danymi językowymi.

      👉 Kup książkę tutaj

      👀 Zobacz także:  Natural Language Processing in Action: Understanding, analyzing, and generating text with Python | Lane Hobson, Howard Cole, Hapke Hannes 

      image10

      Automate the Boring Stuff with Python, 2nd Edition: Practical Programming for Total Beginners | Al Sweigart

      Ta książka to lektura obowiązkowa dla każdej osoby z biznesu, która chce zoptymalizować pracę dzięki automatyzacji. Po omówieniu podstaw Pythona w pierwszych kilku rozdziałach książka na praktycznych przykładach szybko uczy, jak zautomatyzować żmudne zadania biurowe, jak wypełnianie arkuszy Excela, wysyłanie e-maili czy porządkowanie i wyszukiwanie plików.

      Najlepsze jest to, że do zastosowania opisanych kroków nie potrzebujesz absolutnie żadnego doświadczenia programistycznego, a nowo zdobyte umiejętności możesz od razu wykorzystać, żeby zaoszczędzić godziny mozolnej pracy.

      👉 Pobierz książkę za darmo tutaj albo kup ją w sklepie Amazon

      👀 Effective Python: 90 Specific Ways to Write Better Python | Brett Slatkin

      Kursy i certyfikaty z Pythona

      I znów: jest mnóstwo kursów, warsztatów i programów certyfikacyjnych z Pythona, od podstawowych po zaawansowane. Nie sposób wymienić wszystkich, więc skupimy się na tych o szczególnie dobrym stosunku jakości do ceny. Dodatkowo przyjrzymy się wyłącznie programom online.

      image24

      Certyfikacja OpenEDG Python Institute

      Ten program certyfikacyjny prowadzi The Python Institute, niezależna organizacja, której celem jest promowanie Pythona i wyposażanie specjalistów w odpowiednią wiedzę o tym języku. 

      Organizacja zdefiniowała niezależną od dostawcy, komputerową ścieżkę certyfikacji Pythona na trzech poziomach kompetencji. Certyfikaty są ważne bezterminowo i stały się faktycznym światowym standardem potwierdzania biegłości w Pythonie.

      Poziomy zaawansowania: Entry, Associate, Professional (dwa stopnie)
      Przygotowanie: Samodzielna nauka
      Opłata: od 59 do 295 dolarów, w zależności od poziomu
      Certyfikat: Tak

      image19

      Certyfikacja Microsoft Introduction to Programming Using Python

      Microsoft oferuje własną certyfikację umiejętności w Pythonie, choć wyłącznie na poziomie associate. 

      Od kandydatów oczekuje się co najmniej 100 godzin doświadczenia w programowaniu w Pythonie oraz znajomości jego kluczowych funkcji i możliwości. Wymagana jest podstawowa wiedza o pisaniu, dokumentowaniu i debugowaniu kodu. Program obejmuje też moduły i narzędzia Pythona oraz obsługę błędów

      Poziomy zaawansowania: Associate
      Przygotowanie: Samodzielna nauka (bezpłatnie) i zajęcia z prowadzącym (płatne)
      Opłata: 127 dolarów
      Certyfikat: Tak
      URL: https://docs.microsoft.com/en-us/learn/certifications/exams/98-381 

      image41

      The Complete Python 3 Course: Beginner to Advanced | Udemy

      Kompletny kurs programowania w Pythonie obejmujący ponad 18 godzin materiałów online, podzielonych na blisko 150 wykładów. 

      Ten kurs z dożywotnim dostępem dostępny jest na Udemy i kończy się certyfikatem ukończenia. Obejmuje zarówno Pythona i ogólne podstawy programowania, jak i bardziej zaawansowane pojęcia oraz frameworki. Dobrze sprawdzi się u początkujących, bo nie wymaga doświadczenia. Do tego jest wyjątkowo tani.

      Poziomy zaawansowania: początkujący
      Przygotowanie: Samodzielna nauka
      Opłata: zależnie od regionu i języka. Zwykle mieści się w przedziale 15-50 dolarów.
      Certyfikat: Tak
      URL: https://www.udemy.com/course/python-complete/ 

      image11

      Kursy Real Python | Real Python

      Real Python to kopalnia wiedzy o wszystkim, co związane z Pythonem. Serwis oferuje ponad 420 tutoriali i ponad 1600 pogłębionych filmów szkoleniowych, wybranych i zweryfikowanych przez społeczność ekspertów Pythona.

      Kursy obejmują wszystkie poziomy zaawansowania i kończą się certyfikatem ukończenia, którym można się dzielić. Dostęp do wielu materiałów jest bezpłatny. Żeby odblokować wszystkie możliwości, trzeba jednak wykupić subskrypcję od 20 dolarów miesięcznie.

      Poziomy zaawansowania: wszystkie
      Przygotowanie: Samodzielna nauka
      Opłata: BEZPŁATNIE (do odblokowania części modułów wymagana subskrypcja)
      Certyfikat: Tak
      URL: https://realpython.com/courses/  

      image23

      Certyfikat IBM Python for Data Science | Coursera 

      Kolejny program dostępny na Courserze przygotowano we współpracy z IBM i dotyczy on konkretnie zastosowania Pythona w ML i data science.  

      Ukończenie kursu zajmuje około 12 miesięcy (przy sugerowanym tempie 4 godzin tygodniowo). Skierowany jest do wszystkich, którzy budują karierę w data science albo chcą pogłębić wiedzę o automatyzacji opartej na danych. Program obejmuje dziesięć kursów poruszających różne tematy, od podstaw data science, przez bazy danych w Pythonie, po praktyczne scenariusze data science. 

      Poziomy zaawansowania: początkujący
      Przygotowanie: Samodzielna nauka
      Opłata: specjalizacje kosztują od 39 do 79 dolarów miesięcznie, jeśli potrzebujesz certyfikatu. Same materiały kursu można jednak przejrzeć całkowicie za darmo.
      Certyfikat: Tak + odznaka IBM
      URL: https://www.coursera.org/professional-certificates/ibm-data-science

      image42

      Python for Managers na Columbia Business School

      Oto ciekawa propozycja dla liderów i menedżerów, którzy chcą lepiej zrozumieć Pythona. Uczy podstaw programowania w Pythonie z perspektywy zarządzania biznesem. 

        Na kursie nauczysz się pracować z dużymi wolumenami danych, współpracować z osobami technicznymi i wdrażać aplikacje w Pythonie w celu optymalizacji pracy. Program obejmuje osiem tygodni nauki (6-8 godzin tygodniowo) i zawiera moduły między innymi o Pandas, analizie danych i web scrapingu. 

      Poziomy zaawansowania: początkujący
      Przygotowanie: Samodzielna nauka
      Opłata: 2250 dolarów
      Certyfikat: Tak
      URL: https://online1.gsb.columbia.edu/columbia/python-for-managers 

      image16

      Python Fundamentals od Datacamp

      Datacamp to platforma edukacyjna online skupiona konkretnie na rozwijaniu umiejętności z zakresu data science. Oferuje mnóstwo kursów w ramach różnych ścieżek umiejętności i kariery (w tym dedykowanych ścieżek dla inżynierów danych i specjalistów data science)

      Python Fundamentals uczy podstaw programowania w Pythonie. Program obejmuje cztery kursy, zaczynając od Intro to Python. Kolejne poziomy, dopasowane już do zastosowań w data science, dostępne są wyłącznie dla subskrybentów. 

      Poziomy zaawansowania: początkujący
      Przygotowanie: Samodzielna nauka
      Opłata: bezpłatny moduł wprowadzający, dostęp do kursów premium od 12 dolarów miesięcznie
      Certyfikat: Tak
      URL: https://www.datacamp.com/courses/intro-to-python-for-data-science  

      image34

      Google IT Automation with Python | Coursera

      Coursera przynosi kolejny kurs Pythona na żądanie, tym razem przygotowany przez Google. Ma dać specjalistom IT (nie tylko programistom) umiejętności związane z Pythonem i automatyzacją. 

       Opierając się na podstawach IT, program uczy, jak rozwiązywać problemy biznesowe i automatyzować rozwiązania w Pythonie. Osiem miesięcy materiału podzielono na sześć przystępnych modułów, które pokazują między innymi, jak używać Pythona do interakcji z systemem operacyjnym, automatyzować podstawowe zadania czy diagnozować problemy IT. 

      Poziomy zaawansowania: początkujący
      Przygotowanie: Samodzielna nauka
      Opłata: specjalizacje kosztują od 39 do 79 dolarów miesięcznie, jeśli potrzebujesz certyfikatu. Same materiały kursu można jednak przejrzeć całkowicie za darmo.
      Certyfikat: Tak
      URL: https://learndigital.withgoogle.com/digitalgarage/course/google-it-automation 

      image1

      Programming Essentials in Python w Cisco Networking Academy

      Cisco również pomaga promować Pythona, oferując kurs przygotowujący do certyfikatów Python Programmer prowadzonych przez The Python Institute. Materiał podzielono na osiem modułów, których ukończenie zajmuje około 70 godzin. Poza treściami wideo kurs obejmuje laboratoria praktyczne, quizy modułowe, testy podsumowujące i interakcję z innymi uczestnikami.

      Program obejmuje kluczowe umiejętności w Pythonie, w tym projektowanie, tworzenie i rozwijanie programów, podstawy algorytmów oraz zrozumienie pracy programisty. Wielojęzyczny kurs nie wymaga wcześniejszej znajomości Pythona ani programowania.

      Poziomy zaawansowania: podstawowy
      Przygotowanie: Samodzielna nauka
      Opłata: BEZPŁATNIE przy nauce we własnym tempie lub płatnie przy zajęciach z prowadzącym
      Certyfikat: Tak
      URL: https://www.netacad.com/courses/programming/pcap-programming-essentials-python

      Eksperci i influencerzy Pythona

      Interesujesz się Pythonem i chcesz trzymać rękę na pulsie, ale nie masz czasu na książki, podcasty czy kursy? Nie ma problemu! Po prostu sprawdź te profile w mediach społecznościowych i obserwuj je, żeby być na bieżąco z Pythonem.

      image40

      Kevin Goldsmith

      @KevinGoldsmith
      https://www.kevingoldsmith.com/

      Programista, architekt oprogramowania, engineering manager i menedżer wyższego szczebla w IT od ponad 28 lat. Obecnie Chief Technology Officer (CTO) w Anacondzie, wcześniej pełnił funkcje kierownicze w Adobe i Spotify.

      image32

      Adrian Holovaty

      @adrianholovaty
      http://www.holovaty.com/

      Amerykański programista webowy, dziennikarz i przedsiębiorca. Współtwórca frameworka webowego Django i orędownik „dziennikarstwa przez programowanie”.

      image15

      Ewa Jodlowska

      @ewa_jodlowska

      Dyrektor wykonawcza Python Software Foundation. Jest związana z fundacją od 2012 roku, a wcześniej wspierała PyCon jako współpracowniczka.

      image27

      Eric Matthes

      @ehmatthes
      https://ehmatthes.com/

      Nauczyciel, haker i autor jednej z najlepiej sprzedających się książek o Pythonie na świecie, Python Crash Course.

      image7

      Wes McKinney

      @wesmckinn
      https://wesmckinney.com/

      Programista open source skupiony na narzędziach do analizy danych. Stworzył pythonowy projekt pandas i jest współtwórcą Apache Arrow.

      image12

      Guido van Rossum

      @gvanrossum
      https://gvanrossum.github.io/

      Ojciec Pythona. To mówi wszystko.

      image46

      Reshama Shaikh

      @reshamas
      https://reshamas.github.io/

      Specjalistka data science i statystyczka z MBA, biegła w Pythonie, R i SAS. Organizuje grupy meetupowe Data Umbrella (dla osób niedostatecznie reprezentowanych w data science) i NYC PyLadies.

      image35

      Renee Teate

      @BecomingDataSci
      http://www.becomingadatascientist.com/

      Obecnie dyrektorka data science w HelioCampus. Renee przez całą karierę pracowała z danymi: jako projektantka baz danych, programistka SQL, analityczka danych i specjalistka data science. Prowadzi podcast Becoming a Data Science .

      image3

      Jake VanderPlas

      @jakevdp
      http://vanderplas.com/

      Dyrektor ds. otwartego oprogramowania w eScience Institute na University of Washington, wieloletni użytkownik i twórca naukowego stosu Pythona. Jest autorem Python Data Science Handbook.

      image8

      Carol Willing 

      @WillingCarol
      https://www.willingconsulting.com/

      Główna programistka JupyterHub i mybinder.org, współredaktorka The Journal of Open Source Education (JOSE) i współautorka Teaching and Learning with Jupyter. Carol jest trzykrotną członkinią Steering Council Pythona i główną programistką CPythona, a do tego Fellow Python Software Foundation i byłą dyrektorką fundacji.

      09 Python w 2021 roku i później

      Mamy nadzieję, że ten raport pomógł Ci zrozumieć, gdzie Python jest dziś. Zatrzymajmy się jednak na chwilę i pomyślmy o jego przyszłości.

      Jaka jest przyszłość języka Python?

      Mający już za sobą kilka pokoleń Python ma przed sobą świetlaną przyszłość. Przechodzimy właśnie czwartą rewolucję przemysłową, w której na znaczeniu zyskują takie dziedziny jak robotyka, automatyzacja, nanotechnologia, inteligentna ochrona zdrowia i inne obszary związane z inteligencją maszynową oraz data science. Ponieważ informatyka stała się poniekąd pojęciem zbiorczym, Python ma wygodną przewagę jako najpopularniejszy język programowania 2020 roku. I ten stan prawdopodobnie się utrzyma. 

      Amerykańskie Biuro Statystyki Pracy przewiduje wzrost liczby miejsc pracy w badaniach nad informatyką i informacją o 15% do 2029 roku.

      Amerykańskie Biuro Statystyki Pracy prognozuje wyraźny wzrost liczby miejsc pracy w data science w nadchodzących latach. Według Occupational Outlook Handbooktej instytucji zapotrzebowanie na naukowców zajmujących się badaniami nad informatyką i informacją wzrośnie o 15% do 2029 roku, czyli znacznie szybciej niż średnia dla wszystkich zawodów. Serwis CareerFitter  przewiduje jeszcze silniejszy trend, zapowiadając 35% skok popytu na statystyków i matematyków! Perspektywy dla innych zawodów związanych z obsługą danych oraz pracą z AI i systemami uczenia maszynowego są równie optymistyczne. 

      Według Światowego Forum Ekonomicznego Python należy do trzech najważniejszych kompetencji specjalistów data science.

      Raport Światowego Forum Ekonomicznego Future of Jobs  wymienia programowanie w Pythonie wśród trzech najważniejszych kompetencji w zawodach związanych z danymi i AI. Python to niezbędny obszar wiedzy w planie nauki specjalistów data science. Jeśli chodzi o stanowiska inżynierskie, badanie uznaje ten język za najbardziej poszukiwaną technologię. 

      Najbardziej postępowe uczelnie wyższe na świecie mają w programach zajęcia z programowania w Pythonie, co mocno przemawia za świetlanymi perspektywami języka. Już kilka lat temu Python był najpopularniejszym językiem wprowadzającym do nauki programowania na czołowych amerykańskich uczelniach. Dziś utrzymuje tę pozycję: wykłada się go w takich elitarnych ośrodkach jak Harvard, Yale, Stanford czy MIT w USA, a poza nimi Cambridge, Oxford, National University of Singapore, Uniwersytet Tokijski czy Uniwersytet w Sydney.

      Podsumowując, można bezpiecznie stwierdzić, że choć pojawią się nowe technologie, a część istniejących, jak R, Swift czy Go, prawdopodobnie zyska na znaczeniu, pozycja Pythona pozostanie w najbliższych latach niezagrożona. Język będzie nadal dominował w programowaniu AI, uczenia maszynowego i data science, a także w web developmencie. A kto wie, może w nadchodzących latach pojawią się nowe obszary jego zastosowań?

      Python - chart 2

       

      10 Zbuduj z nami wyjątkową aplikację w Pythonie!

      Dziękujemy za lekturę naszego przewodnika po Pythonie. Skoro udało Ci się dotrzeć tak daleko, Twoje zainteresowanie tym językiem jest niemałe. 

      Może decyzja o Pythonie już zapadła, ale brakuje Ci ludzi, żeby ruszyć dalej? A może wciąż się wahasz i chcesz skonsultować swój pomysł z ekspertami?

      Tak czy inaczej, mamy dla Ciebie świetną wiadomość: chętnie pomożemy! Nasz pierwszorzędny zespół programistów i konsultantów Pythona pomoże Ci:

      • Zaprojektować i zbudować aplikację w Pythonie.
      • Zabezpieczyć oprogramowanie oparte na Pythonie.
      • Uodpornić aplikację na błędy.
      • Zdecydować, czy Python jest właściwym wyborem dla Ciebie.

      Wystarczy słowo, a od razu połączymy Cię z naszym zespołem Pythona.

      Udostępnij ten przewodnik w mediach społecznościowych

      Chcesz zbudować kolejny produkt cyfrowy w Pythonie?

      Prowadzimy rozległą sieć sprawdzonych specjalistów IT, w tym ekspertów Pythona. Możemy zapewnić Ci konsultacje techniczne, dołożyć programistów do istniejącego zespołu albo zbudować go od zera.