I keep having my CS friends ask me why I won't develop for the iPhone or the iPad. So I post this for them to read... maybe weep too.
As a gadget geek I love Apple's products. I claim my iPod was made by forest elves-not stumpy, little Santa elves-Lord of the Rings, bow shooting, orc slaying, fangirl bait elves. I played with the iPad that one cs31 student brought in. It was glorious, very responsive, barely weighted anything, the interface effects were beautiful.
I won't buy it. I won't develop for it.
I know Apple; they will never let me own it. I paying them the privilege to use there wonderful combination of software applications and a tightly coupled OS. With payment I get this nice mass of plastic and circuits for free. With an easily scratched screen-built in non-exchangeable battery-drm. I'm renting it. I have pay a replacement renting fee every three or so years because the graphics card fried up (happened to my iMac), the battery died and Apple charged me the same as a new iPod.
It's even worse if your developing applications.
First I can not talk about the API internals... anything that I learn.
Second... and implied... I can not make Freedom Software as the developer's license forbids public code. That is unacceptable-I love freedom software. It gives me many features: like open code ensuring that one developer did not put in spyware in the build to sell my credit cards to Russia. (Hint: don't bother unless you can buy a new house with three cents.)
Third if I sell a hundred applications... and all those customers return it, citing that i'm a dush. Apple would take a 30% cut of the revenue of a normal sale. They would not return that 30% to me and I would be on the hook and own Apple 30% *100 *whatever I charged. (They learn from the music industry so well-the music industry will sign up a new artist, charge them for all advertising for there music, stastically you will lose money on your album instead of gaining it unless your britney spears, you'll make most of your money through concerts.)
Forth-they now ban any other language besides C, C++ and obje-C. Not that I was a fan of Monotouch, I did think it was cool that they made a C# complier that would easily work with the Cocoa API.
So I don't own my application either. If I did, I would at least be able to post the code. I have little, if any freedom.
There is Android... not as sexy, nor functional, nor as cool of an app store. Plus Apple is an established, well known brand with the iPod touch, iPhone and the iPad. That may bring a certain security in that I have a market I can sell to.
However as an American I feel I should choose it over Apple.
The man knows our modern coding dilemma.
Plus the Apple market may not bring much security in the first place.
Adobe used to be one of Apple's biggest supporters but things changed and now Apple is trying to push them off. It's fun being a developer to a company that treasures you.
One CS senior told me that the problem was with the developers not Apple. He had been programming since the 70's and had a lot to say to me. He told me if you programmed with Apple's API back when the mac was in black and white. Your applications would have color when the computers were upgraded to color displays. He told me the that these are appliances directed towards average users; not computer scientists like himself or myself. He told me Apple was a forward thinking company that innovated. (Even if Steven Jobs hated the cd-rom while Bill Gates pushed the Microsoft board to model there software line around it. Couldn't resist ;-) ) I thought there were alot of holes in his argument that didn't address what I put above. I have no intention of posting my replies behind his back on this blog. Better to tell him in person. I just thought his point of view was interesting. (Plus Adobe's refusal to update Photoshop to the Cocoa interface.)
Finally, a lab mate in cs31 told me that while the sdk to Apple's tools were free. You need to get the 99 dollar developer license to distribute applications. He seemed surprised when I told him that Google only charged a one time fee of 20 dollars.