frameworkdjangowebdevelopmentwebaplication
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.
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ě.
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ů:
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.
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í“:
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.
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.
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.
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.
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.
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.
Jestli vás zajímá, jak jsme Python využili v praxi, podívejte se na naše případové studie, např: