The only time when a programmer should have to pick an exact memory size for a variable is when doing hardware level programming.


Oh, you mean like, embedded software development. Like what I do every day. An environment where C++ shines (or, at least, has the potential to, were some large fraction of its potential practitioners of a mind to actually practice), and where a Smalltalk VM is about as useful as a toothache.

I appreciate that fact that you recognize that one size still doesn't fit all.