Globální statistika, málo co může být objektivnější. Samozřejmě o příčinách se můžeme hádat. Já sázím na peníze, dynamické jazyky nabízí vyšší produktivitu a jsou v řadě oblastí ekonomicky výhodnější.
To bych úplně netvrdil. To, že někdo něco rychle poslepuje snáz v Pythonu než v C++, je asi pravda, na stranu druhou to časem bude potřebovat přepsat... taky asi člověk najde snáz Pythonistu než Haskellistu.
Ale to se přece navzájem nevylučuje. V 99 % případu to řešení v Pythonu bude dostatečné, ve zbytku se přepíše.
Já příležitostně v Pythonu v enterprise prostředí dělám automation, administrativní i kancelářské, podle toho jak organizace potřebuje zrovna přesypávat data odtud tam a zpátky, mezi různými systémy, mezi uživateli, mezi databázemi, mezi organizacemi, mezi excely a wordy a autokedy a já nevím čím vším ještě a mezi tím vším navzájem.
To jsou věci malého rozsahu, často jednorázové nebo provizorní, ale funkční a uspoří hodně člověkohodin za rutinní činnost, tedy šetří drahý čas lidí a podstatně snižují chybovost. Python je na to excelentní. Zadání je typický vágní, často se pod tlakem nepředvídatelných okolností mění a to poměrně rychle - takový je život.
S výhodou se tu využívá vysoká flexibilita jazyka, jakákoliv rigidnost je překážkou. Sem tam se z provizoria stane stabilní provozní záležitost, která pak běží roky. Někdy se v rámci integrace přepíše, většinou ale ne. Běží to spolehlivě, není pro to důvod. Každá taková věc běží jako portable balíček, který stačí zkopírovat, bez jakýchkoliv vnějších závislostí. Někde mi takhle běží balíčky s Python 2.5 který byl v době nasazení novinka, kolik už je to let, no nejméně deset.
Mám to snad psát v C, nebo Javě? Nesmysl, C je pro takové dynamické prostředí nevhodné, jen to problematické kompilování, udržovaní všech knihoven atd. Pak chce člověk upravit jeden řádek programu a zjistí, že stráví půl dne sháněním knihoven, aby to přeložil. Java dokonce ani není portable.
Nebo to mám dělat v nějakém minoritním jazyce? Třeba zmíněném Rustu nebo Haskellu? Vždyť ten v té době ani neexistoval. Má podporuje DCOM?, dostanu se s ním do excelu a acessu, má konektory na databáze, třeba 20 let starý Oracle? Je dobře odladěný a funguje ve všem stejně spolehlivě jako Python? Jak si tyhle jazyky poradí třeba s tímhle:
import win32com.client as win32
ex = win32.gencache.EnsureDispatch('Excel.Application')
ex.Visible = False
wb = ex.Workbooks.Add()
sh = wb.Sheets[0]
sh.Cells(1,1).Value = 'Hello World'
wb.SaveAs('x://test.xlsx')
wb.Save()
ex.Quit()
Mimochodem, skvělá ukázka dynamiky. Python si za pochodu vygeneruje všechny třídy pro aktuální rozhraní pro práci s Excelem, bez ohledu co na daném PC běží a verzi Excelu.