Because it takes developer time and other resources to develop tools for iOS development on other platforms. Apple hasn't done it (and they don't have any interest in doing so), they focus all their efforts on the tools within their own environment.
If not for other people's efforts with Mono and such [1], C# would be equally Windows/MSVC#-only.
I believe that the problem with .net etc is that the development is done on Windows machines to run on Windows machines. iOS is different. I believe that Apple have gone out of their way to stop people from developing iOS programs on other operating systems. Similarly they have gone out of their way to block me from running OSX in a VM or on non-Apple hardware, even though there are no technical reasons why I can't (in fact you can do it, just not legally).
Entrance into the walled garden is only a couple of hundred for a used Mac mini on eBay plus the dev fee. If you can't afford that, you probably can't afford all the money you're going to lose developing an iOS app you can't afford to market.
Why is it rediculous that I want to be able to program for different plaforms from the same machine? If there were any technical reason for it I would understand, but this is just erecting artificial barriers out of greed.
> Its no different than building windows 8 mobile apps in windows.
I'm pretty sure you can do that on other operating systems.
> As for gone out of their way to prevent you from running it in a vm, they equally have no real incentive to make it easy.
They have specifically gone out of their way to prevent it. They check to make sure it is being run on Apple hardware, and you can get hacks that bypass this check. There is no technical reason why I can't run OSX in a VM on my Intel Linux machine.
You realize that when you get an osx license it says it is only valid when run on apple hardware right? That check, which is named Dont Steal OSX, is there as a pretty basic check kernel extension. They could do MUCH more, this is not going "out of their way".
This isn't that big of a deal, if you're fine with violating the license agreement continue to do so I've no concern. But don't think for a moment that it is a contractual obligation for apple to have their os run everywhere. Ignoring the contractual obligations impacts things like the gpl as well, so if we're happy to ignore this part of the license agreement we need to reflect a bit as far as what legal obligations we want to abide by.
> You realize that when you get an osx license it says it is only valid when run on apple hardware right?
Yes, that is exactly my point.
> This isn't that big of a deal
It's a big deal to me. It's the only operating system that I know of that I can't legally run on my computer.
All I'm saying is that I wish that Apple were more focused on creating the best products they can and letting people use them, rather than erecting artificial walls to keep people in and out.
> All I'm saying is that I wish that Apple were more focused
> on creating the best products they can and letting people
> use them, rather than erecting artificial walls to keep
> people in and out.
It's ironic because that's precisely what they're doing yet you don't realize it. They limit the scope of hardware that OS X is meant to run on so they don't need to spend as much time on making drivers and ensuring the millions of hardware combinations work with as few issues. Just ask Microsoft about the effort involved.
Now, if you want to make the best product possible, wouldn't you make a single piece of hardware and software made specifically for it and take it to perfection? Rather than certifying tons of 3rd party hardware and fixing associated problems.
The fact that OS X runs mostly without issues on customacs is a lucky coincidence, but Apple doesn't want to be responsible or guarantee that it'll work properly.
> if you want to make the best product possible, wouldn't you make a single piece of hardware and software made specifically for it and take it to perfection?
No, that is exactly what I wouldn't do. Apple are a rare exception where this model actually seems to work. When Steve Jobs was asked to give examples of other companies that have succeeded with the same closed model over open competitors, he couldn't come up with a single example.
> Apple doesn't want to be responsible or guarantee that it'll work properly.
They don't have to. They just have to not put up legal and technical barriers to people using it on other systems.
This backs up my previous point. Why can't I develop iOS apps on Linux?