Scheme is also dead on the iPhone
jlongster.com
jlongster.com
Wider issues: what a bad decision on Apple's part. I used to be a huge Apple fan (I wrote the free chess program that Apple gave away when they released the Apple II, did a Mac commercial app in '84, and used to treat the 6 volumes of Inside Mac developer's guides as ancient and precious religious texts). The issues with the appstore crap-shoot are irritating, even just reading about other people's experiences.
Apple is now a very valuable company and their behavior seems to be changing.
We should not be surprised when a totalitarian state employs arbitrary coercive actions in its own interest, and this is not the first such maneuver by a closed source company. We should be in the mindset of people doing business in a totalitarian state. We should be aware that there is an iron hand under that velvet glove and that equitable treatment under that regime is motivated by that regime's self interest, not by a principle like the rule of law.
Open Source = The Rule of Law? I never made that comparison before.
(I will continue to prepare to do business in the totalitarian state, but I will be a good little merchant and try my best to avoid notice, and I won't be surprised if I find the police closing up my shop sometime.)
I'm currently working on the justin.tv iphone app, in Objectionable-C using XCode. I've gotten into a pattern of changing a few lines of code, pressing the build-and-run button, switching to Chrome and reading Hacker News for a minute or so, and finally checking the debug log output in XCode. As much as I enjoy reading HN, a REPL on the iphone would be so so awesome.
>So, firstly, the quality of games won't change at all, and secondly, it's relatively easy to port a game from the iPhone to a different platform. The only thing they are restricting is using better, more productive tools to create games.
He kind of contradicts himself there. He points out that cross-compiling makes it relatively easy to port the iPhone game to a different platform, and then says all Apple is doing is preventing people from using more powerful tools. But they are also preventing people from doing the aforementioned porting. It seems to me that when people shout, "Hey, now we won't be able to easily port our apps and games to another platform!" Apple will just say, "Exactly."
At least that's the direction they're heading with LLVM, and the head (now gone) of their whole development tools group told me (privately at WWDC a few years back) that a REPL was their ultimate goal.
After all, Obj-C/Cocoa is just Smalltalk with C control structures...
The reason Apple has been successful isn't just that they
have nice hardware, its because of you.
True, but let's not forget: there were no "you" when iPhone was released, but there were the reasons why it was a success. That success brought users, and users made platform interesting for developers when SDK came out. Users are here to stay, and most of the devs too. Heck, iPhone OS 4 and iPad will bring them in droves. Then we have another opportunity opening up: development of HTML5 ads for iAd.My (maybe incorrect) assumption is, that all this noise on HN is not really representative of the thinking among iPhone developers—I will even go as far as assume that the most vocal ones never did anything for iPhone and were not going to–and will have a little if any effect on general public and their opinion about iPhone/iPad and Apple.
Hm... I think this is exactly the kind of customer Apple wants.
10 out of the top 22 stories are about this one story. We get it. Some developers are throwing a hissy fit.
For every clojure zealot, there are probably 10 objective-c developers who will be happy with less competition.
Again, as much as I'd like to agree with you, none of the prominent app developers are going to be leaving anytime soon. And, as for people who make Farting apps, they probably wont care anyways because use Objective-C or Actionscript, the apps are rather simple anyways. The efficiency of writing code probably wont matter to them.
They certainly won't start whining about it.
Awesome thing is, though, that you can reasonably compete as a Tier C developer with Tier B and Tier A developers, it's just that they get a head start with being featured. That's surmountable, so it's not a big deal.
They're a business.
By excluding languages like Scheme, and many others, they are excluding developers who prefer these languages. One could argue that these developers are among the smarter and more creative ones. So, when competitors get their act together, and come out with a similar device that doesn't suck, and an app store alternative that does not have these restrictions, then this is where such developers will go.
Essentially, they're providing the competition with a sizable pool of (often disgruntled) developers. There is no real competition right now, but they're making it more likely that there will be, in a year or two.
Anyway, just my $0.99... :-)
I don't think that Objective-C and Xcode can do this?
Still, I doubt hey would enforce it. But you can't build a business around it anymore, it's just too risky.
There's also PreScheme, which is one of my favorites. It's subset of Scheme which simply generates a few C functions that use a bunch of stack variables and gotos without any runtime.
The opportunity cost risk is rather high, you're betting that Apple will never figure out that you're violating the terms of the new agreement.
ADDED: Evil Thought: if they want to audit your code in the future, requiring it to be in a strictly limited number of languages will allow that.
Not saying they will, not saying they've even thought about it ... just that "Power tends to corrupt, and absolute power corrupts absolutely" (http://en.wikipedia.org/wiki/Power_corrupts#.22Lord_Acton.27...) and that someday this limitation will add to Apple's temptations.
Consider how compilation works ... you have a parser that takes your source-code and builds a syntax tree from it.
Then the syntax tree is checked for correctness, optimized, transformed, with type rules inferred and symbol tables created and all that.
Then a backend takes the result and generates source-code (or byte-code or assembly). The thing to remember is that compilers use certain patterns and certain optimizations to generate the resulting source code.
Because of the transformations a compiler does on the syntax tree and the way the result is generated, such patterns can emerge even from the binary.
It's difficult to have 100% accuracy though, but I don't think they would sweat over that.