I got a comment about endorsing a platform that controls the software that is installed on the device, especially since I've complained a lot about Symbian Signed. I thought I might explain my reasons for this a bit.
History of Symbian
Before Symbian Signed things were nice on the Symbian front. You could make apps using all APIs and distribute them the way you liked. No restrictions. Fine. But then came the horrid Symbian Signed and Capabilities. Good idea, implementation sucked.
The main problems with capabilities were that you could only get certain ones without paying and if you didn't pay, the user got a reminder claiming that the application might steal your personal information and whatnot. So scary tactics to force people into Symbian Signed.
Also, the capabilities had to be given up front which was idiotic. And there was no possibility to select which capabilities you allowed the application to have. Yes, I allow the app to read my contacts. No, I don't want it to get my location. Umm, ok, I can't install the whole app? Nice...
Also the capabilities were too coarse. For example, my mIRGGI needs network access, which is fine for most people. But when installing S60 shows that mIRGGI can also make calls. Most people probably don't want that to happen (and it won't, mIRGGI has NO functions that could make calls). But they can't tell that to the OS. Stupid.
The first version of Symbian Signed was horrible. First you had to get a developer id which means spending $200/year for a code signing certificate from a single provider. This was easy, but cost quite a bit, especially for freeware developers.
Then if you wanted to get your apps to the public, you had to pay for "testing." And I put it into quotes because it wasn't really always testing rather than nitpicking. There were cases where the application showed a version number incorrectly (1.2.3 instead of required 1.02.3 or something) and the testing failed! And when you fixed that you had to pay for retesting.
Also the payment was for each and every version. Make an app, sell it to 100 people. Make an update, pay again but you might not get any more purchases. Make another update and so on. So you're paying and getting nothing in return. Why would companies want to fix or update their product often when all it meant was money lost? (I know this isn't always so harsh, but still)
Then Symbian Signed was transformed so that you could test the stuff yourself. All you had to do was pay $20 per shot for a quick signing. $20 for signing? That's a lot. Once again, every little fix or update you made cost you that much. Better, but still not reasonable.
There was also for a limited time a freeware testing thingy where you could get some freeware apps signed for free. But they didn't like it if you released too many versions too soon etc. And later on it died off.
The last try was to make the whole Symbian Signed free for Symbian/Qt/Java apps. That's when the system started to look like a reasonable thing to do.
The whole time the explanation for this was to make sure that the origin of the application could be determined. And the whole time there were certificates available for Java, Windows applications etc which did the same. The difference? You could sign your code yourself. Without paying for "testing."
Apple Developer Program
Apple started the whole thing with a commercial developer program. You pay $99/year and you get the tools, testing (and they even do test, even though I've got some "it doesn't work", "surely it does, I've tested it a lot", "oh, sorry, yes it does" problems once) and distribution for that price. Fixed price. And that's the key difference here.
You can also distribute ad hoc applications, which means that you input the device IDs for a maximum of 100 devices and sign the application for those with a certificate that you get from Apple. Usually done for testing purposes.
Larger companies can also get a system that allows them to distribute apps for their employees freely, but that requires a 500 employee enterprise IIRC.
And what about capabilities? For example, when running a program that wants to get your location, you're asked if it's ok. When running, not when installing. And you can allow/disallow this whenever you want to. The same with notifications etc. This is the right way to go!
Windows Phone Developer Program
To develop for Windows Phone 7 you can get the tools for free. But if you want to distribute, you'll pay $99/year. And no hidden/extra costs here either.
Microsoft also has stated (after the jailbreak thingy) that they're looking into allowing the installation of applications on the devices without paying or going through the marketplace. And I also hope that they really make it possible. And I hope they won't make stupid restrictions for the applications.
I have no knowledge about how capabilities are done in WP7, I've only seen them declared in the application XML file. Must see into this.
WP7 development is more restrictive than Symbian/Maemo/Meego, that's for sure. At least for now. But Symbian's capabilities and track record with the whole Signed crap is not at all good. And I personally rather pay $99/year for development environment that actually works than kill my sanity with a free one that doesn't. I did pay Apple's fees for a couple of years before I made a cent on anything iOS. Just because I wanted to learn it and the environment was only half-crap (XCode, Interface Builder etc are horrible but not nearly as bad as Carbide.c++ etc). And I'll surely pay for Microsoft/Nokia the yearly fee to make apps for WP7 even if they're freeware. I can afford it and I know what I'm getting in return.
Now just waiting for Microsoft's move on the 3rd party app installation front. I don't thing it'll happen on the next update (which is due out very soon), but maybe later? And since Nokia won't get any devices out for a while, it can wait a bit.
But I don't want to wait, maybe Microsoft could update the Silverlight they already have for Symbian. Then we could create apps for Symbian and WP7 with it. That would be cool. Qt for Symbian/Maemo/Meego and Silverlight for Symbian/WP7. And surely Moonlight could be used for Maemo/Meego too, so we could get a truely universal platform? ;)