My definition of "general purpose" is that that you can "run whatever software you like on it". If you can't run whatever on it, that restricts the CPU to a "specific purpose", no?
That's not the same thing. An instruction set is an inherent aspect of a CPU; you can't have a CPU without one. Also, you can emulate or translate instruction sets between general-purpose CPUs, or in most cases just recompile the higher-level source code. The underlying logic will be executed regardless.
> […] An instruction set is an inherent aspect of a CPU; you can't have a CPU without one.
Oh, yes, you can.
The following examples of
– Transport triggered architecture
– Dataflow architecture
– Optical and quantum computing
represent viable, general purpose (not general availability), albeit experimental, CPU's without instruction sets. That is, none of them have anything similar to «movq $1, %r0» or «add.w %r2, %r0, %r1».
FPGA's are another and a more conventional example of a general purpose (even if specialised) CPU without an instruction set.
True. But it does make it functionally a non-general purpose CPU. I suppose you can load your own programs if you have a dev account or jailbreak right?
Unless it’s changed again you don’t need a dev account to deploy apps to iOS - but it is somewhat limited. You can have at most 3, the signing lasts for just a week and IIRC the entitlements you can use are limited as well?
I disagree. $100/yr to put what might be a very simple little toy application is not worth it. Sure, that toy might inspire more, and it could even lead to a promising career, but it’s a stretch to argue it was worth it when it could just as easily never be utilized.
The promise of general purpose computing and open source as well is that it empowers all kinds of users.
Oh how badly I want to tweak little things about my iPhone, but can’t because the software is locked down.
Compared to the cost and power of any of the hardware and software we are talking about it is insignificant.
If you want to do toy programming on a budget there are a million arduino-like things out there.
I recently saw calculations on the price of say, just iOS alone. It being equivalent to multiple Manhattan projects. Regardless of how accurate that estimate is, the general point remains.
Do I think Apple should make developing for non-distribution on the iPhone free? Yes. Do I think there is an argument that is almost a moral obligation? Possibly.
But what you get for like 30 cents a day with a developer account is mind boggling. I mean, that was the initial point wasn’t it? These are insanely capable and meticulously engineered pieces of technology.
Edit:
I can even argue it is an ethical obligation that Apple should allow all users to install non App Store apps if they explicitly so choose. And I have argued that in the past.
But I separate this from the evaluation of the value proposition offered by an Apple Developer account.
What you are missing is that basically everyone needs a phone, not everyone needs an arduino. There is a fundamental difference between even 30¢ and free. Make developing free and suddenly you’ll have more developers.
Now it’s a whole other discussion of if that’s a good thing or not. But I personally like to believe that everyone should be able to develop as a hobbyist. The commercialization of software is often at odd with it’s users. Not so much when people are doing things for themselves and for fun.