( bzt | 2024. 04. 16., k – 10:20 )

ha leulsz egy python, java, go ele, akkor 10 percen belul atlatod; tudod, mire szamits, mit hol keress.

Francokat. Ez csak addig igaz, míg egy adott nyelven, egy adott framework-ön belül maradsz.

leulsz egy C ele, es szopsz, mint a torkosborz

Csak a zöldfülűek szopnak vele, a gyakorlott programozók áldják az eget, hogy a C pontosan úgy ábrázolja az adatokat, ahogy azok a memóriában vannak, és ezért nincs szívás, nem úgy, mint ha pl Python-ból kell egy összetett struktúrát átadni egy C++-ban írt függvénykönyvtárnak. Vagy csak egy NumPy eljárásnak. Vagy egy CPython wrapperelt eljárásnak.

Egyáltalán érted, miről beszélek? Fogadjunk nem. Segítek, az általad felsorolt nyelvek a típuskódot az érték mellett tárolják, így képtelenség másolás nélkül adatokat mozgatni közöttük. Hiába van CPython, JavaJNI, CGo, ezeknek mind az a hátránya, hogy nagy adatmennyiségre használhatatlanok, mert nem képesek címszerinti átadásra, hisz az általad megnevezett összes nyelv egyedi formátumban tárolja az adatokat a memóriában. Röviden: ezeknél a nyelveknél még esélyed sincs megúszni pont azt, amit a glib-qt-nál kifogásoltál, mert a nyelv része, nem tudod megkerülni. C-ben simán megoldható (tudnillik mind a glib, mind a qt egy függvénykönyvtár és még véletlenül sem része a nyelvnek).

Nagyon, nagyon, nagyon leegyszerűsítve egy konkrét példával: C-ben megteheted azt, hogy definiálsz egy struct-ot, majd egy-az-egyben betöltesz oda egy BMP képet mondjuk, és mindenféle konvertálás nélkül máris kezelni tudod. Az általad felsorolt egyik nyelvben sem lehetséges ez, mert az azokban definiált struktúra memóriaképe nem azonos a fájlbeli bájtoffszetekkel. Ezeknél a BMP struktúra mezőit külön-külön kell egyesével beolvasni és átmásolni a nyelvben definiált struktúra mezőibe, hogy azok használható Python, Java, Go stb. változók legyenek. Capisci?

az stdlib evtizedes elavultsaga miatt kvazi mindegyik total mas

Ja, bocs, most látom csak, hogy csillámfaszláma vagy. Oszt POSIX szabványról teccett-e már hallani? Nincs olyan, hogy "totál más stdlib", minden libc interfésze pont ugyanolyan, szabvány.