Hi Marc, I want to debate a couple points from your post:
> 1. Distribution of GPL covered applications is not permissible via the App > Store due to the Apple Terms of Service language, which infringes upon rights > granted under the GPL. > > 'Nuff said. I'm not sure I agree with this, but there's so much wiggle room in interpreting what the GPL means that there would probably be no way to decide without a courtroom & judge, so I'll leave this part alone. =) I also haven't yet read your other post where you discuss this. > 3.3.1 Applications may only use Documented APIs in the manner prescribed by > Apple and must not use or call any private APIs. I believe that language only refers to *Apple's* APIs. In other words, they don't want you to call hidden functions that aren't supposed to be exposed to developers. If it meant no use of any APIs private to the developer, it would rule out pretty much every application in existence, considering that a call from one function to any other is an API call. > However, the beta release of the 4.x version of the iPhone SDK has the > following language in the same section: > > 3.3.1 Applications may only use Documented APIs in the manner prescribed by > Apple and must not use or call any private APIs. Applications must be > originally written in Objective-C, C, C++, or JavaScript as executed by the > iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may > compile and directly link against the Documented APIs (e.g., Applications that > link to Documented APIs through an intermediary translation or compatibility > layer or tool are prohibited). Here again I believe the "private" API language refers to unsanctioned-but-exposed pieces of Apple's platform that you're not supposed to touch. The language restrictions I interpret to mean that if you call their Official API hooks, you must do it from one of the Official Languages. However, FORTRAN code will never call Apple's API hooks, it just does its little matrixy/FFT/etc. stuff and returns the results. In the call stack, FORTRAN is always a dead end. It doesn't call Apple's APIs, and it doesn't call a translation layer that calls Apple's APIs. So again, R may be in the clear here, under this interpretation. Note that Java & Flash applications, under this interpretation, are *NOT* in the clear, because they do call GUI APIs (among others). > 3.3.2 An Application may not itself install or launch other executable code > by any means, including without limitation through the use of a plug-in > architecture, calling other frameworks, other APIs or otherwise. No > interpreted code may be downloaded or used in an Application except for code > that is interpreted and run by Apple's Documented APIs and built-in > interpreter(s). I think this indeed pretty effectively rules out installation of packages from CRAN, which is a bummer - unless those modules are downloaded & installed through the app store. Not sure if that would even work though, since they're not apps. As for the "interpreted code" stuff, there's so much murkiness about what constitutes interpreted code that I don't know if this is a deal-breaker or not. At one extreme, it could prohibit pressing buttons in an app and then "interpreting" those presses as commands for the app to "do something." At the other extreme, Somewhere in the middle, it would seem to cover language translation apps. The notion of "interpreted" is just not very well-defined. For instance, most people think of Perl as an interpreted language, but it compiles to bytecode before executing just like Java (it just doesn't typically save it to a bytecode file). Finally, I do agree with the general tone implied in your post - it is a major major hassle that Apple's overlords control the distribution channel for software on non-jailbroken iDevices. I don't like it at all, for the exact reason that people like you & me & the rest of the world now have to sit around speculating whether our helpful apps will pass muster with the cabal. -Ken [[alternative HTML version deleted]]
______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.