

Apple bans modular programming - Game of Life implementation not allowed - bensummers
http://3dpancakes.typepad.com/ernie/2010/04/apple-bans-modular-programming.html

======
dfranke
Okay, this uproar has just passed the threshold of ridiculous. "No Private
APIs" is well-understood to mean that you can't call undocumented system
libraries, not that you can't implement your own. Can we as a community please
go back to talking about something else now? Erlang, maybe?

~~~
chime
I recommend you not ask people to post Erlang articles. I did that once and so
many people submitted Erlang articles that pg banned me for causing an e-riot.

~~~
dfranke
He banned you for that? Really? I was under the impression that such protests,
when justly called for, were condoned by management.

~~~
chime
Honest. I was a bit surprised myself. Oh well.

edit: This was my comment: <http://news.ycombinator.com/item?id=775727>

~~~
dfranke
This time I'm half-anticipating a flood of articles about Apple banning Erlang
from the iPhone.

~~~
raganwald
<http://twitter.com/raganwald/status/12056378037>

------
raganwald
This is a strawman, but an entertaining strawman, so have an upmod!

Sure, Apple theoretically could bar a Game of Life application if you actually
built one with a board large enough to make a turing-complete automaton and
then proceeded to demonstrate meaningful end user programs running on it.

I defy the author to tilt at the Apple Windmill: Write a Game of Life for the
iPad with an actual Turing Machine running on it and write something that
replicates some built-in functionality--like a calculator--running on top of
that.

If the App Store rejects the Game of Life I'll publicly kowtow.

~~~
pygy_
Nitpick:

AFAIK, the game of life (as a mathematical concept) is in itself a turing
complete automaton, you don't need to explicitly simulate a turing machine
with it, in the same way that you don't need to implement a turing machine on
top of the lambda calculus to be able to express algorithms with it.

In practice, since all computers have a limited memory, they are in fact
deterministic finite-state machines. So the size of the board/RAM/whatever
constrains what you can do with it, but it is as true for Life as for any
language or computer system.

From a practical standpoint, watching a board of Life is indeed about as
interresting as watching a random memory block rendered on screen while your
program is running... It's sometimes entertainging, but usually boring.

I'll admit I actually have Life on my iPhone :D

~~~
raganwald
Not a nitpick at all, we are in agreement. I appreciate that _in theory_ a GoL
program is a turing complete automaton, just as _in theory_ Apple could use
one of its legal clauses to reject a GoL application from the App Store.

I was trying to hint that someone _in practice_ writing an App using a GoL as
a platform running a turing machine running an app is about as unlikely as
Apple actually rejecting a GoL implementation for this reason.

Or in more pithy terms, "The gap between theory and practice is narrower in
theory than it is in practice."

p.s. Speaking of theory... One of my favourite books is "The Recursive
Universe: Cosmic Complexity and the Limits of Scientific Knowledge," wherein
the Game of Life is used to discuss complexity, self-replication, and other
fascinating topics:

[http://www.amazon.com/gp/redirect.html?ie=UTF8&location=...](http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2FRecursive-
Universe-Complexity-Scientific-
Knowledge%2Fdp%2F0809252023%2Fsr%3D1-1%2Fqid%3D1163786265%3Fie%3DUTF8%26s%3Dbooks&tag=raganwald001-20)

~~~
chc
I think you're missing the point of a reductio ad absurdum argument. Very
often, it's easy to overlook the flaws in something because we have a
viewpoint that makes them look smoother than they really are. Reductio ad
absurdum grabs your head and jerks it to an unnatural angle where you're
looking at the flaw head-on. This precise case is not likely to happen in
practice, but that doesn't matter, because the value of the situation is in
helping us see a problem.

If you want to see an example of where this approach might have helped, look
at the children convicted of making kiddie porn for taking cell phone pics of
themselves. You could have brushed off reductio ad absurdum arguments by
saying, "Oh, that precise situation is so unlikely," but the flaws are real
just the same.

------
mcantor
I feel like this is pretty clearly a joke, and should be taken in the spirit
in which it was intended: for laughs.

------
alanh
As dfranke says, "private APIs" are CocoaTouch/NS_* objects and methods Apple
uses that you aren't allowed to (yet).

This article is factually false and should be downmodded.

------
Keyframe
You know what would be funny? If someone makes a fully fledged javascript
flash player - <http://paulirish.com/work/gordon/demos/>

~~~
raganwald
That would actually be ok and I would be surprised if Apple cared one way or
another. Why? because such a thing would run inside Mobile Safari and/or
Webkit. It couldn't run roughshod with the CPU any more than Mobile
Safari/Webkit already allows its JS interpreter.

The only way this could really irritate Apple would be if you wrapped the
whole thing up with PhoneGap or something like it. have at it of that
interests you!

------
khangtoh
Again, I know this is a sarcasm post, but do we really need another one on HN
for Apple TOS 3.3.1. I think it's time to move on and until there an instance
of Apple rejecting an app that violates 3.3.1. I honestly think Apple wouldn't
ban tools like Unity3D, etc but Adobe CS5.

------
price1
Well, he makes one useful point at the end. So why are turing machines allowed
in the app store?

[http://itunes.apple.com/us/app/turing-machine-
simulator/id30...](http://itunes.apple.com/us/app/turing-machine-
simulator/id303032123?mt=8)

~~~
abecedarius
Selective enforcement.

