Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

We asked Joe this makes him "angry" (as he wrote in a now deleted tweet), and he explained:

Apple has always banned "virtual machine" languages, presumably for performance reasons, which was understandable. However, there are an increasing number of cross-compilers that allow translating from one language to Objective-C, which allows performance to still be very good while allowing developers to use a language they prefer to Objective-C. Apple is now banning those as well, which means developers who don't enjoy working in Objective-C have no choice if they want to write a native iPhone app.

Back on Twitter, Joe went on, "I'm upset because frankly I think Objective-C is mediocre and was excited about using other languages to make iPhone development fun again."

As Daring Fireball's John Gruber notes, this also bans an iPhone app making tool that Adobe was hoping to sell as part of Flash, which will NOT make things any chummier between Adobe and Apple.

We're tempted to wonder if this change will make its platform less popular with developers. But we won't, because, for better or worse, when a platform can present so many attractive users the way Apple's iPhone can, developers tend to get in line -- no matter how much they don't want to.