4 ms·
Interesting. MonoTouch, which is the Novell/Mono team's rather fantastic port of C#/.Net to iPhone, compiles down to native code and apparently that was OK wit
by rit 17y ago
Interesting.
MonoTouch, which is the Novell/Mono team's rather fantastic port of C#/.Net to iPhone, compiles down to native code and apparently that was OK with apple to begin with. Unity3D which is a popular 3d framework for many platforms including iPhone (Where it runs a lot of games) was available before MonoTouch and is Mono based.
Assuming the OP is correct in the "new developer license agreement" statement (e.g. the relevant section is entirely new or changed) the "Originally written in Objective-C, C, C++ or JavaScript" is worrisome. It technically invalidates MonoTouch. Even if MonoTouch is hard translating code to One of the blessed languages before compile, you didn't write it ORIGINALLY in it.
And love or hate Mono, .Net, C#, etc etc. the fact is that it brings iPhone development to a larger audience which is (IMHO) overall good for the iPhone app world.
I seem to recall Adobe was demoing a similar system a few months back - which would compile down a Flash app to native code in more or less the same way as MonoTouch does. I guess it's entirely possible that Apple is targeting this in their change, but unlikely as this wouldn't allow you to run downloaded flash. It would simply let you download Apps from the store which were written for Flash, but since they'd been translated to native runtime probably wouldn't be the battery hogs that apple seems to fear.
I've been watching Apple long enough to think this may not be a case where they're targeting a specific person/company, rather ... it's future leverage. If they run up against something they don't like (there are obviously lots of things like MonoTouch and more coming along) sometime in the future they now have a clear one liner to point at for "VERBOTEN". They may still however work happily with companies like Novell to produce a grey-area inhabiting MonoTouch.
UPDATE: For the record, the MonoTouch FAQ (http://monotouch.net/FAQ http://monotouch.net/FAQ) states very clearly "MonoTouch is delivered as a static compiler that turns .NET executables and libraries into native applications. There is no JIT or interpreter shipped with your application, only native code. ". Obviously this distinction used to pass the test.
- bad_user 17y agoMonoTouch is a commercial product ... and they (Novell) were probably hoping for a business plan to finance their open-source development. Unity is very successful in the iTunes store, with at least 1 game in the top 10 developed with it. Adobe CS5 would be great because of their authoring tool, and no matter what your views on Flash are ... that's what the approval process is advertised for ... to remove crap from the app store, and I'm pretty sure you can write optimal apps on top of Flash. What the fuck are they thinking? If this is not a mistake, couldn't they announce this sooner, before all these companies waisted time on developing their products? This is just proof that having your business relying on a company that thrives from locked-in, proprietary platforms is a really stupid idea that should be taken with caution. And again, how can I recommend an iPad to my mother or other less technically-inclined people? What stops them from locking those users out of their own device they paid for, if such a thing becomes aligned with the interests of Apple?
- viraptor 17y agoThe rule seems to restrict more than can be verified in reality. Since you don't submit the source code, there's no way to tell what language you used. As long as it doesn't do dynamic code generation, everything should work. (of course if you don't mess with the binary after compilation, the language could be identified in many ways, but you can as well change the result to look like whatever you want)
- gte910h 17y agoEx Reverse engineer (and current iPhone Developer) Nope, you can tell. Especially if you have the tool itself on your desk when you try to develop a test (as Apple will surely be buyers of). If it doesn't look like Objective C, C++ or C in its call parameters, flow, etc, they'll "know" well enough to hold you up in their queue process until you "send screenshots of the source" The boilerplate code technique (where C code is generated) can even be detected (although has more false positives). The Adobe sourced Flash binaries are supposedly trivial to tell, and I'd expect MonoTouch etc to also have that issue.
- ryanhuff 17y agoI don't see how Monotouch is not at risk here. While they may not use an interpreter, there is no objective c source code used in the building of a Monotouch application.
- rit 17y agoI'm not saying it's not at risk. I'm saying it MAY NOT be specifically targetted. This may be a shotgun clause that Apple pulls out as needed, rather than a "Hey Novell/Adobe/Unity cut that shit out as of now".
- Matthew_Fabb 17y agoWell, that could be a problem since Apple's new agreement says "Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine". So if the code is written anything but those 4 languages, then the resulting app is breaking Apple's new licensing agreement.