<p>Let me step back, though, and be careful about what I mean by "programmability."</p><p>Traditionally, in computer science, that's meant that the device or software in question can be made to emulate arbitrary Turing machines; in its strongest form, it even requires no worse than polynomial overhead.</p><p>Colloquially, though, one can program a TV remote or similar — that doesn't mean you can run DOOM on it (well, some of you can). It means you can intentionally affect its behavior.</p>