Proč Python?
Licence¶
- Python je zadarmo (free as in "free beer")
- U Pythonu (a navázaných knihoven) jsou k dispozici zdrojové kódy (free as in "free speech")
- Licence je svobodná i v tom, že umožňuje využít Python v uzavřených komerčních projektech (není virální jako GPL)
- Plné znění licence viz http://docs.python.org/3/license.html
Z toho plyne několik důsledků:
- Nižší náklady
- Odpadají problémy s licenčním serverem (off-line použití, žádný boj mezi uživateli o volné licence)
- Možnost sdílet kód s kýmkoliv (aniž by si musel opatřovat komerční SW)
- Možnost zjistit, jak funguje konkrétní funkce přímo ze zdrojového kódu (ne černá skříňka jako v případě většiny komerčního SW)
Univerzální programovací jazyk s bohatou výbavou¶
- objektové programování, funkcionální programování (tak trochu :)
- výborně čitelná syntaxe
- škálovatelnost: jednoduché skripty i složité aplikace s mnoha moduly (N.B.: jmenné prostory)
- automatické jednotkové testování
- snadná automatická dokumentace vlastního kódu
- široká uživatelská základna, dostupná pomoc (google, http://stackoverflow.com)
- Python je široce žádaná dovednost, na rozdíl od dedikovaných vědeckých jazyků (IDL, Matlab apod.)
Univerzální knihovna¶
- Potřebujete získat data více či méně tradičním způsobem (z webu, z divného formátu souboru)?
- Potřebujete zpracovávat komplikovaným způsobem text?
- Potřebujete ke svému programu GUI?
- Chcete mít webové rozhraní?
- Chcete si poslat mail, až bude výpočet dokončen?
- Potřebujete pustit ze svého programu jiný proces a komunikovat s ním?
Na všechny tyto úkoly v Pythonu najdete knihovnu (často již ve standardní knihovně), zatímco ve specializovaném vědeckém SW (MATLAB, IDL) byste tento problém řešili obtížně.
Viz databáze na PyPi, která obsahuje přes 500 000 balíčků (různé kvality).
Vazba na další jazyky¶
Kvůli rychlosti (a existenci knihoven):
Ale i:
- MATLAB (Matlab Engine for Python, python-matlab-bridge, mlabwrap)
- IDL (pIDLy)
- R (RPy)
- Java (Jython)
Nedostatky¶
- Obtížné vytvořit aplikaci spustitelnou bez závislostí kdekoliv ("EXE").
- Jazyk s dynamickým typováním -> omezená statická kontrola kódu.
- Obecně pomalý oproti kompilovanému kódu (proto se používají knihovny v C).
- Vícevláknové aplikace v CPythonu - z mnoha důvodů vlastní kód Pythonu běží vždy jen v jednom vláknu. Opravdu paralelně tak můžou běžet jen další knihovny volané z Pythonu.
Vědecká Python komunita je velká a aktivní¶
Na internetu najdete mnoho (obvykle open-source) Python nástrojů pro vědce. Navíc existují konference jako (Euro)SciPy, PyData aj.
Podívejte se např. na nedávnou úvodní přednášku na SciPy 2021 od Dr Fernando Perez.
In [1]:
from IPython.lib.display import YouTubeVideo
YouTubeVideo("Wpz79_S9KmM", width=800, height=500, extras=["t=988"])
Out[1]:
In [ ]:
Komentáře
Comments powered by Disqus