Thursday, April 8, 2010

Steve Jobs Has Just Gone Mad

Today Apple announced a version 4 their iPhone OS. It seems to answer most of the open issues relating to the platform. All sounded good.

But then, John Gruber over at Daring Fireball discovered a "hidden gem" in the new developer terms.

here they are:

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).


I am sure most of you know that Apple is trying to kill Adobe's Flash, so I won't go into that here. But the point of this rule is clearly to prevent Adobe from selling their new Flash development tool that compiles Flash apps into native code for the iPhone. What Apple is saying here is that the only tool you can use to write iPhone apps is theirs. This, it seems to me, is bad enough. I don't believe I have ever seen any company prescribe what tools you could use to compile on their hardware. But what Apple is saying here is even worse than that.

The key is where they say "Applications must be originally written in Objective-C, C, C++."

Take a pause and think about what that "originally" really means.

Developers are not free to use any tools to help them. If there is some tool that converts some Pascal or, Ruby, or Java into Objective-C it is out of bounds, because then the code is not "originally" written in C. This is akin to telling people what kind of desk people sit at when they write software for the iPhone. Or perhaps what kind of music they listen to. Or what kind of clothes they should be wearing. This is *INSANE*.

Steve does not want to allow Adobe's tools to be able to generate compiled code for the iPhone. But with this additional twist he doesn't even want Adobe to be able to generate objective-C which is then compiled by *Apple's* tools. The ridiculousness of specifying the manner in which one writes their code is hard to overstate.

My point is simple. It is perhaps reasonable to specify the nature of the programs that can be sold in the AppStore. It is not reasonable to specify how developers create those programs so long as the end result meets the specified end result criteria.

If you need to "originally" write your code in Swahili, while listening to Milli Vanilli, while reclining in a patch of mud, and then you need fifty oompa loompas to translate the Swahili into C, that is none of Steve Jobs fucking business. And the idea, which I am sure is actually the plan, that he will inspect application code to figure out what the "original" language is that the code was written in is just plain pathological.

