Originally Posted by sprockkets
Wonder why apple banned java, flash, anything other than cocoa on the iphone? Bans any app that duplicates functionality of their own apps? Banned third party tools and google voice, only to be allowed back in due to the FTC?
It's their platform. They want control of it. Control nets them $$$.
You really are a master of twisting and bending reality to suit your own arguments, and claiming that's exactly what people replying to you do by saying they only have strawman arguments, you know?
Apple doesn't have Java on the iPhone because unless your whole OS is Java (like Android), running Java applications is a big unnecessary waste of resources that will result in crap applications. iOS is a native OS, running compiled code, and slapping a Java VM on top of that to run... well.. what exactly? Java applets? It doesn't make sense, and it would mean people who don't even know that Java is more than just coffee and an island part of Indonesia, will run into RAM-hogging, slow, and crappy applications that don't integrate with *anything* else on the phone: not with the UI, not with the smart management of RAM that Objective-C allows, not with the clever multitasking scheme, nothing. It would open up a whole can of opportunities to mess up the user experience, and for what reason, exactly?
Apple doesn't have Flash on the iPhone for similar reasons, and Adobe is showing time and time again that they are right, by only appearing to be capable of supporting a Flash plugin that almost half-decently works for a few of the highest specced Android phones and tablets running the exact right Android version. The Flash topic has been discussed to death so I'm not going to go into it any further, but I'll leave it at the observation that the market doesn't seem to care about Flash that much, looking at the things iPhone users complain about.
As for your other comments: they are downright false. Apple allows other development tools such as Unity, Adobe Air, etc, as long as they don't run their own VM. There are many good technical reasons for forcing developers to write native code, and they are all related to the same considerations for not wanting to run Java or Flash on iOS. Apple also allows writing applications that don't use Cocoa at all, in fact, most games only use Cocoa to load and kick off the application delegate, then launch straight into their own (often OpenGL based) environment, having full control over everything. I'm not sure what more you would want. Support other UI toolkits just so everyone can make applications that look and work differently because developer A likes Qt, developer B likes GTK, and developer C from the 1980's likes Tcl/Tk? GUI inconsistency has always been one of the biggest barriers for Linux on the desktop because people get confused when every application works differently, and perceive Linux as 'complicated' and 'hard'. Trying to steer developers towards Cocoa is only a problem if you are a developer too hard-headed or lazy to adapt, for end-users it only has advantages. Last but not least Apple doesn't block applications that duplicate functionality of their own applications. They ban clones
of their own applications, for very obvious reasons. You can still have alternative browsers, mail applications, music players and map applications, as long as they are not just exact replicas of the standard iOS apps.
So, yes, Apple wants control over their platform, and yes they want to make $$$. Just like Google or anyone else. Don't pretend Google is in it just to make your life better, they want to monetize Android just as much as Apple wants to with iOS. Where you are wrong is how you conveniently leave out the step between 'control' and '$$$', which is 'great user experience'. It goes like this "control" -> "great user experience" -> "$$$".
There's nothing wrong with disagreeing with control and preferring to have more options, but stop pretending 'control' means 'bad for user', while in reality, for the vast majority, 'control' means 'better product' means 'good for the user'. Even Google seems to acknowledge this to at least some extent, seeing that they publicly stated Android 2.x was not suited for tablets, Honeycomb will not be open-sourced (for now, or maybe even never) because they don't want it on smartphones, and now this article. Also, stop exaggerating the amount of control Apple enforces on iOS and making a caricature out of it. It makes you come off as narrow minded and suspect of just being a whiney fanboy instead of trying to add insight to the discussion.