iPhone SDK Rules Block Skype, Firefox, Java ...
An anonymous reader writes "Apple's iPhone software development kit is already drawing complaints due to the strict terms of service. Voice over IP apps like Skype that attempt to use the cellular data connection will be blocked. Competing web browsers Firefox and Opera are forbidden. Even Sun is now backpedaling on its recent announcement of a java port, noting that there are some legal issues. Critics are already comparing Apple's methods to Comcast's anti-net neutrality filtering, and Microsoft's Netscape-killing antitrust tactics. Could Apple face government regulators?"
borne shell, etc:
"no interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple's Published APIs and built-in interpreter(s)."
This slashdot post is entirely sensationalism at its worse. If anyone had read the articles attached: Skype banned: "Apple To Allow VoIP on iPhone But...", it doesn't talk about Skype being banned, but being restricted. The firefox issue seems to be dealing with the fact that no interpreted languages are accepted (javascript I assume), and no plugin arch. are allowed. Actually, I'd gladly accept a no-plugin firefox. No more bloated firefox. And really, how many other mobile browsers allow plugins? (I'm honestly asking...). For sun, it's some legal issues that have come up. They haven't BLOCKED anything. To go from the article (which is entirely positive on Apple), and turn it around to be negative is doing a disservice to the original author. Saying that everything is being blocked is silly. If you want to play in the game, you gotta follow the rules. If you don't, well, there's always hockey.
This space for rent.
I have never seen an SDK that so blatantly locks users out of common usage like this, have you? Maybe I've managed a decade and a half in this industry without noticing that it's normal practice to use legal force to ensure that an SDK is only used a particular way?
Which industry? This isn't atypical in the embedded industry at all. It is very unusual in the general computing industry. I think the issue here is that the iPhone and iTouch span that divide moreso than any device that came before it.
If you wanted to develop for the PlayStation, for instance, you had to sign all kinds of agreements. And they were relatively open compared to some embedded device makers.
E pluribus unum
You seem to portray learning Obj-C as some huge undertaking. If you come from a Java background, learning Obj-C is like learning to play stud poker when you've only played draw poker before. Some of the mechanics are different, but there's a lot of overlap. Anyway, how is Java more conducive to innovation than Obj-C? Because it has better IDEs (which is probably debatable, but I'll cede the point anyway)? What can you do in Java than you can't do in Obj-C? Sure, Java has more frameworks built around it (and frameworks built around those frameworks, with more frameworks layered over them, and frameworks built on top of those, etc.), but Apple has some pretty decent libraries too. I've only dabbled in Cocoa programming, but I find the syntax of Obj-C to be rather nice. I like that there's at least some way to implement delegation. It may be a bit sketchy, but it's better than Java's system, which amounts to "Ahh, fuck it. Let the IDE generate some code. That's good enough."
You have one thing right: Objective-C will probably never be nearly as popular as Java. Ok, two things: Too much java makes me have to poo-poo. I don't see why that means Apple must support Java on the iPhone though. I'm sure the platform will do just fine without it.
The secret to creativity is knowing how to hide your sources. - Albert Einstein
- iPhone: You can run native code. XBox: no native code; all code runs in the
.NET Framework VM sandbox.
- iPhone: $99 one-time fee. XBox: $99 yearly subscription + $50 yearly subscription for XBox Live Gold
- iPhone: free version with emulator for testing. XBox: free version but no way to test for XBox compatibility.
- iPhone: iTunes is the exclusive distribution channel for iPhone programs. XBox: XBox Live the is exclusive distribution channel for XBox games.
Since neither Apple or Microsoft can control what you do with the SDK on your own hardware, the following restrictions only apply to applications distributed through iTunes or XBox Live.- iPhone: programs of any type will be distributed. XBox: programs must be games for distribution on Live.
- iPhone: distribution on iTunes store will be available to any developer. XBox: distribution on XBox Live restricted to a select few who win periodic voting contests.
- iPhone: programs can use WiFi for any purpose; cellular network with restrictions. XBox: Network access only for XBox Live and local LAN multiplayer. Non-LAN play must enforce requirement of XBox Live Gold subscription.
- iPhone: programs distributed through iTunes may not execute downloaded code or plugins. XBox: Microsoft would never approve a game for distribution on Live that executed downloaded code or could download plugins.
- iPhone: Free programs distributed for free. XNA: not announced. Likely to limit or prohibit free games.
- iPhone: Commercial distribution is 30% of gross revenue, no other fees. XNA: not announced. Likely to be higher than 30% based on rumors of XBLA royalty rates.
As you can see, XBox development is *just* as restricted as iPhone development; more so, in fact.main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}