Ano, pokud je program CPU bound tj. chroustí čísla pak se volají knihovny v C/C++/Fortran. Program ale nedělá většinou jen to. A Python na to vše kolem, je good enough. Jedna by mohl např. vzít Go, jako něco lepšího. Je ale třeba volání C knihoven z Go rychlejší než z Pythonu? Zdá se že ani ne. Nebo to napsat celé třeba v C++/Fortran, vždycky možnost. Člověk by se ale třeba divil jak je rychlé R, když to volá nativní knihovny.
Však ty víš lépe než já :D
23. 5. 2023, 13:16 editováno autorem komentáře
S Go tohle nemám prakticky vyzkoušené. Co jsem chtěl a měl lépe říci, že nebude takový rozdíl mezi Go a Pythonem asi ani Java atd. když se volá nativní kód a pak už je na každém jestli se mu vyplatí používat lepidlo, nebo to klidně napsat v C++/Fortranu. Tam ale často přijde moment, že přidat najednou něco co v Pythonu je triviální a součástí distribuce, je náhle netriviální (IO/DB/XML) atd.
A nebo Julia, ale tam zase narážím na stejný problém, že není moc známá.
Podobné to bylo a stále je Python vs MATLAB, kde někdo prostě má lepidlo v MATLAB a kvůli tomu nechce jít do neznámých vod jako Python. MATLAB stejně volá nativní MKL, takže stejná situace jako v Pythonu
23. 5. 2023, 14:25 editováno autorem komentáře
Kromě Fortranu asi má každý ze zmíněných jazyků balíčky na “všechno” (Julia a Rust určitě, i to Go, kdyby někdo jó chtěl), ale člověk se je musí naučit používat. Možná to je prostě jen pohodlnost, mě taky baví spíše psát kód pro dif. rovnice, než IO/DB/XML. Zrovna v Julii mi chvíli trvalo zjistit, jak používat balíčky pro JSON, HTTP server, Postgres apod.
Já mám poměrně čerstvou zkušenost z projektu, kde byly výpočty i embedded s trochou robotiky (v oblasti oceánografie), a nejvíc se osvědčila nejjednodušší řešení. V zásadě nejde ani tak o rychlost, jako spíše spolehlivost a snadnou modifikovatelnost. Ten projekt byl naprosto geniální pro výuku studentů, kde si osahali spoustu praktických technologií a taky teorii (fyzikální modelování).
to praveze ne. Napred se treba udela model v Pythonu (napada me max. jeste Julia) a potom se to nasadi do produkce. A tam je snaha o snizeni nakladu nebo ziskani vysledku rychleji. A tady se Numba, PyPy nebo i AOT prekladace hodi*
* Python neni inherentne pomaly, pomaly je CPython, tedy jedna jeho implementace (a soucasne i implementace referencni), ale ne implementace jedina
Asi to tu všichni znáte, ale třeba si to někdo rád přečte.
https://www.nature.com/articles/d41586-020-03382-2
https://www.nature.com/articles/d41586-019-02310-3
O Go (nepřekvapivě) nic podobného není, ale časem čekám Mojo :)