Monday, April 12, 2010

Can We Stop with the "Evil" Thing?

I always enjoy reading James Higgs' commentary on iPhone issues even though we often disagree on issues. That is true for today's piece entitled iPhone OS 4.0: Now With Added Evil. He makes some good points, many of which I disagree with, but, I have one big pet peeve with his post, which is…

…can we please stop with this trend of calling things we dislike or disagree with "evil"?

Evil is baby killing… pogroms… serial killers… the Jonah Brothers. You know, bad shit. Evil is not restricting the choice of languages you can use when you write software for a single software platform from a single vendor. My gosh, people. Talk about skewed, first-world perceptions! This is, at worst, "annoying", "frustrating", or maybe even "bothersome". It's certainly not "evil" in any reasonable sense of the word. It's not even immoral, unethical, illegal or fattening, no matter how much you may dislike it.

(Sorry, James - you're not the only one to do this, yours was just the proverbial straw that broke the camel's back)

I appreciate that people don't like the recent SDK agreement changes, and I even understand why. But let's keep some fucking perspective, can we? We all signed an agreement that said Apple could unilaterally change the terms of the agreement by giving us notice, and we were okay with that because we wanted to be part of the App Store. Now that Apple has actually gone and changed it a few times, people are whinging like the world is ending. The door's not locked, people. Feel free to leave if it gets too onerous for you. If you're not willing to man up the way Dan Grigsby did, then register your complaints using the bug reporter and move on with your life.

I don't always like the decisions Apple makes. I think the app store censorship is sucky, the review process is still too arbitrary, and 3.3.1 is worded more broadly than it should be. But none of those are bad enough to make me leave the platform. I like the platform, and there's still so much opportunity here that I definitely want to stay. So, I've lodged my complaints and have moved on.

I really don't want to get sucked into the argument about 3.3.1, but I need to point out that there is a valid reason why Apple would choose to do this. Even if you don't agree with their decision, you should at least acknowledge that it's not arbitrary (something I've seen as an implicit assumption in many of the rants and arguments against 3.3.1)

If you use Apple's provided tools and frameworks, when you submit your app, all the code that makes up your app is available. Apple controls part of it, and you control the other part. With an intermediate layer, there's a third chunk of code that's a black box. Apple can't get to it and you can't get to it, either. Have you noticed that we're also not allowed to build frameworks for the iPhone the way we can on the Mac. Same exact reasoning.

The changes Apple is having to make to the frameworks to accommodate the multitasking APIs in 4.0 offer a good example of why Apple feels they need to do this. I can't discuss technical details of 4.0, but I will say that by tweaking the frameworks and APIs, Apple has been able to maintain a surprisingly high level of backwards compatibility with older apps. Guess which apps aren't playing nicely with the new multitasking functionality?

Yes, it's about control, but no, it's not arbitrary or without reason. You are welcome to disagree with Apple's judgment, but don't assume the changes ares being done for arbitrary reasons: to spite Adobe or because Steve Jobs is in a bad mood.

Let's look at a hypothetical situation. Let's say that instead of the handful of Flash-generated apps that Adobe snuck onto the App Store, let's imagine that there are 5,000 of them. Let's also say that hypothetically, for some reason, Flash-generated apps don't work with 4.0, and Apple can't reasonably make them work with 4.01. When 4.0 is released and all of those apps break, who's going to end up looking bad?

If you responded with anything other than "Apple", you're delusional or, at least, don't understand customers. Customers don't know or care how their apps were made. They know that yesterday, their apps worked, today they don't and the only difference is that they updated to a new version of the OS. What's the logical assumption for somebody who doesn't know the underlying technical details to make? There's only one: That Apple's new OS sucks. Would it be an accurate assumption? No, but that's the perception people would be left with, and to Apple, customer perception is king.



1- Yes, Apple could work with Adobe to get the Flash Packager changed, but a) Apple has some reason to anticipate that Adobe would drag their heels, since they've dragged their heels for ten years on moving Creative Suite to Cocoa, and b) they'd have to test a good portion of the 185,000 apps on the App Store to even know which third party library was at fault, which just isn't practicable.



32 comments:

higgis said...

Hi Jeff,

Thanks for your post. No holds barred as usual!

Chambers has these definitions for 'evil':

1. Wicked or bad
2. Mischievous
3. Very disagreeable or angry
4. Harmful
5. Very unpleasant (informal)