172 comments:

  1. I agree from a theoretical standpoint- in that respect it's pretty heinous. But there's a practical angle that seems bit more sympathetic. There are already 185,000 apps. The noise floor is getting pretty high, and there's already a problem with massive "shovelware" producers dumping dozens or hundreds of apps into the store.

    With a burgeoning platform, and now the iPad on top of this, I think Apple is starting to get afraid of the app store turning into a carny of sh***y apps- and having to look at & approve every single one.

    Insisting on writing in Apple's preferred environments raises the threshold. As Hacker News put it in the link Gruber posted:

    http://news.ycombinator.com/item?id=1250946

    >>>>In my experience so far with such "cross platform compatibility layers," they always produce results that water down each platform's individual strengths and differentiations. And of course, instead of the developer being locked into the phone platform, they are locked into the compatibility layer's platform.

    >>>>Adobe's Flash compiler is a classic maneuver to "commoditize your complements," as Joel put it so well. Apple don't want to be commoditized, especially if it means having apps that don't take advantage of the iPhone's strengths.<<<<

    The weird thing here is that in a way, the iPhone OS might be seen as too successful. While other platforms struggle for 3rd-party developers, Apple sees its app store filling up so fast that talented developers are increasingly challenged to get any attention. Now, with iPhone 4.0, developers even have a super-simple way to add advertising to free apps, and I can see Apple dreading a flood of crappy ports. Not to mention weekend Flash developers overwhelming Apple's app approval team with countless me-too apps.

    If you want to put the brakes on a bit, what better way than to insist that developers use the tools that maximize your platform?

    Oh- plus, Apple hates Flash. ;-)

    Again, philosophically heinous- but not without a perverse but potentially defensible angle as well.

    ReplyDelete
  2. Kim Hill, Apple could just demand higher quality apps and disapprove lower quality apps. There's been a number of cool apps made with Unity3D (check out the Star Wars trench iPhone app made with Unity3D) and those apps will now be banned under the new rules. It seems to be completely a business decision on why Apple has done this, nothing to do with quality.

    ReplyDelete
  3. Trying to protect application hegemony in this way doesn't make a heck of a lot of sense. Apple will seriously have to loosen up to maintain the integrity of a cracking surface hipness for the Apple brand. The Apple backlash gradually mounting on blogs and sizzling screens everywhere is due to an evil Emperor sending "destroy" signals to jailbroken iPhones--and now this unfriendliness toward developers--is not helping Apple consolidate control over its snazzily-designed products so much as give Apple's hardcore techie base and cheering section the creeps.

    ReplyDelete
  4. And the idea, which I am sure is actually the plan, that he will inspect application code to figure out what the "original" language is that the code was written in is just plain pathological.

    Unfortunately, that's something which can be done automatically, by examining the binary.

    Apple already has a static analyzer that looks for calls to private functions. (I actually think this is a good thing, because it means unsupported is UNSUPPORTED, and Apple can improve the platform more quickly without the burden of legacy support.)

    Translation tools have a certain pattern in the code they produce, and computers are experts at matching patterns. The same, decades-old, technologies that detect the pattern of a virus in a program can detect the pattern of a translator.

    In other words: this sucks even more because it's enforceable.

    ReplyDelete
  5. It's not just Flash CS5 that is affected by this.

    This also affects Unity3D which is also used to create great apps for the iPhone.

    @Kim_Hill if quality & appstore crap-flooding is the problem, then Apple should screen just for quality. Dictating that you limit your toolset limits your productivity, creativity, and the potential for new & fantastic apps on the appstore. This is just plain draconian policy-making from Apple.

    It's the The Appstore & Apple customers that lose out with this new direction.

    ReplyDelete
  6. I was originally afraid of the April 13 flood of match-3 and Justin Bieber Jigsaw puzzle games into the app store, but now I am just angry. They should worry about the quality of the apps, not the language they are written in. Objective-C came from Jobs and Next, so it is no wonder he grapples on to like a 3 year-old to his mother's leg. It would be better if he chose Unity as the official iPhone app language. Plus, I have been in the CS5 beta program from months now and apps have to be highly optimized to compile correctly, This would eliminate most of the crap right away.

    ReplyDelete
  7. @Kim Hill: Oh no! Too many apps, too much choice, too much to censor, sorry "approve". We have to stop this evil shovelware now!

    I know, Apple could solve the whole approval problem by introducing a new concept called "freedom", where people just get the apps they want from the developers website, instead of through the frickin' App$tore.

    ReplyDelete
  8. They won't audit every app. If they had the resources for that, the approval process wouldn't be such a gong show.

    They'll use it punitively after the fact when they need to dispose of a popular flash app.

    ReplyDelete
  9. I agree. I have been developing Apps with Lua, and that's now completely against the rules also.

    The rule to limit programming languages is the most stupid thing ever done by Apple, and they have done a lot of stupid things.

    I guess I will have to switch to Android...

    ReplyDelete
  10. If you cannot write in C you are an idiot.

    ReplyDelete
  11. My Java compiler is written in C. My PERL interpreter is too.

    ReplyDelete
  12. They do audit every app, especially iPad apps. We got a bounce for allowing more than one popover to be open at once.

    ReplyDelete
  13. You're a fucking moron. "Originally written" means that the code that is compiled must be C, C++, or Obj-C. Code generation is perfectly allowable. You just can't compile directly from Lua to an iPhone App, or from C# to an iPhone App.

    ReplyDelete
  14. > The ridiculousness of specifying the manner in which one writes their code is hard to understate.

    Umm... did you mean "overstate"?

    ReplyDelete
  15. This is great news! Just think of all the developers that can concentrate on Android now!

    ReplyDelete
  16. This is not "insane", it is simply the next logical step in Apple's strategy of redefining computing such that they, and only they, are allowed to profit.

    ReplyDelete
  17. Prediction:

    They won't invoke this term against apps transcoded from Ruby.

    They won't invoke this term against apps transcoded from Python.

    They won't invoke this term against apps transcoded from any language... except Flash. Those will be categorically banned.

    The clause is written this way because Apple can't state: "App Store applications cannot be originally written in Flash." That would blow the thin cover they've laid for themselves, draw public ire, and attract the interest of the DoJ. Instead, they've drafted a broad, blanket rule that *includes* the more specific enforcement that they'd like to achieve - without the unpleasant side-effects.

    As an added bonus, this also gives Apple an ironclad excuse to exercise arbitrary control over a whole portion of apps that were otherwise untouchable. I expect the "your app wasn't originally written in..." excuse to be invoked for apps that Apple wants to remove for its own business reasons, but that don't directly violate any of the other ToS.

    ReplyDelete
  18. Nobody's even mentioned monotouch here. And that's in C#

    ReplyDelete
  19. They should give Adobe a try before going mad like this

    ReplyDelete
  20. I don't know if this makes any sense...but if Adobe's tool converts the code to Objective-C first...why don't you just copy and paste that into Xcode and then it was "originally written" in Objective-C...you would just happen to be a very strange coder.

    ReplyDelete
  21. I saw this coming and left apple for android last year and have never happier! The key here is FREEDOM!!!

    ReplyDelete
  22. I think this is going to hinder RHodes too, which converts Rails-like apps to iphone, android, and others.

    ReplyDelete
  23. Was C originally C? Isn't it made from Assembly?

    ReplyDelete
  24. I seriously dont understand why people complain. Just dont buy apples products and dont develop for their oses. Just switch to android and be free, stop feeding the ones that tries to limit you. The fanboys and other that enjoy being buttfucked by apple and jobs just take it and shut it, you have a choice.

    ReplyDelete
  25. From a marketing point of view, they try to guarantee that each application is made for iPhone and only for iPhone, and that you won't find them elsewhere! A dedicated app means a total optimization for the performance, for UI, and that you won't be restricted by any abstraction layer!

    The market is with Steve Jobs... The main target for mobile app is iPhone actually! He would like that the developpers work exclusively on iPhones! And to remove the facility to developp the same app, on iPhone/Android/WM

    ReplyDelete
  26. This is great news keep up the good work

    ReplyDelete
  27. Yup, he has indeed gone bonkers!

    Lou
    www.surfing-anonymity.br.tc

    ReplyDelete
  28. You're analogies are inaccurate and disingenuous. "his is akin to telling people what kind of desk people sit at when they write software for the iPhone." It's actually nothing like that.

    "What Apple is saying here is that the only tool you can use to write iPhone apps is theirs" So? Can you build Wii or Xbox games using Flash? How about native Mac or Windows apps?

    Not only that, but there is already a platform for building apps in a Cocoa Touch-free world. It's called the web. Apple happily supports that route.

    Ultimately, the it's Apple's right to define the rules of the game, because it's their game.

    ReplyDelete
  29. I feel for you apple guys, I switched to android and am loving it. You guys need to Google "Steve Jobs Underwear" and preorder seeing this will be the next insane demand made by your chief dictator. The underwear will have to be synced to your iphones so when "unapproved apps are detected,you get a firm swift kick in the bag. When Flash is detected, kiss your jewels goodbye!

    ReplyDelete
  30. Had Microsoft done something like this everyone would be up in arms. Just don't buy closed BS like ipad or ipods and you'll be fine.

    sincerely,

    ReplyDelete
  31. Apple != Steve Jobs. He has not some crazy recluse scheming and pontificating from some secret office. Shrewd business decisions like these can and probably do happen at levels lower that Steve. He is in charge, yes. But making and approving every single decision and policy? I highly doubt it.

    ReplyDelete
  32. Actually this is really simple. Regular people don't really care about these rules Apple imposes on developers. They are happy happy in their walled garden, spending a lot of their money on apps and just being happy with their shiny toy in their beautiful garden.
    The "problem" is that Apple has a huge user-base of happy happy clients and the revenue stream for a developer is significantly higher than in the other "free" environments.
    This is why developers, while constantly whining about the stupid rules imposed on them by Big Bad Apple, still continue to develop apps for this incredibly restricted platform.
    tl;dr: It's all about the money.

    ReplyDelete
  33. Iphone ,ipad and ipodtouch still constitute a very small percentage of global internet accessing devices. Although Apple is The-Autonomous-Authority that runs the appstore/itunes econosphere, their say over internet users/developers worldwide is infact , negligible .

    A good example will be India, a huge emerging market.India is #2 in total wireless mobile connections and #4 in internet usage .Still,Apple has sold less than 4000 iphone 3G in the country.3GS was released just a week or so back in the country. There is no reason why a local Indian portal to should ever migrate their existing flash content to some other format that plays on Apple mobile devices.

    I dont think Apple policies can kill Flash any time soon. Apart from this, HTML5 implementation is far from cross-browser compatible as of now( File API implementation ). Flash is going to be around for a long time.

    ReplyDelete
  34. Seriously, you guys are over-reacting. First, this is for the beta only. TOS is subject to change when it gets to final release. Second, this is yet to be definitively interpreted by someone who has specifically discussed the meaning with Apple. Right now, most of the uproar is based on interpretation in a vacuum - no Q&A with Apple.

    BTW, I've read somewhere that Unity 3D is not being excluded by the terms.

    ReplyDelete
  35. Apple's move might block a new revenue stream for Adobe. But if Adobe stops supporting the mac platform by not releasing its future production tools for mac, Apple will be fucked big time. A huge chunk of Apple users are designers and developersd who depend on Adobe tools like Photoshop,Dreamweaver,Flash Builder etc. Without these tools for mac, they will miigrate over to PC land and obviously Apple will be hurt BIG TIME!

    ReplyDelete
  36. i agree entirely

    ReplyDelete
  37. "I feel for you apple guys, I switched to android and am loving it. "

    I doubt if anyone here is an "Apple guy". I am happy enough with the decision as I am an Objective C dev. And indeed, if people do not like Objective C they can program for something else like Android. I wont because I dislike Java, hate Eclipse, and find the simulator on the Android platform to be shite.

    So it goes. I think only Java works there. You need to compile to the virtual machine. On Symbian, people use the Symbian OS.

    So angry flash developers (lol) will move to Android. Leaving the field clearly for me.

    Good times.

    ReplyDelete
  38. Eddie Van HelsingApril 9, 2010 at 11:47 AM

    Sounds to me like Apple doesn't trust Adobe's conversion tool, and doesn't want to have to deal with support calls related to apps created using Adobe's Flash-to-nativecode conversion tools. That sounds like business as usual for Apple; they've always had a chronic case of Not Invented Here syndrome.

    ReplyDelete
  39. So don't develop for the platform, if you don't like it.

    Next.

    ReplyDelete
  40. This is akin to telling people what kind of desk people sit at when they write software for the iPhone. Or perhaps what kind of music they listen to. Or what kind of clothes they should be wearing.

    No it's not.

    ReplyDelete
  41. Does this mean you'll stop developing for Apple products or will you submit to the new policy while posting toothless complaints?

    The only way Apple won't get away with this is if Developers stop dev-ing for iPhone OS... go on strike!

    ReplyDelete
  42. I think the important point here is that Apple already sells computers where everyone is welcome to write code in whatever language they like. What the author misses is that the iPad and iPhone are not sold as computers, but as appliances, more akin to a game console where developers ARE dictated on what to use. What makes Apple's appliances any different than a PSP, a DS, or an Xbox?

    ReplyDelete
  43. Kim Hill is a spoonerism for Kill Him. Coincidence? I think not.

    ReplyDelete
  44. Its funny to see that people still believe Apple's quality argument. This has nothing to do with software quality.
    I mean how naive/blind can you people be?
    Corporations are _always_ about profit, no exception.
    With this rule you can only write an app if you own a mac -> more money for Apple.

    ReplyDelete
  45. They can implement whatever draconian rules they want for their product. I am thankful for alternatives such as Android.

    But this "originally written in..." can be interpreted pretty extreme. In if you are signing legal agreements, you want to consider possible extreme literal interpretations.

    Did you write any design documents? Are any of the implemented algorithms originally described in any publication anywhere (that includes more description than just a source code dump in one of the approved languages)? When you wrote the code, at some point did you put a "TODO" comment block describing some operations or enhancements that were implemented later? If you have done any of these, then portions of your app do not satisfy this requirement.

    ReplyDelete
  46. > I don't believe I have ever seen any company prescribe what tools you could use to compile on their hardware.

    Someone probably raised this point earlier - but, yes, every games console is exactly like this.

    ReplyDelete
  47. Okay dude, if you don't like the terms of service; stop bitching on the internet.

    If you don't like the ToS on this device; simple; don't buy their product. Then you aren't bound by their terms.

    Don't develop for their product either.

    If people don't buy or develop for the product, it won't sell, and it will fail. Yet you still buy, and you still develop. Keep on getting bent over then!

    Thanks!

    ReplyDelete
  48. Totally not a programmer here - just a random blogger clicking on an Alexa link.

    This ToS change strikes me as the same sort of thing used by too many other companies - if we think you're benign or not a problem, you'll get a pass. We CAN enforce our own rules if we want, but we don't have to. At the same time, the legalese now exists so that if they want to exclude an app they don't like (that happens to fit their criteria), they now can.

    If you're the average coder making an average program that does an average thing (e.g. non-Flash, non-company-or-thing-Apple-hates), is Apple truly going to care?

    ReplyDelete
  49. I don't think you can say they're worried the App Store is getting full of crap apps and that the noise ratio is too high. Take a look at the iTunes music store, there is so much garbage in there but they don't care. The top apps will still be top apps and Apple will still take payments from publishers to push an app as recommended or "hot". They'll simply use this clause when a publisher does something they particularly don't like and they can force subserviance on them via the rules they agreed to for playing the game.

    ReplyDelete
  50. I think the reason for that line is to prevent developers from using some tools that can equally produce iPhone OS and Android applications. Apple wants to lure developers onto their platform (and rewards those developers decently well for making that choice) and keep them there. If I could create a game that worked equally well on iPhone or Android that's good news for me, but it reduces iPhone OS from a platform of magical wonderment to just another PC OS. This language gives Apple an out for booting your application if it's cross-platform.

    I'd like to know what Pop Cap games thinks of this language.

    ReplyDelete
  51. I am not a developer but I was seriously thinking of switching to Mac (Powerbook Pro) and also looking at an iPad and maybe Apple TV. I currently use Ubuntu/Linux and I like being able to customise my system and I like the open-source philosophy, but was considering making the switch so I spend less time tinkering. But Apple bothers me. They make great stuff (I love my iPod Touch) but this latest move with the iPhone OS4 just pisses me off. The more powerful Apple become, the worse it will get. I am seriously re-considering and am now looking at other options.

    ReplyDelete
  52. To the person that starts his/her post "you're a f** moron":

    Judges and juries will ultimately decide the meaning of "Originally written". Would you want the question of whether you lose a jury trial decided by 12 people off the street deciding what originally written means? The folks in the jury box don't usually know much about compilers and translators and the differences between the two. Oh, they don't know what a Turing Machine is either. I'm glad you grock it all, but good luck when Steve sues you.

    ReplyDelete
  53. If you haven't figured out the Apple wants to control (put in a cage) developers, you haven't worked with Apple in the last 35 years.

    Jobsy's the master of bait and switch. Only a sucker would bet on Apple.

    We had the Windows desktop monopoly. Say hello to the Apple phone monopoly with damaged browser and "approved apps".

    That 1984 ad keeps running in my head. Meet the new boss, same as the old boss.

    ugh.

    ReplyDelete
  54. > every games console is exactly like this.

    False.
    None of the major consoles have a requirement about which language you use (ignoring XBLIG).

    In fact, many commercial games use scaleform for UI, which is basically the same as flash.

    ReplyDelete
  55. it's the right decision. flash/java/c# are all sub optimal on the iphone and only bad non-performing apps would result.

    ReplyDelete
  56. Fact of the matter is, we as users don't have to put up with this. So I have no idea why we do.

    ReplyDelete
  57. They are crazy! Thanks to have informed us Hank!

    ReplyDelete
  58. Eddie VH,

    There are actually already apps on the Apple App Store that were generated using Adobe's method. One is a South Park avatar creator and a couple of others. One thing they do all share in common besides the compiler approach, is that they all perform astonishingly horrible. Far worse than any 13 year old's first attempt at Obj-C. As someone pointed out before, this will probably only be applied to apps ported from ActionScript, not from Ruby, Python etc etc... and for a good reason too. The results are extremely sub par.

    I wouldn't say this is as simple as an Apple hates Flash statement. It's an Apple hates having to support horrid platforms (I'm a Flash Developer) owned by companies who have not done nearly enough to improve their products. I mean Flash still doesn't have proper vector engine, FXG is a start but they don't seem to be pushing any more adoption or usage strategies.

    ReplyDelete
  59. From http://whydoeseverythingsuck.com/2010/04/steve-jobs-has-just-gone-mad.html?showComment=1270772987754#c852689160192295216

    "There are already 185,000 apps. The noise floor is getting pretty high, and there's already a problem with massive "shovelware" producers dumping dozens or hundreds of apps into the store."

    I agree there is a lot of shovelware, but it's not an AppStore-specific issue. All platform ends up having some less-than-remarkable softwares (especially if the applications are made by an open community), but it should be to the end-user to choose what is worth it or not.

    They still can list the most popular or highest rated one and let the masse tell what's good or not.

    ReplyDelete
  60. Does this block Opera (and their countdown to approval) too?

    ReplyDelete
  61. whiny jealous cheapskate trolls. This is good for users and developers and you still whine. :)

    ReplyDelete
  62. Everyone seems to harp on "apple should just worry about the quality and not how it was built"...one questions...how do you objectively measure the quality of the app? The way is was coded or the quality of the game play, or the quality of the UI? Quality is very subjective. And we have all heard the stories of "apple rejected this app or that app for no reason". Well this will allow apple a some objective measure for rejecting apps. Is it fair...well unfortunately life is not fair. Will apple suffer? Who knows, when you have 185,000 apps, it appears a heck of a lot of developers want to be on that platform and not Android.

    So instead of complaining about this...I just decided to learn objective C...those are the rules, it is usually easier to follow the rules then spend all the time trying to get around them.

    Plus anytime you put a layer between the software and the hardware there is degradation of some sort...its like putting a $30 UV filter on a $1800 lens....

    ReplyDelete
  63. I sent Steve a personal email thanking him. I spent countless hours learning objective-c. If someone wants to create a 3d game, then they need to open up an OpenGL book.

    ReplyDelete
  64. I used to work for apple supporting the iPhone. I always said Steve Jobs was the devil! I hated listening to all the crying iPhone owners about how Flash would not work and they (apple) kept telling us to tell the users that "adobe was working on a compatible version" BS as is all of Apple's BS.
    Sniper Games Online

    ReplyDelete
  65. stevejobsisanasshole.com

    ReplyDelete
  66. When I saw you had a post about this topic, i got really excited to read it. Miss your more frequent blogging.

    ReplyDelete
  67. I don't like Jobs and never have but,

    Flash is terribly slow & buggy. Flash makes a 3GHz quad core machine run slower than an 8MHz 16 bit CPU from 20 years ago! Flash is also closed & the clients they make for OSX and Linux are always late and buggy.

    Historically, Apple drove Adobe's success but now Adobe focuses on Windows development, sometimes leaving documented bugs in their OSX clients for years.

    Adobe is the guy that drinks too much and throws up at every party. Eventually, people stop inviting you.

    ReplyDelete
  68. Get out your Objective-C books, fellas. Or go to Android, where you can do whatever the hell you want.

    ReplyDelete
  69. Or you could just JAILBREAK your device and use it however you want ... considering that you OWN the device after you purchase it, and since the rules are getting increasingly draconian ... just jailbreak your iPhone and use the apps that you want. There are already thousands of apps in CYDIA and ROCK that were not officially accepted in the APPSTORE. I think it's great, because it will force the average consumer to be more technical in order to be able to JB their iphone. Apple may not realize it, but this behavior will GUARANTEE that more people move towards the jailbreak. I think it's a GREAT move for the underground movement, but really it's a shot in the foot for Apple. www.modmyi.com, www.tysiphonehelp.com. It's not hard.

    ReplyDelete
  70. Lots of whining developers again. You crybabies have a choice: Android. Get a life.

    ReplyDelete
  71. This is not new in the Apple way to do business. But what is amazing are the results, it seems to me like apple shoots his own foot.

    Not long time ago, when the personal computers were booming and the Mac was young and the PC+MS-DOS/Windows were just a joke, one of the factors that differentiated the PC+MS-DOS/Windows from the Mac was it's the diversity of software, developers, solutions, and games that you could find in the market.

    This gave Microsoft the advantage over Apple and it will happen again.

    Microsoft and Linux/Unix have create more jobs than Apple.

    Apple has always behave like a Niche market product, not oriented for the masses, the way the product is design in a limited sort of way, it's a great product, very innovative that in the end will be in few hands.

    This will give other companies to compete and give us better options. Please don't get me wrong, iphone, ipad, or the iwhatever are great products, but Apple business strategy has been more monopolistic mind than Microsoft or Google.

    So it's not as crazy as you think, it's just Apple Zen's.

    ReplyDelete
  72. It's commonplace in the game industry to control tools for writing apps for consoles. Lots of studios make games for Nintendo or Sony or XBOX hardware, but they can't do anything they like, they have to use approved tools.

    ReplyDelete
  73. MONOPOLY.

    That's what Apple is trying to run and is very close to doing so. Someone needs to STOP them.

    ReplyDelete
  74. I agree with everything Hank said, with a few exceptions: what do you have against Milli Vanilli and Oompa Loompas?

    ReplyDelete
  75. F Apple, F Steve Jobs and F all you Apple retards who think you are better then the rest of us.

    ReplyDelete
  76. Why don't you try to complain to your
    congressman (only if you voted in an election)
    and FTC. Go consult a lawyer.
    You have no clue about Monopoly, Sherman Act or
    anything else for the matter.

    Apple doesn't not owe you a living.
    It is their store. It is like asking Walmart
    to carry you favorite Japanese porn.

    If an employer saw your post. you would not
    be getting a job for the sheer lack of knowledge.

    Go to Google and be saved by their freedom and ads. Let see how you like that.

    ReplyDelete
  77. This is from the same company who gave us a proprietary format for music downloads. No one should be surprised by this. Apple is the real monopoly, and they have been playing the victim and all the moron fanboys have been swallowing it. When are you gonna wake up and graduate college? Apple's been screwing you for years. If you think I'm wrong take the battery out of your iPhone/iPad/iPod in under an hour.

    ReplyDelete
  78. I thought the "free market" system is what's supposed to fix this. Shitty apps sink to the bottom if you have a good system of categorization like user ratings and download counts.... Look at the amount of shit on facebook, yet the best games still get played a lot....

    This is all about money... plain and simple.

    ReplyDelete
  79. This may or may not have an adverse effect but apples legendary loyal fan base use adobe. They pissing on the hands that fed them. We'll see how well that works out. This flash developer/ 18 year apple user will concentrate on android and buy a PC next time.

    ReplyDelete
  80. To the guy who said Flash is closed:

    Flash was Macromedia's (closed) baby until Adobe purchased them in 2005, and in 2008 the specifications were released and Adobe began removing the restrictions that prevented other players from implementing their own players. This fits in with Adobe's prior history, having released PostScript in 1984 and the Portable Document Format in 1993 without any license restrictions.

    ReplyDelete
  81. Much more likely this plan will drive away quality developers (who don't like BS) rather than establish a "high standard" as has been proposed.

    ReplyDelete
  82. Apple is not trying to kill flash. They just want the consumers buying media from them. They don't want you to get it for free from sites like Hulu.

    ReplyDelete
  83. Well said!!!!!! It is incredulous to see a very creative company squelch the very creativity that has inspired so many great apps for the iPhone. I loved Adobe's very sane response to a company that appears to becoming the bully on the playground.

    ReplyDelete
  84. All this does is prevent native code not compiled with Apple's tools - that's it. It doesn't prevent you from using a third party generator in order to spew out Objective C based on some other language, but that code must be compiled using Apple's development tools. If Adobe creates a tool that spits out an XCode project there is NO effective way for Apple to prevent you from compiling it.

    What Apple is trying to do here is to enforce their ability to openly examine and manipulate the running code processes of your application from within their OS, and they need to do that in order to elegantly handle multitasking the way they want to. If you write a web application in JS and that application is running inside someone else's implementation of a native wrapper, executing calls to native code functions through some proprietary format that you invented, they can't do that. While I agree that this is a pain, I don't see this being the terrific slap in the face many people take it to be.

    ReplyDelete
  85. If you need to "originally" write your code in Swahili, while listening to Milli Vanilli, while reclining in a patch of mud, and then you need fifty oompa loompas to translate the Swahili into C, that is none of Steve Jobs fucking business.

    -->You brought tears to my eyes...Finally someone telling it like it is! Keep your nose where it belongs Steve Jobs!

    ReplyDelete
  86. I ditched the iphone as soon as the nexus one was available in canada. I was able to download the SDK and have a working app that I could install on the nexus in about 2 hours. (/After about 2 weeks with the nexus, I popped back on the iphone to check something out... it felt so fisher price, like "my first smartphone"/) Go go android!

    ReplyDelete
  87. Me use Objective-C, Me Write App for iPhone, Me cool. Me no use fancy interweb! Me like stone aged native app, me like Syncing data, me no like internet!

    so easy, even a cave man can screw it up.

    ReplyDelete
  88. Go develop for Palm or Android! I have and love it! Palm especially is great. I used to be an apple fan boy, but apple is getting to closed...

    ReplyDelete
  89. IIRC the FSF has been warning developers about the potential for this kind of thing for years - basically from the moment it became apparent that Apple were positioning themselves as software gatekeepers for the iPhone.

    How is this kind of thing any surprise to anyone?

    Ironically, and I'd never thought I'd be saying this, but Microsoft Windows is a much more open, much more attractive platform than iPhone / iPad now.

    ReplyDelete
  90. $ man strip

    http://unixhelp.ed.ac.uk/CGI/man-cgi?strip

    ReplyDelete
  91. My biggest concern is that this will stunt the growth of Windows-based development suites such as DragonFireSDK

    ReplyDelete
  92. "This is akin to telling people what kind of desk people sit at when they write software for the iPhone. Or perhaps what kind of music they listen to. Or what kind of clothes they should be wearing."

    This reductio ad absurdum is absolutely retarded. Apple simply doesn't want people to treat Cocoa touch+Objective C in the manner that GWT treats JavaScript. There's probably little monitoring on Apple's end to prevent anyone from actually doing this.

    ReplyDelete
  93. Typical American... Swahili is the only African language he knows about... pathetic.

    ReplyDelete
  94. Generally, I think this is not so good, but think about platforms that require software to be loaded via a cartridge. Those are wholly and utterly closed systems. And they are subject to rules not much different than this. You pay the mother ship to be allowed to develop… and worse, they are very selective about who can even *become* a developer, much less the hoops they must jump through to actually develop.

    ReplyDelete
  95. Apples not used to to having very many people want to write software for they computers. They want to exercise the same type of control they exercise with their hardware. This is why business on a large scale will never adopt them, but maybe that doesn't matter.

    ReplyDelete
  96. well i guess thats why Billy left Stevie for microsoft... very good choice :D

    ReplyDelete
  97. Reminds me of the early 90s when Borland dominated the compiler market and Microsoft disallowed Borland-compiled programs from linking to Microsoft's UI libraries, forcing all Borland-compiled programs to use a non-standard UI, killing Borland's marketshare.

    ReplyDelete
  98. It's really simple. Don't develop for a closed and immoral and unethical platform. It doesn't want you developing software for it, so don't.

    If people wouldn't compromise on their freedoms and subject themselves to this kind of tyranny we wouldn't be here today whining about an IP owner restricting their own platform.

    Choose freedom as a feature!

    ReplyDelete
  99. Jailbreaking your iphone/ipad is illegal in the USA. You violate the license and the DMCA (which is criminal).

    Jailbreaking is not an option. Freedom from the platform is.

    ReplyDelete
  100. As a console developer, I can say that this is not like consoles at all. There's nothing stopping Adobe from writing a Flash compiler for a console, as long as the final application can pass their approval process. In fact, many AAA games have their user interfaces built in Scaleform, which is Flash based!

    The biggest impact this will have is maintaining a comparatively high cost in developing iPhone apps. A game designer/artist with very little scripting experience can develop a groundbreaking game in Flash. This is not possible with the current development tools.

    ReplyDelete
  101. 90% of programmers were hostage to Microsoft for 20 years. .Net and all that crap. Everyone happy as a clam to be certified by the monopolists. Meanwhile intellectual and musical property lost all value. Apple comes up with a store structure that returns value, a qualIty platform and a humane interface. And moves to protect that. And that's insane?

    ReplyDelete
  102. Ironic considering how much open source code is in Apple software.

    ReplyDelete
  103. What you fail to take into account is that Flash-generated mobile apps break under 4.0. Although this seems draconic, it is not arbitrary. Flash-generated applications are teh suck. They are slow and memory hogs, and now they are incompatible with the multitasking APIs in 4.0. Let's not even get into the fact that Adobe used private APIs in their iPhone packager.

    So, to say it's none of Apple's business is just wrong. If there were 5,000 Flash-generated iPhone apps on the App Store instead of 5, who do you think would get the blame when 4.0 comes out and those 5,000 apps all broke? Users aren't going to know which apps were created using Flash CS5. To users that would reflect on Apple and the iPhone, and that's what Steve doesn't want. Believe me, it's not about you, or Adobe.

    This is perfectly consistent with Steve Jobs. If he could control everything, he would. If you think this is out of character for him, you don't know him very well.

    ReplyDelete
  104. Ha! You made my day with this line:

    "If you need to 'originally' write your code in Swahili, while listening to Milli Vanilli, while reclining in a patch of mud, and then you need fifty oompa loompas to translate the Swahili into C, that is none of Steve Jobs fucking business."

    ReplyDelete
  105. Steve is not insane. This is simply a case of greed.. A guy/corporation that have more money than they can ever spend.

    ReplyDelete
  106. Now imagine if Intel tried the same ... or Microsoft for the Windows platform ...

    ReplyDelete
  107. Ever since Adobe took over Macromedia, it has gone to crap. No skin off my back :)

    ReplyDelete
  108. This rule also technically fucks with anyone using a Java to Javascript development framework such as GWT!!!

    ReplyDelete
  109. I think Microsoft self Dream in Fact

    ReplyDelete
  110. There are some valid possible reasons regarding multitasking and power management for not creating insulated, monolithic "black box" environments on mobile devices. I left my Blackberry because most apps destroyed battery life, locked up the phone and generally turned it to unreliable crap. Microsoft is abandoning multitasking altogether for Windows Phone Series 7 because Windows mobile 6 has become such an unreliable mess. Given that is it really safe to assume Apple's defensiveness of the reliability of an iPhone is madness?

    ReplyDelete
  111. Given Adobe's reputation on the Apple platforms, this was something that should have been done a long time ago. Every product that Adobe touches turns into a bloated, Swiss cheese mush with security holes larger than an iPhone.

    ReplyDelete
  112. I actually welcome this censorship.This is my phone we're talking about here.
    I want some sort of police looking out for performance, consistency, and security. I have sensitive information stored on this device and Flash is not always secure. Besides, the last thing I want is the same crap that has always slowed down my Macs to slow down my phone, too. Adobe has had *plenty* of time to work with Apple and they have been lazy over the last decade. Flash has come a long way, yes but it's still obtrusive and slow. If you want Flas, go with Droid...and get a cassette tape deck for your phone too.

    ReplyDelete
  113. what if the code is obfuscated?

    ReplyDelete
  114. "Apple is trying to kill Adobe's Flash" - only so much as in you or I might want to kill that annoying fly buzzing around our heads.

    The thought that Adobe are in Apple's league tickles me no end. Get over yourselves. And like Steve Jobs says - stop being lazy.

    -BBoy

    ReplyDelete
  115. Its such a great day today. This comment has nothing to do with this article, infact I havent even read the first 10 sentences.

    Its a great day, so dam awsome.

    ReplyDelete
  116. This thing between Apple and Adobe sounds personal to me and an incredibly short sighted business move. I used to like Apple but now there going like Microsoft, all CIA, nasty and greedy.

    ReplyDelete
  117. So lets see, if you are an iPhone dev and you complain about the rules, just remember, you wouldn't be making any money out of iPhone if Apple hadn't developed the product .... so stop bitching.
    And if you aren't an iPhone dev, and you complain about the rules, its kinda irrelevant .... so stop bitching.

    ReplyDelete
  118. If this declaration came from Microsoft it would cause a public outcry that you could measure with a seismograph. Apple fanboys make me laugh. They speak with both their mouths and their butts at the same time and cannot tell from which orifice the words come from.

    ReplyDelete
  119. Didn't Microsoft get slapped with an anti-trust suit for retaining private APIs that gave their own products an advantage? Aren't there now clear grounds for an anti-trust suit against Apple? They might have to defend themselves by declaring that Android-based phones are credible competition.

    ReplyDelete
  120. "If you need to "originally" write your code in Swahili, while listening to Milli Vanilli, while reclining in a patch of mud, and then you need fifty oompa loompas to translate the Swahili into C..."

    HOW DID YOU KNOW I DO THAT?!?!

    ReplyDelete
  121. "If Adobe stops supporting the mac platform by not releasing its future production tools for mac, Apple will be fucked big time"

    This assumes Apple will stay in the general computer business. They have no reason to. That's not where the money is.

    ReplyDelete
  122. What does this really mean?

    Apple is starting to go down the drain because competition is catching up (Android, WinMo7 - the kind of players you can't fight a patent war with).

    So prohibit people from using cross-platform development tools, so other platforms don't have the same cool apps (since Apple has a lead of 150K apps....)


    This is panic tactics in its early stages. MSFT in the 90s, Sony (walkman with weird connectors) in the 80s....

    Apple should focus on staying way better (offensive) in stead of being restrictive (defensive). It's always fun to see a company pushing itself in the underdog position over a 5 year timeframe (as in, starting this week).

    ReplyDelete
  123. >>>> What you fail to take into account is that Flash-generated mobile apps break under 4.0. [...] they are incompatible with the multitasking APIs in 4.0. <<<<

    I've seen this before, but I'm wondering if someone can provide an authoritative technical source for this. Daniel Eran Dilger does not count.

    ReplyDelete
  124. For those who defend Apple's actions, stop sucking up to Jobs' balls! This is no different from say Microsoft's anti-competitive measures back in the day. Let us call a spade a spade.

    If Apple cant manage its App Store, there should be legal alternatives to Apple's own AppStore. You cant lock users to a controlled App Store and also control what enters the store and *how* it enters.

    It is time the FCC or some monopoly investigating agency take a real hard look at Apple's business practices.

    ReplyDelete
  125. The point that I find incredibly sad is how little this will matter, except to Adobe and the Flash CS5 developers. They spend time, money, and talent developing a feature that's been killed out of the box.

    Yet consumers love the IPhone, and they don't know nor care what language their favorite apps might be written in. And developers want their apps in the hands of those people too much to take an idealistic stance against Apple.

    This is just typical "Apple doing what's good for Apple" behavior. Their behavior is despicable but not surprising.

    ReplyDelete
  126. What this should mean is that Adobe delays CS5 because of this ... which it then uses this as an excuse to delay CS5 for the Mac *indefinitely* (i.e. until captain arrogance realizes isolationism is a recipe for failure).

    See how many Mac users are left when Photoshop/etc. are forced to use Windows (at a cost of what, 5-6% of the marketshare). It's not like Mac can claim unfair business practices; the lawyers would have a tit-for-tat field day.

    ReplyDelete
  127. Supid stupid stupid stupid. Adobe (which will have browser-based flash running on seven other smart phone platforms in the coming few months) can easily fight back, and have their cross-compiler generate 'original' Objective-C sources as one of the cross compilation steps. But it would be better, I think to simply provide an easy method to jailbreak all of the iphad variants, thereby enabling users to utilize 3g tethering, flash in a browser, non-iTunes/iBook content, real multi-tasking OS features, etc.

    ReplyDelete
  128. So, thinking a bit more calmly about this, I think there are two possible ways that this particular clause in the ToS can be interpreted in my opinion:

    1. Apple is disallowing tools that automatically generate native binaries for the iPhone OS. The binary is the end product.

    2. Apple is disallowing code generators that allow programmers to not have to worry about learning Objective-C but allow them to program in higher level languages like Ruby and Python which will then spit out Objective-C. The end product is the Objective C. The user of the code generator will then take the Objective-C code, optionally optimize it and then compile it using Xcode.

    Now, given these two interpretations, I have different opinions about them depending on which hat I am wearing:

    (a) As an iPhone developer, I would personally want to create the best app experience (which includes speed)
    possible for my customers and I think that the combination of Objective-C + Apple developer tools + iPhone APIs
    is the way to go to build that experience. So, I don't have *any* problems with interpretation 1. I would be a bit
    thrown if interpretation 2 were true but given that I am a priori inclined to use Objective-C anyway, I would
    not be terribly agitated.

    (b) As a Pythonista, I would be very disappointed if interpretation 2 was true. I regularly prototype
    most of my research code in Python and then port over the stuff that is too slow to C and then use
    it as a Python module (effective either via Cython or SWIG). I understand that Objective-C would be
    the right way to go but perhaps until I am proficient Objective-C programmer, I might still be
    able to convert a good idea into an app by using a Ruby or Python code generator and optimize the
    generated code.

    Note that I did not talk about whether or not Apple is justified in doing this or whether or not
    they are shooting themselves in the foot. All of that has been exhaustively discussed on the web
    already.

    ReplyDelete
  129. I don't muh care for Flash and I have it blocked so that I have a more enjoyable internet experience. If Apple is introducing multitasking and FlashCS5 screws with this new iPhone experience, then I don't want such an app on my iPhone.

    As far as Adobe's CS5 apps are concerned, well, I know loads of professionals who haven't even moved from CS3 to CS4. The UI on all these apps is too WinPC, every app is bloated and puts all sorts of files across my System and User folders.

    Apple (and SJ in particular) are not stupid -- neither is Adobe. Apple killed Premiere on the Mac with FCP, and is quite capable of doing the same to InDesign, Photoshop, Illustrator.

    Ask Adobe why it decided to kill Freehand, which was far more intuitive than Illustrator will ever be?

    As far as Flash is concerned -- it is proprietary software, its share runs at about 98%, and THIS is what the DoJ should be investigating. Apple has reported over 400 bugs in Flash for OSX to Adobe, and only some 25 (6.25%) of these have been fixed.

    If anyone needs to screw themselves, it's Adobe, not Apple.

    ReplyDelete
  130. As a producer of developer tools based on both the Pascal and C/C++ languages, I find these new restrictions most disturbing. The Pascal (aka. Delphi) compiler is a high-performance native compiler. IOW, it compiles from the source code (the text I write) down to native machine code (the bytes that the machine CPU understands). There is no interpreter or intermediate layer. In fact, most of the time the Pascal code I write will perform as well and sometimes far better than equivalent C/C++ code. By the wording in this agreement, we could not modify our compiler to generate CPU instructions for the iPad or iPhone CPUs because the code written would not be "originally" in Objective C, C or C++. Even though there is *no* intermediate step between the Pascal [Delphi] code and the CPU instructions!

    I understand the locking out of Flash, .NET (MonoTouch), Python, Lua, etc.. since they all sit atop a relatively heavy-weight runtime. However, there a many other computer languages out there that *do* compile down directly to CPU instructions and don't require a large heavy-weight runtime library.

    Oh, BTW, C/C++ *does* have a rather large RTL if you count things like the STL, Boost, and the myriad of other available libraries. So this whole "intermediate layer" is a specious argument at best since it can equally apply to using an STL map or dictionary template class.

    ReplyDelete
  131. Wow alot of Hate for Apple here, but I for one I'm sticking with them, Apple been's better to me than Adobe has.

    Any Mac user know that watching simple flash videos on youtube takes 120% of a Quad core machine, why is it that Microsoft Silverlight runs @ 25% to 30%. I find it amazing that Microsoft can get silverlight to run well on a mac with the same tools that Adobe has. How about VideoLan how did they get Hardware acceleration for VLC player on the mac? good question with the same tools that Adobe has!! Adobe is lazy.

    As for section 3.3.1 I find it crazy that this is even blown out of proportion. Anything Apple does is, even when they release simple updates there simply is no need. Lazie Adobe thought they could just work around Apple's tools and Apple would let them...hahaha I mean where else does it happen when you put years of work in and another company can just try to side swipe you with their development tool and try to over run everything you've built. I mean would Adobe like this if the shoe was on the other foot?

    I don't feel one iota of pain for Adobe!! terrible customer support for one thing lead me away from Adobe. I bought several IT book pdfs and it used that stupid horrendous piece of crapware Adobe calls Digital Editions! I've never seen such incompetence before in my life.

    All their phone support was in India so I was never speaking to someone that would solve my problems immediately and then when it came to emails 2 to 3 days to respond. To make a long story short, 4 months went by and guess what it never got solved, Adobe updated Digital Editions and my books still told me, I didn't own them. Can you imagine spending $300 on books only to find out they were all glued together and you cannot read them because Adobe cannot even figure out a problem to their OWN software!! You want to talk about walled gardens? After 4 months of "troubleshooting" I called peachpit to see what could be done, I got 50% back and ordered Physical Books. Adobe & I were done.

    I used to be an Adobe FANBOI! and I built & designed flash website for 4 yrs with my best friend (until I switched careers to IT), CS1 & CS2 were alright (but still based on carbon) when it came out for the most part worked fine except bugs took forever to be updated. I scripted AS1 & AS2 and gave up on AS3 because it broke all my code from AS2. Then came cs3 and HOLY CRAP WTF?? did they even use it before releasing this software?
    Does anyone remember an adobe update breaking MAC OS X print engine?
    the only way to fix it was to install Adobe Reader 9 on top of Acrobat Professional? ohh lawdd WFT!

    or how is that InCopy CS3 which is a glorified MS Word weighs in at > 500MB and takes half an hour to install on a C2D with 2GB of ram? and this is a brand new Dell box, not even a mac, one word SAD!

    How about Adobe reader? talk about bloatware 185mb application to read 2MB pdf? (by the way preview.app default pdf reader in OS X can do everything reader can + can join multiple pdfs for FREE!! and it's only 35MB)

    Maybe these are things that apple saw and lead them running in the other direction and I for one don't blame them. My WIN7 box & my new iMac don't have 1 single piece of Adobe software on it. I no longer create content but I deal with users who have to put up with Adobe crapware on a daily basis, trust me not fun at all.

    ReplyDelete
  132. How great would it be if Adobe dropped OSX support for CS5?? That'd be a massive middle finger right back at Apple since a TON of Apple's sales come from people who want to use Adobe's suite.

    ReplyDelete
  133. Just an Evil-bussiness devition from Apple that has nothing to do with quality!

    ReplyDelete
  134. consider the lackluster but insanely overhyped iPad, these additional anti developer restrictions, no real innovation seen from apple for quite some time despite serious advances by competitors in their marketspace.. and maybe more telling, the anti-apple attitude of the majority commenting on seemingly every apple related article in the past couple weeks. have the winds shifted? interesting times ahead.

    ReplyDelete
  135. Most iphone and now ipad related marketing campaigns are showing apps developed by third-party tools. If this specific 'clause' in the new TOS is enforced then the Apple corporation is committing a criminal offence by false and misleading advertisement.

    ReplyDelete
  136. Have winds shifted? Who gives a fuck if developer winds blow north, south or under the fucking table. Developers have no say in this matter.

    There will always be developers for any given platform that has attracted any reasonable userbase. The iPhone/iPod/iPad is way beyond the point where "blog comment winds" matter the slightest bit.

    And, even so, of course you only see negative comments. Who's more likely to post an entry or comment, a man with strong opinions countering status quo, or a man agreeing with the ways things are done?

    You can't measure anything by what the average comment is saying, the only deducible measure is "how loudly is crowd X flabbing about their opinions"

    ReplyDelete
  137. Something I haven't seen mentioned is that Apple hasn't enabled garbage collection for Cocoa apps. Probably they are of the opinion that garbage collected apps tend to have a larger footprint than hand-coded collection, even though it would probably work, and developers I'm sure would like to have it.

    But if developers start using other tools like Mono-touch and C# and various garbage collected languages, they are in effect turning Apple's decisions on their head in things like this. This is the kind of thing Apple doesn't want.

    ReplyDelete
  138. To those people who think they're going to get around this provision by using some tool that spits out objective-c, sorry you're just plain wrong. Apple is perfectly capable of finding out what you used. Any language you use is going to have some kind of runtime, and in the worst case, if you strip all your binaries and so forth, Apple can still look for the binary signature of commonly used runtime code associated with various generators.

    How they are going to enforce it is another thing though. If EA plans to port some world famous game that happens to be written in something else, I can't see Apple enforcing it. Something tells me that most of those games are probably already written in C and Open-GL though.

    ReplyDelete
  139. You might disagree with the new TOS (freedom of speech and all), but to castigate Apple and Steve Jobs, and not understand the reasons for such a move - frankly says more about you than Apple/Jobs.

    Apple is running a for-profit business. The premium that Apple products demand are based, in part, on the quality and the exceptional user experience. There's nothing that says a intermediate layer has to follow the precise Apple User Interface Guidelines, and match Cocoa components one-to-one. This will depend on the quality/functionality of the intermediate layer which is not under Apple's Control. Leaving it up to a third-party to define this for your platform is about as ridiculous as some of the arguments I've read above.

    The barriers to developing for the i-"products" are very low. There's no excuse for not learning Objective-C if you want to participate in the Apple eco-system. If you don't, then let it go, and move on.

    Android might work for you. Stability and other issues will be the least of your problems, but you'll have lots of freedom.

    ReplyDelete
  140. I agree wholeheartedly with most of the comments above. Hey Apple, go fuck yourselves.

    ReplyDelete
  141. "Developers have no say in this matter."

    You're dead wrong. Developers make or break a platform. Without developers, there are no applications and without applications, even the shiniest platform is utterly worthless to its users.

    Giving away free development tools is no longer enough incentive to attract developers to a platform - because every platform on this planet nowadays has free development tools.

    Google made a smart move when they chose the most popular programming language, Java, for their Android platform.

    Microsoft made an extremely smart choice when they went beyond Sun's approach of "one language for all platform" (Java) -- Microsoft made .NET "one platform for ALL languages". That's the ultimate killer argument for .NET, because it gives developers real freedom to choose the best tools for the job.

    Now Apple tries to push developers into using a language, Objective-C, that is only of relevance in Apple Land. Nobody else except for Apple uses it.

    Furthermore, Apple is going to say that they don't want cross platform applications on their devices.

    They want to own it all: The hardware, the software, the customers and the developers.

    Steve Jobs has been around long enough to know that this approach never worked. He did it before and it almost killed Apple.

    Still, he doesn't seem to learn from his own mistakes.

    It also seems that he hasn't seen the numbers on how fast Android grows. Pushing even more developers into the camp of his competition is the stupidest thing he can do right now. But that is exactly what he is doing.

    It's the Windows vs Mac "war" all over again. And we all know how won it.

    ReplyDelete
  142. Anonymous said: "there is already a platform for building apps in a Cocoa Touch-free world" . This shows the apparently common misconception that using some "foreign" language (or "platform" even) would also mean using some other GUI toolkit. That is not the case at all for MonoTouch for instance. MonoTouch programs use the normal CocaTouch API. No other GUI toolkit emulation or whatever is involved.

    ReplyDelete
  143. Thanks, first, for a great post. Oompa-loompas? I'm rolling...

    Take a pause and think about what that "originally" really means.

    It means, that an Objective-C coder MAY NOT make a sketch, outline, or have any pseudocode either in mind or on paper before he sits down to his keyboard and starts typing; otherwise he will be using his own brain as a "third-party translator."

    Speaking of which ...
    Do the chips in the USB Bus, keyboard, and mouse also have to fall under the license, since these translate keystrokes into bits recognized by the Mac CPU before being committed in Xcode?

    ReplyDelete
  144. "I don't believe I have ever seen any company prescribe what tools you could use to compile on their hardware"

    Adobe does a similar thing with Flash, anyway.

    ReplyDelete
  145. Anonymous raved unintelligibly:

    "Adobe does a similar thing with Flash anyway."

    Yes! I've been coding Adobe Flash on my MacDobee since the advent 110 baud paper tape. What the *HELL* are you babbling about?

    ReplyDelete
  146. I sense Apple is following MS to a clash with the European Commission... just do they care?

    ReplyDelete
  147. Sorry, I'm going anonymous here, because it seems my views are always unpopular, but then, the truth hurts.

    First off, let me say, I am the farthest thing from an apple fanboy. In fact, I pretty much hate apple....I steer people away from macs all the time as they are overpriced, and the stupid shared menu system that fragments application design really isn't all that intuitive, or "easy". Like I said, feel free to disagree, but it has confused so many people...I also hate objective-C. Its pretty clear why it did not take over as the de-facto OO language. It's hideous, and does not fit with C. All that said, I support this move 100%. Why? We're talking a *MOBILE* platform here people, M O B I L E. In case you havent realized, that also means low power consumption, which is equivilant to lower processing capabilities.
    So all you java, C#, ruby, python, etc, whiners, your argument of Hardware is fast enough does not apply here! (Which is the typical argument I hear in favor of VM/Script languages vs native languages.) Further, most of you have become so abstracted from your hardware that when I tell you Java is a 64bit MSB, stack based VM, you haven't a clue what that means, nor the effect it has running on the pretty much standard desktop X86 processors (X64 helps somewhat). So its no surprise to see this "outrage". You probably don't know what the iPhone uses, or what effect a VM will have on the platform. All I hear is Java is easy, and thats all I want to work in. Further, I start mentioning the Stack, vs the Heap, and pointers, memory management, direct I/O access, structure packing, etc, and I get all sorts of dazed looks. None of those concepts are too awfully difficult, but totally abstracted by VM/Script languages, and thus, not well understood anymore. Please don't bring up JNI, for Java since you probably haven't a clue about the overhead involved there, and for graphics, you can JOGL me to death, but thats just a lightweight JNI wrapper, with aforementioned overhead. C# being able to compile native is great, but with all the runtime checks, still slower, and the managed calls to native functions is even worse.

    I understand the place these languages have, and I'm in no way advocating everything in the world must be native. Web apps are a perfect place for them. No one really cares if there is a 1 second lag time on a web transaction. Other GUI only apps, with no scentific computing, or heavy processing, great, use C#, Java, or some gui interface with Ruby and Python. When you get into heavy processing apps, games, or mobile apps, this is a huge NO! I recently decided to change jobs, many companies I decided to apply for said they were looking for good C/C++ programmers, and come to the interview and find they are looking for people to "Optimize Java for their scientific computing program". Of course right then I realized I did not want the job, and began iterating to them why it was ludicrous that they used Java in the first place (usually words like large data sets, graph theory, and huge matrices were at the core of their processing). These rapid development languages aren't a panacea for the demands of software. They have their place in alleviating the strain, but they have their limitations.
    Finally, to use the cancer analogy someone else used about the terms of the new license, this is not the cancer. The cancer is the demand for software. These non-native, rapid development, "easy" systems are a form of chemotherapy. They don't solve the problem, and in fact posion the body, but often through great pain, the tumor is destroyed, or the demands of software development are met. Its far from the final solution though.

    ReplyDelete
  148. What I really hate is that no other company takes advantage of this to make a better product. It's f--king frustrating. Just go to the same factory in Asia, buy the same components, make the same product, put your own OS, add to it what Apple's lacks and compete in the market.

    Who gives a f--k about not being a original idea... consumers win. that's all we should care as no-shareholders.

    Ipad was rumered to go out almost 2 years ago... why do other companies are giving Apple a head start (again) is beyond my reason.

    From the aestetical point of view... you compare a MBP to a HP laptop... MBP looks like a better product. You compare an Iphone to a MotoDroid, Iphone looks better. You compare a Ipad to a HP Slate... Ipad looks better. What are you retards? Does Apple own a top-secret underground alien-powered laboratory that allows them to make better products than you?

    I love technology. I hate Apple politics. Isn't out there a f--king company that can give me a better product that this?

    ReplyDelete
  149. They say payback is a b**ch, and now is Apple's time to punish Adobe for refusing to develop Adobe products for the OSX platform (1996 development). Adobe definitely made the wrong decision and Adobe hasn't exactly been a fair player ever since. You might say "life and let live," but this punishment should give Apple more bargaining power in getting Adobe to develop for Mac in the future.

    ReplyDelete
  150. Anonymous at 11:28 AM -- your views are unpopular because you don't know what you're talking about. C# on MonoTouch compiles to native AND IT IS NOT SLOWER THAN Objective-C.

    This isn't about performance, and the fact that you swallowed Steve Job's crap-dance around the issue tells me you're either a plant or a fanboy, protestations to the contrary not withstanding.

    This is about ONE THING: Vendor Lock-in. Apple has looked over their shoulders' at the numbers and they aint good for the long-term health of their product. [Can you say: MotoRazor?]

    Consequently, they're trying to lock developers into their product-line. It aint going to work. Why *does* Objective-C suck? Why *is* XCode/IB a dev IDE for the 90's? Because until very recently, there was no critical mass of developers, and hence, no devlopers developing for the developers. All Jobs is doing is guaranteeing that the App Store feeding frenzy is going to be a one-hit wonder. Yes, there will be teenie-boppers who must have their iThingy's, and like the Hannah Montana crowd, in two years you'll be wondering where they went once they could get their hands on a 'Droid.

    If XCode/IB was a productive development platform, iMEvil wouldn't need to lock people into it. The fact is that it's crap, and Jobs knows it. The most hilarious part of it all is that Apple themselves don't even know how to write a compiler to compile the code they're trying to force developers to use: it's gcc.

    ReplyDelete
  151. One more note for Anonymous (aka StealthFanboy) at 11:28. Five months ago, all I heard from the iMEvil fanboy community was how it was so very good and WONDERFUL that iMEvil didn't allow multitasking apps on iTurds. It's a - M O B I L E - device. It saves batteries. It's more robust. The 'Droid experience would be *awful* because it allowed mulitasking apps.

    Two legs bad. Four legs good.

    Now, we hear that OS 4.0 is going to have multitasking. And that's A GOOD THING, according to the pimps who were spouting the opposite line just a few months ago.

    Two legs good. Four legs bad.

    Bad coders write bad code. Good coders write good code with state-of-the-art toolchains. Period.

    ReplyDelete
  152. One simple question...Apple...Who Cares

    sometimes you have to allow tons of bad apps to find the good ones, Firefox was created out of (basically) IE disgust so if Microsoft made restrictions like this we might never have Firefox or even an IE that's (starting) to be usable again. Also seeing lots of crap apps is what it takes sometimes for the good developers (who might not even know they can be) to get off their buts and make something better.

    which leads to a second question, is this about "insuring better apps" or the fact that some of the 3rd party iPhone apps (like the tools Unity3D have out there) make the native ones look like kindergarten fodder and Steve is just pissed about it?

    I'm hoping this isn't the case and would love a fully detailed response from Steve about this...please Mr. Jobs make me believe again.

    ReplyDelete
  153. "Adobe does a similar thing with Flash, anyway."

    I don't think so. There are lots of tools that can generate swf files. You can download the file format specs here: http://www.adobe.com/devnet/swf/

    ReplyDelete
  154. Once I had a dream: Someone portected my against the "Windows-Bill". Now it turns out, he is of the same kind...

    ReplyDelete
  155. somebody has to build a compiler/abstraction using Apple's own tools. put them on a tough spot. but then again they own the damn thing so u never know

    ReplyDelete
  156. Yeah my niggah, you are so damn right yo.

    Peace

    ReplyDelete
  157. Designing developers (a.k.a. deviners) and all kinds of designers like two products and are willing to pay:
    mac hardware and adobe software.
    Why? Because they put the frikkin pixel where you want it to be. The six-layered, multi-language, 'compile this and that in this and that' iphone webkit is a mess, not visual and thus no use for deviners. Only for large compagnies with large teams. I guess Apple hates experiments and art just as much as Windows by now. So indeed: " They are pissing on the hands that fed them. "

    ReplyDelete
  158. So 25 years ago, I had a nice little business selling Apple IIs with Z80 cards, and writing custom code for small business. Then Apple said we had to buy 2 Macs and 1 Lisa for say $20,000, if we wanted to continue to develop for Apple. Of course, IBM had a competing machine....where's my
    Android SDX?

    ReplyDelete
  159. ...some person above said that if 'you cannot write in C, you're an idiot'

    ... I say, if you don't use a tool to create a consistent experience across multiple platforms , and all that in on go... then you really are an idiot

    ReplyDelete
  160. Great post, mean while us apple lovers are fallen is love with how user friendly apply products are. It's great to see blogs like this to keep us in check. Apple is not perfect.

    ReplyDelete
  161. Closed platforms are limited and open ones are always fucked up in some way.

    We just have to try and get along.

    ReplyDelete
  162. I am normally a nice guy, that is until you take away my monopoly and de Blob, which both Will be gone based on the new agreement us developers have to agree to.

    ReplyDelete
  163. I mean come on, is it really that hard to learn Obj-C? I picked it up in a week while using an entirely new IDE. It's a neat language. Improve your skill-set, people! How is it *less* marketable to add another language to your repertoire?

    ReplyDelete
  164. then dont buy it. problem solved.

    ReplyDelete
  165. Everything doesn't suck Hank - only you do.

    Apple is the greatest company in the world and will soon put all the 3rd world companies like Adobe out of business. Maybe if Adobe actually made a product that worked, we wouldn't be having this discussion.

    It's kind of hard to argue with a $315 stock price when Adobe's is around $25. LOL.

    ReplyDelete
  166. I have been using exclusively open-source and free software, and cracking the few software needed that do not have an alternative (Adobe flash & illy).
    From now on, I'll be buying Adobe products with real money.
    Aaaand I will never get near an apple product ever again.
    Aaaand I will develop exclusively in air for cross-platform, hoping to make a killer app that won't be possibly translated for iphone.

    ReplyDelete