Apple dropped a bombshell [1] in one of its typically unsigned quasi-blog posts last week, noting that the non-disclosure agreement (NDA) that prevented developers of software for the iPhone and iPod touch from publicly discussing their work had been dropped for iPhone software that had been released.
Apple will release a new developer contract in about a week that will still restrict those in its program from discussing unreleased iPhone software and unannounced features, reasonably enough. But everything else will apparently be fair game, which is a smart move for Apple and the platform.
The NDA, euphemistically called the FNDA by one prominent independent developer - you can guess what the F might stand for - prevented the formation of a community of programmers that could learn from one another, easy sharing of tips, and the ability for developers to choose to release code openly with or without restrictions. Brent Simmons of NewsGator immediately started up a developer mailing list [2], though he expects it might be superceded by something more official.
Some developers had chosen to violate aspects of the NDA, but none have been punished as far as we are aware.
Because Apple never discusses these kinds of decisions it's hard to know why it took so long for the NDA to be lifted. It may have been the news that an iPhone programming book had to be cancelled, that a message describing why a program was rejected from the App Store had an NDA notice at the bottom, that an increasingly large number of developers were angry, or even that a major Apple partner complained.
Whatever the reason, more discussion and collaboration typically means better software and a richer platform. Let's hope Apple's next move is figuring out how to more transparently discuss what it won't allow in applications for the App Store (see "Developers Could Turn Away from iPhone App Store [3]," 2008-09-25). Given the lifting of this utterly unreasonable NDA on shipping software, a change in App Store restrictions and review process seems more likely.
[1]: http://developer.apple.com/iphone/program/
[2]: http://lists.ranchero.com/listinfo.cgi/iphonedev-ranchero.com
[3]: http://db.tidbits.com/article/9784