Apple released a new SDK license. It states that apps must be written in C, C++ or Objective C. Which means that using other language/framework/development tools is verboten. From the top of my mind it kills apps developped in C#, using Unity3D, the upcoming Flash CS5 and a bunch of other dev tools.
I can understand when Apple pulls an app that uses non official APIs. But the apps made with verboten dev tools are compiled for the iPhone OS platform using official APIs. These apps will behave correctly on the iPhone OS platform including multitasking.
One can argue that using a multiplatform higher language will result in less efficient program. In this case let the market decide... the applications will be bloated, inefficient, buggy or slow. For years, Java apps are able to run on multiple platforms. The developper does the work once and its users are able to enjoy the result almost everywhere. For a while my BitTorrent favorite client was Azureus (multiplatform Java) but as soon as uTorrent (native Windows) feature and stability matured... the market spoked and I used uTorrent ever since.
When I find a better alternative to what I have, I jump ship also on the iPhone OS platform. For over a year, I used Byline to synch my Google Reader. A couple of weeks ago, Reeder 2.0 was released it's better, it's faster, it features Instapaper, ReadItLater, Twitter and mobilizers from both Google and Instapaper. Now Reeder is on my devices first page, while Byline is now on the "to delete" page.
On my main Windows box, the only application that is buggy, inconsistent is Apple iTunes. This piece of inefficient crap uses non-native APIs. Why is it still on my computer? Because I have no choice for synchronizing my iPhone OS device (thanks to the lack of basic OTA features).
Apple ban on Adobe Flash for the iPhone OS platform is to artificially protect the games on the AppStore. Apple ban on dev tools main purpose is to lock the developers in their "sterile Disney-fied walled garden surrounded by sharp-toothed lawyers".