I think the meaning you're limiting it to is quite a recent one and that it's not necessarily a hyperbolic word as you suggest. That, and of course I was using it to refer to Google's platform through their 'don't be evil' catchphrase.

I stand by my wording.

Any thoughts on your OpenGL generator being in breach?

James

brandon said...

I'm not a lawyer, but I think the OpenGL generator isn't in breach because it generates C code. Code generators still generate source that you can edit. The cross compiler doesn't.

Phillip said...

Hi Jeff,

I've been reading your blogs for a while now (since I got my mac mini) and I share your view with respect to the recent Apple issue. I think there are a lot of developers out there who will continue developing since they have been writing their apps in one of the required languages anyway. Some of those who whinge are those who want to get apps in the App Store in the shortest possible time.

Apple owns the playground and they just changed the rules. People can do one of two things, follow the rules and they can continue playing or move on and stop whingeing because I think Apple will not change the rules.

Also, Apple's existence as an organisation does not depend on the developers who produce Apps for the App Store. Heck, they have been in business even before the iPhone came to existence.

Apple is free to do what it wants if it thinks that this strategy will be good for them in the long run.

Jasan said...

Hi Jeff,
First, you are like god in this iPhone Development thing.
Like with god i disagree with you in some issues, but this Apple new restrictions are ok for me. Steve Jobs and Apple are greedy, like any other company, but i think this is not the main issue here.
I've read a lot of books about iPhone Development (yours OF COURSE), in Objective-C and XCode. I come from .NET, C#,Java,Python,Delphi,C++ and i spent a lot of time learning Objective-C. I knew about something called Mono, very nice, but even knowing that i used XCode and Objective-C, and just yesterday, reading the other post i knew about other ways to make iPhone apps!!! I said to my friend, wtf is that!!!!!!?? These people are cheating!!! I am very upset with that. And Flash? Please come on,are you kidding me?? Forget about compatibility with OS 4, fancy Flash apps in iPhone?? No way, give me my money back, give me back all the time i spent learning XCode,Objective-C, is not fair!!
If you wanna make iPhone apps, i agree with Apple with that, you do it in my way!!! For the record Apple sucks. They do almost always the right things but they never know how to give the right explanation, the right answer. Yes, Apple is evil, ok, but Google is evil, MS is evil.
I am not a fanatic, is use Google every day, as browser, i use gmail, i love Visual Studio, i love .NET, but i also felt in love with Objective-C (Yes i did), so come on guys grow up!!! Learn Objective-C, or go somewhere else.

Martindale said...

So long as I can still call things that are inherently 'evil' as they are, yes, we can stop calling things we dislike 'evil'

Things like open standards and freedom of information are clearly 'good'. There are varying degrees of 'evil', and striving to eliminate them is never a bad thing.

Otto said...

"But none of those are bad enough to make me leave the platform."

As a developer who was thinking about getting into app development, they most certainly are enough to prevent me from moving to the platform.

I've moved on to Android instead. It's a wider market opportunity, as it's clearly no longer possible to develop for the iPhone platform and retain a free hand. All you really are is an unpaid worker for Apple, Inc.

Jasan said...

Otto said:
"All you really are is an unpaid worker for Apple" lol,Hurt,but i loved that.

Josh said...

I completely agree, and others do as well. This post articulates it very well

http://www.devwhy.com/blog/2010/4/12/its-all-about-the-framework.html

Jeff LaMarche said...

Mr. Higgis :)

I will agree that the word "evil" is often used more casually than the OED's "Profoundly immoral or malevolent" definition, but I don't think that definition is a particularly modern one (Origin: Old English of Germanic origin). If anything, we've become more likely to ascribe the term to the banal. At the rate we're going, at some point we're going to need a new term to describe what "evil" once meant.

But, I would hope from the fact that I threw the Jonas Brothers into my list of truly evil things that I wasn't being altogether, 100% serious with my opening jab. I do think we tend to throw the term "evil" about in a rather cavalier manner, and yes, Google does get a fair share of the blame for it. I'd almost call them evil (your sense of the word, not mine) for doing so, but that might be too meta.

You can feel free to call Apple evil if you want, I can't stop you, but I think it's hyperbole. Everything is evil from somebody's point of view if your standard of evil is something "harmful or slightly bothersome". :) My main point in this was to show that Apple has valid reasons for their decision, not necessarily to convince you to agree with that decision.

