Kis eszközöket elsősorban C-ben (esetleg C++ -ban) szoktak programozni, ezek a leginkább hardver közeli nyelvek, velük lehet a legjobban kihasználni a hardver tulajdonságait (leszámítva az asm-et, de néhány ezer sor után asm alkalmazásokat fejleszteni agyrém). Ezért C fordító minden szarra van, még filléres nyolclábú vackokra is.
Egy komoly hátránya van: ha pl. C-ben írt játékokat akarnák felrakni a mobilunkra, akkor előtte meg kéne szerezni a fejlesztőkörnyezetet az adott mobilhoz, megérteni a gép belső szerkezetét, foglalkozni a memóriakezeléssel és az adott OS rejtelmeivel, kicsit igazgatni a kódon, lefordítani, és utána letölteni. Szóval ez egy kicsit kényelmetlen.
Ezért jobb a Java, van egy virtuális gépünk, van egy néhány ojektum, amit használhatunk (pl. midp), valahol lefordítjuk a kódot, aztán az mindenhol fut (esetleg itt-ott nem, ha szarul van megírva...).
És mivelhogy a Java elterjed, már gyártanak olyan mikróvezérlőket, melyek közvetlenül (vagy beépített segédprocin keresztül) képesek a Java bájtkódok értelmezésére (persze ettől még kell a VM).