Apple takes stance on consciousness
joeberkovitz.com
joeberkovitz.com
“10.4 Press Releases and Other Publicity. You may not issue any press releases or make any other public statements regarding this Agreement, its terms and conditions, or the relationship of the parties without Apple’s express prior written approval, which may be withheld at Apple’s discretion.”
As I said yesterday, Apple appears to be pursuing policies that will create a chilling effect on developers. No talk about what tools you used for your app development - anything other than C, C++ or objective C might kill your app. And also, no talk about the license conditions...presumably to include talk about the app store approval process, insofar as it is described in the license agreement. Sure, they won't sue you; but there goes your app store presence if they feel offended by your remarks.
That's not a very attractive deal if you ask me.
The really annoying thing is the NDA for beta SDKs. The only place you can communicate with other developers about new features until an OS is released is the Apple developer forum.
Apple did jump on this bandwagon pretty quickly. They're drunk with power already and only have significant share in the mobile market. It usually takes years of domination before companies do something so corrupt and evil.
Anyway, it's certain to come back and bite them. I hope it's a signal to all developers that iPhone isn't worth the trouble -- Android is on the uptake with much more openness, availability and options for consumers, and iPhones will be back down to < 10% of smart phones in a few short years.
Speaking as a user, I've never liked Android. It feels bad using it; it's not as quick or fluid, the ui animations aren't as crisp, the tapping seems less accurate, and I have serious trouble with their keyboards (on-screen and physical). I've met people who feel the same, and I've met people who make similar comments about the iPhone. In the end, people will buy what they like, and Apple makes a product of a level of quality that is easy for lots of folks to like, and they know exactly what level of quality to expect. Android is a hodgepodge of devices that range from cool to embarrassingly rough. My opinion is that until they do some serious cleaning up of their ecosystem and their OS, they've got a long hard battle for actual mindshare in the general public.
As a developer, I find myself inspired by form factor. That's my own limitation on creativity, I suppose. I don't think of an idea, and then imagine a device that would work for it. I look at a device, and imagine ways to use it. I am inspired by the iPad, and my position is that I will do whatever is necessary to make the app that I want to use. If that means learning to be proficient in Objective-C, so be it. I'm not saying what Apple did is fair, but I don't see how it would stop me.
But then again, my livelihood doesn't depend on, and I would never try to put myself in the situation where it did.
After using it for a few months it's pretty clear that the hardware is superior to the iPhone but the software is not quite as good yet (side from Google Voice native app and the GPS navigation which is outstanding). It still feels a little buggy and beta compared to iPhone OS. That being said I am seriously rooting for Google on this one and I hope they get there soon.
There is one other big advantage Google has over Apple in this race - all their data is already in the cloud. When I booted up my Nexus One for the first time, I entered one login/password and boom, it had all my contacts, email, calendar, documents, etc etc.
Android FTW!
Maybe apple dev club will be the next fight club !
It is as if AT&T said you could only use a certain phone to make phone calls. Or ConEd said you could only use certain appliances with their electricity. Or Intel said you could only use their compiler to write programs that run on their processors. The list is endless.
This is an exercise in futility. Apple really needs to give this a rest and relax. Let the market place determine which application experiences are better than others.
http://en.wikipedia.org/wiki/Bell_System#Government_sanction...
In 1968, the Federal Communications Commission allowed the Carterfone and other devices to be connected directly to the AT&T network, as long as they did not cause harm to the system. This ruling (13 F.C.C.2d 420) created the possibility of selling devices that could connect to the phone system using a protective coupler, and opened the market to customer-owned equipment. The decision is often referred-to as "any lawful device"...
http://en.wikipedia.org/wiki/Carterfone
Here's to hoping this same ruling happens in the wireless space next.
Yes that has worked so well for mobile phones so far...
They have no "soul" (corporate culture) nor anybody with sufficient power and vision to at least try something like this.
What would be smart of them would be to increase the prices on Mac products as to make them much less desirable compared to the PC variant. This would slowly drive users towards PCs. I know a lot of designers that bought Macs precisely to run Adobe software. So if they make it even more expensive perhaps designers will start using Windows variants some more.
Then again, once you get used to the Apple way of pricing things, Adobe's move might seem natural and business will go on as usual.
That already happened in CG/3D space, mainly thanks to Autodesk. Mac is starting to lose ground on editing as well due to AVID getting better for smaller shops. I can see it happen in graphics design area soon also.
I think now with the iPhone, we're getting to see what it might have been like if Apple had dominated the PC market.
As a result, the Mac's toolset essentially consisted of whatever Apple had written, for a couple of years, while development for the PC exploded instantaneously and you could do anything at all with it -- even if it looked like crap, you could actually do what you wanted, and soon enough, Windows came out and it looked less like crap.
Jobs has just barely learned the lesson of 1983. There are lots of apps available for the iPhone and iPad. What he hasn't learned is the larger lesson, which is that owning an entire market might be lucrative in the short term, but in the longer term it won't work.
...one iDevice.
"The source code for a work means the preferred form of the work for making modifications to it."
Just like Apple's SDK agreement, the GPL is written this way to prevent developers from claiming an intermediate representation is actually the "source code" when it's actually compiled or generated from the true source.
But it's completely irrelevant here. If nobody is going to modify your code but you, and if you can produce apps that work great on the iPhone, why should they care whether you write it by editing Objective C or by singing Hungarian love songs into an electric toothbrush?
-Tom Christiansen a.k.a. thoth, Perl contributor extraordinaire
That being said, just by asking someone to agree doesn't mean they will enforce it against small players (RhoMobile, Titanium).
Mine too!
You might imagine code in your head in some way, but when you write it, you're probably doing so with a specific syntax and structure, in a particular language.
I certainly can't speak for how anyone else codes, but there is a significant difference between the representation in my head before I sit down to code and the structures and algorithms of the compilable implementation. The act of coming up with a solidified idea and typing with syntax are not discrete passes, so I don't think it's inaccurate to say that I've "originally" implemented the program on a computer.
"What if Ben writes a Flash app, shows it to Amy, who codes it up in Objective-C, compiles it and submits it to Apple? Should it be rejected since it was not 'originally written' in Objective-C? If you think Apple’s answer would be 'no' — a good guess — then substitute Adobe’s iPhone Packager for Amy. Now should it be rejected according to the rules? What, at the end of the day, makes Amy different from a machine translation tool?"
Apple's rule creates all kinds of ambiguities. What if you mocked it up first in Ruby because that's where you're most comfortable? What if you used psuedocode? What if you just drew a diagram? What if you just thought about it? How do you determine what the app was "originally written" in?
More importantly, how does Apple determine it and why should they care?
Legal agreements will be interpreted differently and its important for them to spell out these ambiguities. For instance, I don't think "originally written" is defined anywhere in the document. If it were a really thorough legal document they'd probably define that somewhere. Right now its completely up for interpretation.
However a loophole exists: if right now you code in Generic Intermediate Language A which translates to an iPhone project in ObjC as well as an Android app project, there is nothing Apple can do (right now(1)) to stop someone writing a program which translates an iPhone project directly to a project for another platform like Android.
1) They can obfuscate the project data to make it harder/impossible to parse via some security mechanism, but this leads to a ridiculous arms race.
irregardless of one's opinion about section 3.3.1, there's actually nothing silly at all about apple taking a stance on the interpretation of a legal term. definitions are what makes law and legal agreements work, and you can define things however you please---the important thing is making yourself understood. obviously apple does not intend to outlaw thinking before coding. therefore they have implicitly defined their terms accordingly.
Not necessarily, but inconsistent developer tools rarely lead to better UXs than consistent ones. I don't know about you, but I haven't tried a single Flash-written app on the iPhone which didn't suck. And Apple's recent deletion of below-standards apps shows that they take app quality very seriously and want to set a high standard for the platform.
As for the author's stance, it's simply ridiculous!
If you write a Cocoa Touch app, you're targeting the touchscreen-based iPhone OS.
If you build with Flash, you're targeting mouse-based windowed operating systems, and, what the hell, might as well build to iPhone while you're at it!
Banning Flash apps is smart, and I'm glad they're doing it. For C# apps, that's definitely non-ideal, but I can see where they're coming from.
And I'm not defending Apple, here. I don't like where they're headed. But I find this whole 'the program was written in my brain' thing ridiculous.
This is the Apple App Store. All apps require Apple approval before they can be sold. They can reject apps on whatever criteria they like. They have also demonstrated this is not a theoretical concern, either, by rejecting things for all sort of reasons that can't be said to be "objective". Apple graciously gives developers some guidelines on how they may make their arbitrary decisions, but, well, while I concede I have not read the developer agreement it is only because I'm about 98% confident without looking that Apple never actually agrees to do anything w.r.t. releasing your app.
Ultimately, "we don't want our vision compromised" is a smokescreen. It is absolutely true that if this is what they wanted, they could accomplish it simply by holding all apps to the same standard regardless of implementation techniques. This is all about lockin.
Now, if an open platform mandated certain libraries, but allowed you to distribute arbitrary executables, the UX argument would at least hold water, as lacking the strong enforcement mechanism of having absolute say over what you can run on your device means that falling back to the weaker enforcement mechanism of code would arguably mean something. (Something stupid, but something.) But Apple already has total control. Arguing about how their already-total control can only be augmented by this technical thingie over here is a smokeshow; taking control from "total" to "total" is a no-op, technically.
Yes they can, they can reject any app they don't want and have rejected any app they don't want.
In fact, I think the whole damn thing would be better if there was just a standard disclaimer, "Yeah, we'll reject anything we don't like."
It's like saying "I need the original copy of that file." What, you want me to ship you the hard drive? All you really need are identical bits of information.
Oh, crap, I defragged my hard drive. Guess I don't have the "original copy" anymore after all.
Apple's actions here can at least be viewed as quality control, and since its their product and their app store etc. its their choice. This is no different to how games console manufacturers refuse to support third party hardware/software, and if you do want to produce software for them you need to most often use their tools and comply with their requirements. Historically this has worked for them very well.
The writer also negates to consider the real world difficulty of implementation - having a set of ideas about how something should work is a totally different concept from having a working implementation of a concept - except for that one case where the ideas are sufficiently concrete to describe an implementation in a single language. Translating ideas into C++ or whatever is not trivial so the implementation and the original concept can not realistically be considered the same thing unless it includes all of the implementation considerations as well. In which case there is no valid way to distinguish that set of ideas from the source code - mathematically they are identical descriptions of an algorithm, if they were not then one or other would lack sufficient information. The program would not produce the intended results or the idea would be missing information required to produce the implementation.
As a simple example consider the difference between the usual form of the Pythagoras theorem ( h^2 = a^2 + b^2 .: h = sqrt( a^2 + b^2 ) ) and some code to find the hypotenuse of a right triangle from the other two sides - there are lots of issues there that the original theorem has no need to consider, like whether to use floating point representation or fixed point, what square root algorithm to use and what order the operations should be performed in. All of these decisions can have a dramatic impact on the performance and accuracy of the implementation (i.e. produce detectably different results) and some of them may be language dependent, e.g. your language might provide a black box square root function but not specify how it must work, which could be left to the implementation to decide.
Even so, do I have ownership of my particular C++ implementation of this? No. Anyone else could have done the same without prior knowledge of my solution - because its already there encoded in the laws of nature waiting to be re-/discovered/ (not /invented/). Invention is a convenient label like "artificial" - it has no counterpart in reality but is a useful abstraction in daily life. But I digress...
FTFY
This is an actual consideration.
Apple doesn't want 3rd party "compilers". That's what those lines in section 3.3.1 means...