Blog Co je to Python, jak funguje a proč ho máme rádi

Programovací jazyk, který používáme už více než 15 let. Naši vývojáři ho mají rádi, protože je krásně čitelný a dá se s ním vytvořit téměř cokoliv – webové aplikace, e-shopy i rozsáhlé interní systémy. A nejsme v tom sami, denně Python používají v Googlu, Microsoftu nebo Spotify, je v něm vytvořené YouTube a pracuje s ním i NASA.

frameworkdjangowebdevelopmentwebaplication
Python

Co je to Python

Univerzální programovací jazyk, který se používá k vytváření širokého spektra softwaru – např. e-shopy, webové aplikace, interní systémy. Vyvíjí se s ním také desktop aplikace, umožňuje zpracování big data, zlepšuje strojové učení, slouží ke skriptování nebo ovládání IoT zařízení.

Jedná se o open-source jazyk, takže autorům neplatíte za licence k jeho používání. Vymyslel ho nizozemský programátor Guido van Rossum na začátku 90. let a jazyk za více než 30 let fungování ohromně vyzrál. Python se dlouhodobě drží ve špičce nejpopulárnějších programovacích jazyků, každý den s ním pracují miliony programátorů po celém světě.

Proč ho máme v COexu rádi

Python je promyšlený a dobře se s ním navrhuje software na míru – ať už zákazník potřebuje cokoliv. Syntax jazyka se podobá angličtině, proto se ho nováček rychle naučí (ke snadnému učení přispívá otevřený zdrojový kód, ostatním se dá „dívat pod prsty“). Díky tomu se kolem Pythonu za více než 30 let vytvořila velká komunita programátorů – denně v jazyce programují miliony lidí. Líbí se nám, jak je komunita aktivní a to hned z několika důvodů:

  • Když řešíme jakýkoliv programátorský oříšek, pravděpodobně narazíme na člověka, který ho už vyřešil před námi.
  • Existuje spousta balíčků (frameworky, knihovny, SDK) vytvořených jinými členy komunity, které usnadňují programování.
  • Vývojáři si vzájemně revidují svoji práci, a tím jsou výstupy kvalitnější a bez velkých chyb.

Používáním zmíněných balíčků programátor šetří čas, vyhýbá se chybám a vývoj je levnější. Frameworky i knihovny se dají přirovnat ke stavebnici, případně ke konkrétní edici stavebnice. Programátor si z balíčků bere již vytvořené dílky a staví z nich „svůj“ software na míru. Má pak víc času a energie na řešení specifik daného projektu.

Na jakém principu funguje Python

Z pohledu programátora má Python sympatickou filozofii a pravidla. Jedním z nejdůležitějších principů je, že vás vede ke strukturovanému kódu. Zdrojový kód je pak krásně čitelný a snadno se v něm zorientujete.

Základní pravidla používání jazyka popisuje tzv. Zen of Python, tady je několik „přikázání“:

  • Krásný je lepší než ošklivý.
  • Jednoduchý je lepší než složitý.
  • Složitý je lepší než komplikovaný.
  • Zvláštní případy nejsou dost zvláštní na to, aby ospravedlnily porušení pravidel.
  • Pokud lze implementaci vysvětlit jen s obtížemi, jde o špatnou myšlenku.
  • Pokud lze implementaci vysvětlit snadno, mohla by to být dobrá myšlenka.

Občas se některé principy psaní kódu označují zkratkami. Zajímavé jsou např. DRY (Don't Repeat Yourself) vyzývá ke zjednodušování kódu (opakem je WET, We Enjoy Typing, přístup, kterým se označuje zbytečně rozvláčný, opakující se kód), KISS (Keep It Simple, Stupid) nebo YAGNI (You Aren't Gonna Need It), který doporučuje nepřekombinovávat a soustředit se na priority.

Které firmy nebo aplikace Python využívají

S Pythonem pracují progresivní startupy i velké technologické firmy jako IBM, Intel, Netflix, Spotify nebo Uber. V Googlu patří Python mezi 4 hlavní programovací jazyky. Téměř celý zdrojový kód aplikace YouTube je napsaný v Pythonu a využívá ho i NASA. Bez Pythonu by nefungoval ani Pinterest nebo Instagram, který má měsíčně, více než miliardu aktivních uživatelů.