If Apple's motivation is to improve the user experience rather (as they've stated, and as I believe), then I really have trouble ascribing or even accepting even your watered down definition of "evil". Apple might be wrong, they might be short-sighted. But evil? I don't see it.

As for your question: My OpenGL generator is clearly not in breach. It manipulates data only, and the output is only data. Even though it's stored in a header file as an array, there is no code, no logic, no conditionals, no functions or methods. A .h extension is not enough to make it "code". I think I can state with some level of certainty that it does not fall under even a loose interpretation of 3.3.1 and its use would not cause the app to be rejected.

But if it were in breach, it would be relatively trivial to export the data to a different file format with a different extension.

Otto:

By all means, enjoy Android, and I wish you the best of luck. I've done a fair bit of android work myself. I don't like it anywhere near as much as the iPhone SDK, and right now, it represents nowhere near the market. That may, and probably will change. But right now, neither the technology nor the market appeal to me.

But I don't want, nor expect everyone to agree with me. I've got no problem with people putting their money where their mouths are and not farming on Apple's land.

I'm not exactly sure what your definition of "wider market opportunity", but if it involves making money, I'd have to disagree that Android is any "wider" at the present point in time, though it certainly may become "wider".

"All you really are is an unpaid worker for Apple, Inc."

Yes, in the same way that people writing for Microsoft Windows are "unpaid" workers for Apple, those writing console games are "unpaid workers" of Sony/Nintendo/Microsoft, and those writing Facebook games are "unpaid workers" of Facebook.

Only, most of those people are getting paid, otherwise they wouldn't be doing it.

Jeff LaMarche said...

Jasan:

I'm no god, and I certainly don't expect (or even want) people to agree with me on everything. I'm not even saying people shouldn't be angry with Apple, I just think people need to realize that for Apple, customer perception trumps developer desires, and it has at least since Steve Jobs came back. A lot of the whining developers have an inflated sense of importance.

Steve and Apple are, indeed, greedy. Corporations exist to make profits. People who forget that, or pretend it's not true are likely the ones most shocked by the recent changes.

Martindale:

What "open standard" is Apple inhibiting here? They've repeatedly used and recommended open standards like HTML and OpenGL ES.

And how have they prevented you from using your data?

Vargo said...

Eh, it's hyperbole. "Evil", "Nazis", etc. I don't think many people take it literally.

And yes, Apple is a greedy corporation just like others, but that doesn't mean we can't call them on anti-competitive (not implying illegal), jerkish behavior. Acting in self-interest and blatantly offending stakeholders don't necessarily go hand-in-hand. Google is a good example of a company that has managed to keep a mostly positive image from its customers and developers while still acting in its own self interest.

And can you imagine if Microsoft did something akin to what Apple's just done? There would be no end to the fury... hell, I bet I'd read about it on this blog.

I want to reference Jasan as an example of my perception of the apologists on this issue. They come across as having invested lots of time and energy into Apple's (dreadful) platform, and now they want their day in the sun without anyone else ruining what they've spent so long trying to perfect.

"These people are cheating!!! I am very upset with that."

"give me back all the time i spent learning XCode,Objective-C, is not fair!!"

Jeff LaMarche said...

Vargo:

What corporation, indeed, what person doesn't act in their own self-interests? You are foolish if you expect corporations to act in any other way. Calling corporations "evil" for trying to make the best choice in light of their own interests is just idiotic.

And to address your point: Microsoft has done things very similar, but far worse. Remember what they did to Borland? Look it up if you don't.

In Microsoft's case, it was purely anti-competitive. They were specifically doing what they did because a competitor to one of their paid products (Visual Studio) was gaining market share, so they took steps to cut them off at the knees. Oh, and remember Quicktime? Microsoft took steps specifically designed to break Quicktime on Windows because it was becoming popular and challenging Windows Media as the dominant media player.

