Originally Posted by Tulkas
Beyond the huge shock this would be, it would also fly in the face of one of Jobs arguments against Flash. The stated concern, which I agree with, was that third party IDE's could not be counted on to keep up with advancements to the API and so devs using those environments wouldn't be able to take advantage of the newest enhancements.
The IDE (development environment) is not the problem. Note that the developer agreement didn't specifically state that development had to be done using Xcode, just the programming language (C, C++ or Objective C).
Apple's position is that they don't want someone else inserting a layer of code between the developer and Apple's iPhone APIs, so no interpreters, source language translators, or libraries wrapping around the iPhone APIs.
Visual studio is already two thirds of the way there as far as the source language is concerned: it compiles C and C++.
If this rumour is correct, the most likely scenario is Microsoft announcing that Visual Studio is adding support for Objective C and generation of code for ARM processors, and Apple will be supplying the iPhone SDK in a form which can be used with Visual Studio, including features like an iPhone simulator running on Windows. Other languages supported by Visual Studio (particularly C#) will not be supported for iPhone development.
There could be issues with Microsoft's C/C++ runtime library code, but its source code is available, and Microsoft can liaise with Apple to address any issues. In any case, much of it would be optional, and the developer would not be forced to use a Microsoft-defined wrapper around iPhone APIs.
I don't see any problem with this from Apple's point of view. It is just a different compiler generating code to run on the iPhone.
Apple would lose the incentive to sell Macs to prospective iPhone developers who are currently Windows developers, but that is a relatively minor lump of money compared to the increased potential for iPhone application development, which would push further sales of the iPhone, iPad, and iPod Touch.
Originally Posted by Tulkas
So, is MS expected to be more reliable in keeping up with developments of the platforms? Apple doesn't want to, and shouldn't, allow their success to be dependent on other companies, as it was with Office and CodeWarrior.
The situation with CodeWarrior wasn't one where Apple was "dependent" on another company. CodeWarrior was simply a better compiler and development environment than Apple's own tools, so it was more popular with developers. Apple supplied the Mac development SDKs for use with CodeWarrior.
A bigger issue was for application developers who used CodeWarrior when the product was discontinued - they had to port their application to build with a different set of code tools and learn how to use a different IDE. (This was on top of issues around Carbon vs Cocoa.)
Microsoft and Apple would be directly competing with the quality of code built by their compilers. If Apple supplies the SDK, Microsoft won't need to "keep up", except in generating code to make better use of future processors (which they could know well in advance, given the ARM product line is well defined).