Python se běžně uplatňuje ve všech oborech, které mají přesah do IT světa, například v logistice, obchodě, strojírenství, automotive, médiích, výzkumu nebo zábavním průmyslu.

Jak jsme se k Pythonu dostali

První roky fungování COexu jsme programovali především v PHP. V roce 2005 jsme se pustili do projektu, který ale vyžadoval odlišný přístup. Procházeli jsme dostupné technologie, narazili na webový framework Django (viz níže) napsaný v Pythonu a zjistili, že nám výrazně zjednoduší práci.

Rychle jsme se Python naučili, prověřili ho při zkušebních úkolech a naše domněnka se potvrdila – opravdu nám tento programovací jazyk pomůže a dokážeme s ním vytvářet skvělé IT projekty. Postupně jsme celá firma opustili PHP a přešli na Python.

Co je to Django a v čem je dobré

Webový framework napsaný v Pythonu. Pro nás v COexu je Django nejpoužívanější technologií při vytváření webových aplikací (celý technologický stack máme popsaný na webu). Django máme rádi, protože je tzv. batteries-included. To znamená, že je vybavený natolik širokou sadou funkcionalit, že s ním vývojář webové aplikace zvládne téměř všechno. Django např. automaticky komunikuje s různými databázemi (PostgreSQL, MariaDB, MySQL), vykresluje HTML obsah (stačí napsat pár řádků kódu a hned vidíte, jak web vypadá) nebo má vyřešené vytváření formulářů (vložíte pár řádků kódu a získáte zabezpečený formulář, který neohrozí data v databázi).

Framework je skvělý pro střední a větší projekty až pro stovky tisíc uživatelů. Je škálovatelný, takže se správně postavený software v Djangu snadno přizpůsobí, pokud se váš projekt pořádně rozjede nebo ho naopak potřebujete zmenšit. I tento framework těží z aktivní komunity vývojářů Pythonu – obvykle trvá jen několik dnů nebo týdnů, než někdo zrealizuje propojení Djanga s jakoukoliv novou IT službou na trhu. Zároveň rozvoj Djanga moderuje neformální uskupení lídrů (Django Software Foundation), které stanovuje dlouhodobý směr.

Příběh Djanga, včetně zajímavé historky, které popisuje, jak se webový framework dostal až do NASA, shrnuje kniha Two Scopes of Django.

Jaké další frameworky má Python

Rádi v COexu používáme framework FastAPI. Je to jeden z nejpopulárnějších webových frameworků v Pythonu, oproti Djangu je však minimalistický a zaměřený zejména na vývoj REST API rozhraní. Framework automaticky generuje dokumentaci pro API a tím usnadňuje propojení softwaru na míru se softwarem třetích stran. FastAPI podporuje i tzv. asynchronní programování, což je moderní přístup, který zrychluje vybrané operace, např. komunikaci mezi propojenými systémy (některé procesy probíhají paralelně, takže se nemusí čekat, až se první funkce dokončí na 100 %).

Pro testování využíváme primárně framework Pytest, který pomáhá s ověřením správného fungování aplikací a usnadňuje také rozšiřování týmu programátorů – nový člen týmu snadno ověří, že napsaný kód neohrozil už hotovou práci. Dříve jsme pracovali i s mikro frameworkem Flask, který jsme později nahradili frameworkem FastAPI.

Jakou má Python konkurenci

Vývoj neustále sledujeme, občas se objeví programovací jazyk, který má slibný potenciál – např. Rust nebo Go. V poslední době také roste obliba programovacího jazyka Julia, který však míří spíš k oblasti strojového učení a zpracování dat.

Doposud nás tedy žádná alternativa nepřesvědčila ke změně. Python je pro nás takový švýcarský univerzální nožík, se kterým vyřešíme jednoduché i složité programátorské úlohy.

V Pythonu jsme vytvořili komunitní portál pro PRUSA Research, mapovou aplikaci nebo B2B tržiště strojů

Jestli vás zajímá, jak jsme Python využili v praxi, podívejte se na naše případové studie, např:

Máte zájem o nezávaznou konzultaci, nebo se chcete jen na něco zeptat?