Ono taky zavisi, co (a jak) programujete :-)
Ja treba hlavne platebni terminaly a cipove karty (krome jineho).
Takze na nejaky python/lua/... a jine 'moderni' a 'cool' jazyky rovnou zapomente ....
Platebni terminaly: zacinalo se v assembleru (8051, x86), nyni jedine C (vetsinou arm, obcas mips); C++ je tak trosku podporovane, ale ma sve mouchy; javu par nadsencu zkouselo, ale rychle od toho upustilo :-)
Ono, kdyz ma terminal +-16MB RAM, relativne pomaly procesor, a vsechno musi byt certifikovane (EMV L1,L2, PCI PED, PCI PTS, ...) tak se do toho opravdu nic moc naprat neda. A na malloc() rovnou zapomente .....
Cipove karty: zacinalo se v assembleru (6502 like) jako 'filtery', nyni na 99% java. Ale neni java jako java, treba java na JCOP kartach nena funkcni garbage collector - takze stejne v tom programujete zase spise jako v C/C++ - co nejvice veci staticky, a pokud uz objekty, tak je vytvarite jednou pri inicializaci a v maximalne mozne mire je 'zneuzivate'.
Pamatuji si na jeden seminar, kdy nejaky ucitel rikal: ja zadam priklad, zaci si to napisi a odladi v simulatoru (eclipse); ja to pak u zapoctu nahraju na fyzickou kartu, poslu na to par APDU a karta nekomunikuje - student si totiz na kazde APDU vytvori novou instanci objektu .....
No a z me praxe: nejlepsi jsou pak takove hlasky: 'a vy nepisete unit testy'? A ma odpoved 'a jak to mam udelat' ?!?!?
U terminalu mam cross-compiler a musel bych to podepsat a fyzicky nahrat na terminal (a jak pak mackat klavesy ci protahovat kartu)? A uz java karty????
A nebo si muzu napsat simulant terminalu/karty, ale jakou to ma pak vypovidajici hodnotu, kdyz to bezi na necem uplne jinem .....