Siiiiiis vaikka toi pasteamani intro template tuottaa ihan suoraan C++ kääntäjän läpi menevästä koodista n. kahden kilon pakatun binäärin, joka siis luo ikkunan, hakee GL-kontekstin ja rendaa tyhjän quadin passthrough shadereilla (jotka binäärissä mukana) + tuet yksinkertaiselle äänen tuottamiselle. Voin testata vielä kunhan pääsen oikean koneen ääreen.
Rustia en ole käyttänyt itse missään kokokriittisessä koskaan mutta näemmä sillä pääsee lähelle, tosin melko rumaa kikkailua:
main is usually a function: 151-byte static Linux binary in Rust Nimenomaan olisi hienoa tietää kuinka pitkälle Rustin tyyppijärjestelmän konseptit taipuu vaikkapa embedded-käytössä ennen kuin alkaa näkyä overheadia ajonaikaisessa tai kooditilan muistinkäytössä (ts. ei mitään unsafe-blokkeja joka paikassa).
C++:n kanssa on voinut käyttää esim. smart pointtereita todella pienissäkin ympäristöissä, tosin itse implementoituja vrt. STL. Osa optimoituu ulos käännösaikana suoraan ja lopun overheadi ei parhaimmillaan eroa mistään manuaalisesta allokaattorin kutsumisesta. Ja toki pitää käytännössä tässäkin osata assembleria (ja tarkastella kääntäjän outputtia välillä) vaikka sitä ei varsinaisesti paljoa kirjoiteta, pl. optimoinnit primitiivisempien suorittimien kanssa, moderneilla vehkeillä intrinsincit riittää esim. vektorilaskennassa tosi pitkälle.
Ihme että edes noin pieneksi. C++:n stream-I/O on melko herkkä binäärin bloattaamiselle (ja muutenkin designiltään sellainen että usein suorilta bannattu codebaseista), samaten ihan STL containerit. -Os saattaa myös tuottaa pienemmän binäärin kuin O3.