Z mého pohledu se Python opravdu může stát dominantním jazykem, důvodů je hned myslím několik
- dostává se do podobné pozice, jako byl v době osmibitů basic
- velice jednoduchý na naučení, nicméně na druhou stranu umožňuje poměrně sofistikované konstrukce
- díky balíkům Numpy/Scipy jednoznačně jasnou volbou pro vědeckou komunitu potřebující "prohnat" něčím naměřená data a daný script už nikdy nevidět
- integrovatelný do běžných aplikací jako scriptovací jazyk pro tvorbu nejrůznějších rozšíření ... a přiznejme si, pokud už běžný smrtelík chce něco programovat, je to takovýto případ chybějící funkce v něčem hotovém
Na druhou stranu jasnou nevýhodou je stále přítomnost globálního locku interpretu, který prakticky znemožňuje použitelný vícevláknový běh kódu
GIL je skutečně prokletím a jedinou slepou cestou v návrhu Pythonu. A stejně jako zde, se vedou na Python fórech vášnivé diskuze zda zrušit/nezrušit GIL (na těch pythoních mnohem fundovanější než zde). I s GILem lze naprogramovat velice rychlé paralelní programy v případě, že pracujete se soubory ať už z internetu nebo s obrovskými soubory fotek. Tam kde je I/O, je GIL vyblokován. Pro normální threading je to zpočátku s GILem pro začátečníka docela dobré, naučí se pracovat se sdílenou pamětí. Ale GIL lze také vypnout a pak je správa zámků na programátorovi a přinese mu bezesné noci. Vedle toho ovšem má Python knihovnu multiprocessing, která se sdílenou pamětí nepracuje a každý procesor má svou vlastní CPU a svou paměť. A komu je to málo, tak má Python importy OpenMP, MPI4 a další. A vůbec není náhodou, že se Python používá na superpočítačích na špičkové úlohy pro porovnávání sekvencí DNA. Tady zřejmě diskutují lidé, kteří nikdy nic paralelního nenaprogramovali a jen někde pochytili to, jaká hrůza je ten GIL. Na paralelním programování je nejkrásnější a také nejobtížnější procesní a paměťová dekompozice úlohy na procesory a skládání výsledků jejich výpočtů. Poslední umění, které v programování ještě zbylo, to ostatní už je jen robotárna ve frameworcích.
Ta integrace do různých prostředí je naprosto dokonalá. Já např. píši makra pro Calc v Open Office jen v Pythonu, existuje modul pro vstup a výstup do Calcu a na zbytek už je skvělý Python, žádný Basic.
Jen taková struktura tuple při práci s databází hodně zabrání napsání kódu, kde je možný SQL injection.
Napsal jsem si vlastní programy pro správu svého RAID pole v souborovém systému btrfs a včetně vyhodnocování dat SMART a to za dva dny. V C bych to psal měsíc, v Javě 14 dní v diluviálním bashi se mi to vůbec nechce dělat, PERL neumím.
A víte proč nyní NASA shání programátory v Pythonu? Protože, když máte někde u Jupiteru sondu a potřebujete něco opravit nebo změnit, tak to nejrychleji a nejefektivněji uděláte v Pythonu.
Ono, odstranit GIL z CPythonu, to už je vlastně hotové, loni měl o tom Larry Hastings pěknou přednášku na EuroPythonu. A proč tedy sále v aktuální 3.6 straší? No, protože díky němu je CPython rychlý tak jak je. Viz https://www.youtube.com/watch?v=fgWUwQVoLHo.
> že se Python používá na superpočítačích na špičkové úlohy pro porovnávání sekvencí DNA
A tam je to fakt napsané v Pythonu (což se mi moc nezdá, že by si někdo pořídil superpočítač a pak tam provozoval inherentně pomalý jazyk), nebo většinu práce dělá z Pythonu volaný nativní kód (který může GIL obejít)?
> Jen taková struktura tuple při práci s databází hodně zabrání napsání kódu, kde je možný SQL injection.
Ostatní jazyky používají pole a nepřijde mi to o moc jiné…