upvote
I respect your overall point but I think the picture is more nuanced than that. "Computer" as a term is simply unpopular, in favor of something referencing the intended application, as determined by things like the form factor:

Graphing Calculators are computers in every sense, it's hard to find one you can't at least program in a high level language like Basic or Python, and many accept assembly programs - even Texas Instruments models did, before their signing keys were brute forced.

Games consoles too almost invariably run third party code, although they tend not to be end user programmable - no different than an iPhone in that regard, really.

"Feature phones" - pre-smartphone phones with cameras and internet etc - usually had the ability to run Java Midlets without manufacturer blessing, even though you couldn't touch the OS. You could SSH into servers from those!

I think a big problem is that the distinction between "general purpose computer" and "end user programmable general purpose computer" is functionally meaningless when you can't write programs, which is most people. Instead they understand it in a functional context - what is this device for? How does it compare to how such devices usually work? The general purpose CPU inside is an implementation detail, and just because you think of an iPhone as a computer doesn't mean everyone does. They think of it as a "phone".

reply
Most people consider the iPhone as a "phone", not as a "computer". It's even in the name. So it fits your definition for devices which only run code that the vendor had specially packaged.
reply
People obviously consider it a computer; they install and use third party software on it. The question is whether the vendor should be allowed to monopolize the market for the third party software even when both the user and the third party developer don't want them to.
reply