Nerad bych, aby to vyznělo jako provokace, to opravdu ne. Jen volná asociace.
Měl jsem cíl: embeded jazyk do Cčkového programu.
Hodně jsem si pohrával s Luou, byl to favorit.
Po určitých peripetiích jsem C hodil přes palubu, a zakotvil v Rustu. Jen pro zajímavost, tam jsem měl docela problém si vybrat embeded jazyk. Na výběr je jich totiž docela dost z různých světů (lisp, algol, ML). Nakonec jsem zvolil Rune.
Má to typy, a rádo na nich chcípá, ale jinak ano. Já to mám hlavně jako lepidlo, takže potřebuju snadno vytvořit objekt, ten předat dovnitř funkce, a zpracovat.
Chtěl jsem určitý komfort, a toto mi sedlo.
Pak existují ještě další, které by toho měli umět ještě víc, třeba Gluon je brutálně typovaný, ale jinak snad až moc komplexní. Pak mě hodně zaujal Roc, ale ten si jde svou neembed cestou.
Rune? dalši jazyk, ktory si uzije svojich 15 min slávy a potom zanikne. Rozhodne to nepovažujem vo vašej situácii za dobrú voľbu: Jeho syntax sa podobá na primárny jazyk, takže sa vám bude pliesť. Pri tej lue by sa Vám určite neplietla. Asi preto je taká obľúbená (spolu s pythonom) medzi C/C++ programátormi a vývojármi hier. Nehovoriac o velkosti interpreterov a rokmi overenom vyzretom ekosystéme
Lua má naprosto dokonale vyřešené importování modulů z C. Ale naopak je to hrozně mentální kolotoč. Když na to přijdeš, tak je to v pohodě, ale než se naučíš počítat všechny ty parametry, je to jak psát v assembleru.
Lua je, obvykle, separé knihovna, která je bindovaná do Rustu. Rune je zkompilovaný jako součást.
Luu jsem původně zvažoval, páč je hodně jednoduchá a dobře se serializuje. A dobře ji znám. Python znám taky dobře, a proto jsem ho nechtěl :-)
A tak, když jsem zjistil, že v Rustu je dokonce výběr, tak jsem přitlačil na požadavcích. Nějaké typy, nějaká moderní syntaxe... A to napojení z/do je hodně pohodlné.