In this case, Apple gives away their development tools (you have to pay $99 to get on the App Store, but that's true with third-party products), so the "anti-competitive" argument is kind of silly. Apple is doing this to protect the user experience, and not without justification. They are trying to make the best decision they can on behalf of their customers. Egads! How horrible. Oh, the humanity.

Apple is already having problems with the 4.0 upgrade because of some of these compatibility libraries, particularly the Flash packager. They didn't just wake up one day and say "hey, let's fuck with our developers".

If you don't like it, if you think it's evil, then LEAVE. Buh-bye. So long. Don't let the door hit you on the way out.

Nobody's making you develop for this platform.

Vargo said...

@Jeff

Missed the point. I never argued that companies shouldn't act in their own self interest; but they don't have to kill kittens (hyperbole) in the process. I used Google as an example of a company that acts in their own self-interest while sparing the lives of kittens (hyperbole).

You're naive if you believe that the sole motivation for this addition to the terms is to create the best end user experience. No doubt that's a concern of Apple's, and I loathe Flash as much as the next [non-Flash developer]. But Apple's move additionally makes it much harder to target an app for multiple platforms, which, in Apple's short-sighted judgment, appears to be in their best interest.

And yes, I understand the simple-minded knee-jerk "love it or leave it" sentiment, but it's not accurate, and helps me reinforce one of my earlier points. It's entirely possible to loathe a development platform but still cling to it because it's the best consumer experience available. Superficially it may seem that the rantings of developers are irrelevant since they'll continue to make apps anyway, but since their loyalty has dried out, they will happily jump ship as soon as something else shiny comes along. If I were Apple, I wouldn't want to be in that position.

K. A. Barber said...

People say "jump ship" like it's a bad thing. I was taught by some successful ISVs to follow the consumers with the money. That means across platform, across language and across dev tool where ever the buyers are that is where I want to be. Apple has the attention of a large group of people who spend money regularly on software. I don't know about the evil you guys are talking about.

I have experienced true evil a couple of times in my life and our current little tech skirmish ain't about evil. It's about $. Lots forget just how expensive the cs5 suite is. It's at visual studio levels of expensive. Adobe wants to charge anyone willing to buy this tool set to develop for Apple's platform and M$ won't mind the possibility of iPhone dev capabilities showing up on Windows without having to fund or negotiate for it. It is silly to shout evil at one side when both sides are equally so.

Jasan said...

OK, i see only one thing here. Like Jeff said you can't espect people agree with you all the time. This is the main issue here. Some people disaprove Apple's choices, some people think different. If we want to argue about ethics in software development let's go somewhere else. We all give our points of view and i think they are all valid. The time have the last word about how accurate were Apple's desicions. We all want our momment either with Apple, Google or Microsoft, but in the end they are what they are thanks to us. So embrace the side of your preference and give a good fight for it.

honus said...

"With an intermediate layer, there's a third chunk of code that's a black box. Apple can't get to it and you can't get to it, either."

I don't get this part. I don't ship Apple my source code when I upload my app. Even if I build an app with some 3rd party tool I have to upload the entire app for submission. What is more black box to Apple about the 3rd chunk than my own library I built and compiled into my project?

contact said...

Hello Jeff,

I agree with your points, but...

What about Lua ? I mean, with the new terms I think it's illegal for me to compile my own Game Engine as a Static Library and then use Lua to separate the data from the actual code. ( Which I haven't done but was my original plan )

I think Lua is widely used in the game industry for this kind of matter, and for a good reason.

What do you think about this ?

graphicaliber said...

Its more than enough for me to choose a focus on Android development. Maybe Ill outsource a port to iphone or not. Your argument that banning other language / tools by 3rd parties fails when you consider that Apple could simply require 3rd parties adhere to .ipa compile-time standards of which Apple sets. This is the most logical & agreeable choice and yet Apple didnt even bring it up. Instead they bash their competition through rumor and ban their competitions toolsets. This is even worse than Windows shipping with IE which was settled in antitrust courts.

Sam said...

Thank you for your article. Then let's see something about cosplay. You must be interested in it.
Cosplay Get Its Own Magazine: Cosplay Gen
cosplay is big. Very big. China Wholesale More than half of all kids at anime conventions these days are cosplaying cosplay costumes.

Relax, cheap cosplay costumes it’s nothing scary. Cosplay is just the Japanese word for dressing up in costume. naruto cosplay You know, like you do on Halloween... cosplay naruto except if you spent four months making your costume, Kingdom Hearts Cosplay and made all of the props yourself instead of buying everything out of a package at the temporary local Halloween Superstore cheap cosplay.

