Back in the nineties, when Java was still the next big thing, manufacturers promised that we would carry a single Java smartcard for all applications: identification, credit cards, electronic wallets, etc.
As we now know this never happened. The biggest reason is marketing: every company wants to have their own logo on the card, which is impossible to do with a generic card.
Reference from 1998: ftp://service.boulder.ibm.com/software/pervasive/info/javacard.pdf