There is one thing that I can confirm without breaking any NDA: the iPhone is hands down, without a doubt, the single most powerful mobile development platform EVER. Whether that platform will see enterprise adoption or whether it will remain plagued by people making $2 flashlights... time will only tell. That won't change the fact that the capabilities provided by the iPhone and the ease with which developers can tap into those capabilities is simply unprecedented. This is easily reflected by the fact that, from what I hear, the iPhone App Store is selling like $1,000,000 per day of applications.The fact that folks try to sell $2 applications that do nothing but illuminate the screen to mimic a flashlight, or $1000 applications that show users an illustration of a glowing gem, doesn't help us understand what is possible on the high end of the development spectrum. The fact that the development environment is entirely covered by an NDA has invited critics, including of course the dotNet addict:
What's really going on here is that there is a huge, burgeoning community of iPhone developers and they are positively begging for community. They want to be able to talk to each other, help each other, learn from each other, and have some place where they can go for support and to hone their skills. They see the restrictive terms of the NDA as an inhibition to developer adoption of the SDK and possibly even an inhibition to commercial-quality applications being produced by first-time developers because there is such a lack of community support.So, why might Apple NDA an environment that, if open to discussion, might become a more attractive environment to developers by virtue of community support for the development environment?
At some point this community is going to either self-form, and the NDA be damned, or Apple will facilitate it somehow.
My hope is that Apple facilitates it.
I wonder if the answer isn't to maintain, to the extent possible, any advantage Apple has in its tools or development environment. By making the materials available only via NDA, Apple theoretically creates an environment in which it is difficult to publicly criticize the environment from a position of informedness (the informed people can't describe the environment without violating the NDA). Moreover, Apple creates an environment in which duplicating the apparently-effective features of the development environment would invite litigation for copying materials subject to an NDA. (The fact one reverse-engineers features of the dev environment in violation of an NDA creates liability for breach of contract, which may be quite a bit easier to prove than violation of copyright law, which doesn't offer the exact same protections.) I suspect that Apple believes its development environment is its competitive advantage, and that it intends to prolong this advantage as long as possible by denying open access to the environment to those who might want to replicate it.
(GNUstep offers a non-Apple platform for deploying Cocoa-like applications, though some portions of the environment are at the time of this writing "experimental". I'm unaware of anyone working on GNUstep for mobile devices, which would also require building a mobile operating system atop which to run GNUstep. Presumably persons hoping to copy from Apple's development environment would be interested in looking at the programming interfaces, and the kinds of support the platform offers developers, and would not be particularly interested in deploying an Objective-C development environment or a clone of MacOS X.)
The question arises: does secrecy help Apple (e.g., does it prolong any platform advantage?), does secrecy hurt Apple (e.g., does it impair community support for writing great applications?), and if it turns out that both are true does it help more than it hinders? My guess is that most commercial software houses aren't particularly big on sharing (they regard their code as the kind of trade secret that enables commercial advantage), and that Apple assumes that "community" is more important to newbies and freeware shops than to the commercial developers Apple presumably assumes will provide real value to the iPhone platform.
My question: given Apple's NDA, how is it possible to offer instruction in the NDA-covered development environment outside a venue such as WWDC? What's the outlook for "How To" books? What about college classes I've heard reported on, focusing on iPhone development?
In short, I wonder if Apple's maintenance of an NDA beyond the product pre-release period isn't likely to engender unnecessary confusion, or -- as Mr. Hoffman suggests -- widespread systematic violation.
UPDATE: The day after posting, this story came out about developers breaking the spirit of the NDA while pretending to obey it's letter, buy paying each other $1 as development subcontractors so they can be part of the same "creative team" and thus under the NDA can share information covered by the NDA. This particular technique doesn't help how-to book publishers, or presumably computer science professors.