In an indication of just how big the international cosplay community is getting, anime cosplay May will see the launch of a new, English-language cosplay magazine anime cosplay costumes out of Europe called Cosplay Gen. wholesale costume The 72-page issue #1 Japanese School Uniform will include tons of photos, interviews, profiles, DIY tutorials and a pull-out poster. Final Fantasy Cosplay Pre-order your copy now and receive a free issue of Otaku Magazine Bleach Cosplay.

UGLY said...

the iPAD dose not allow you to make a playlist of videos. I only purchased the PAD to watch my large collection of music videos. Unlike my ipod touch the ipad plays one video then goes back to info screen instead of moving to the next video. Please develop something that can play videos in shuffle or any order back-to-back.

Thanks

John said...

Its nice to see ur blog is related to iPhone Developmnet.
- Offshore Software Development

Ted said...
This comment has been removed by the author.
Ted said...
This comment has been removed by the author.
Ted said...
This comment has been removed by the author.
Ted said...
This comment has been removed by the author.
Ted said...

* I really needed an edit button, sorry about that,

It's simple, tech "journalists" generally write terrible articles. Of course they will call things "evil". And perpetuate stupid internet memes. And make tech-junkie in-jokes. And do lots of other things that are common at a high-school level of writing. You can't stop it. They are worse than gaming journalists. Instead of just reporting their news they put this weird personal spin on everything that make their articles look really unprofessional. Not saying being casual or opinionated is wrong, but just like this "evil" thing, they take it too far.

Case in point - http://blake8086.blogspot.com/2010/04/tech-journalists.html

That's the sort of person who does the writing.

婷妏 said...

very popular to u! ........................................

Sean said...

Really...Apple should first make solutions to the problems in iPad and then go for iPhone OS 4.0
iPhone Developer

deRAYnger said...

Whew!!! I just bought a Mac Book Pro and was planning to (some day) get to program something. I stumbled on this post and it got me all worried that they'd forbid C++! Fortunately it's just other languages that aren't permitted. I use C# at work, but for myself I program in C++ (spare time).

Sam said...

Thank you for your article. Then let's see something about cosplay. You must be interested in it.
Cosplay Get Its Own Magazine: Cosplay Gen
cosplay is big. Very big. China Wholesale More than half of all kids at anime conventions these days are cosplaying cosplay costumes.

Relax, cheap cosplay costumes it’s nothing scary. Cosplay is just the Japanese word for dressing up in costume. naruto cosplay You know, like you do on Halloween... cosplay naruto except if you spent four months making your costume, Kingdom Hearts Cosplay and made all of the props yourself instead of buying everything out of a package at the temporary local Halloween Superstore cheap cosplay.

In an indication of just how big the international cosplay community is getting, anime cosplay May will see the launch of a new, English-language cosplay magazine anime cosplay costumes out of Europe called Cosplay Gen. wholesale costume The 72-page issue #1 Japanese School Uniform will include tons of photos, interviews, profiles, DIY tutorials and a pull-out poster. Final Fantasy Cosplay Pre-order your copy now and receive a free issue of Otaku Magazine Bleach Cosplay.

h4ns said...

What youre saying is completely true. I know that everybody must say the same thing, but I just think that you put it in a way that everyone can understand. I also love the images you put in here. They fit so well with what youre trying to say. Im sure youll reach so many people with what youve got to say.

Arsenal vs Huddersfield Town live streaming
Arsenal vs Huddersfield Town live streaming
Wolverhampton Wanderers vs Stoke City Live Streaming
Wolverhampton Wanderers vs Stoke City Live Streaming
Notts County vs Manchester City Live Streaming
Notts County vs Manchester City Live Streaming
Bologna vs AS Roma Live Streaming
Bologna vs AS Roma Live Streaming
Juventus vs Udinese Live Streaming
Juventus vs Udinese Live Streaming
Napoli vs Sampdoria Live Streaming
Napoli vs Sampdoria Live Streaming
Fulham vs Tottenham Hotspur Live Streaming
Fulham vs Tottenham Hotspur Live Streaming
AS Monaco vs Marseille Live Streaming
AS Monaco vs Marseille Live Streaming
Alajuelense vs Perez Zeledon Live Streaming
Alajuelense vs Perez Zeledon Live Streaming
Technology News | News Today | Live Streaming TV Channels

Hire iphone developer said...

Hello,
Nice blog i like it
If you want to hire developer programmer for iPhone mobile applications development with all the qualities mentioned above, you can hire them right away at very affordable prices here now!
Hire iphone Developer