Steve Jobs defends Apple's changes to iPhone developer agreement

1356712

Comments

  • Reply 41 of 240
    Quote:
    Originally Posted by amitofu View Post


    Right. No one language can be proclaimed universally better than any other. What matters is the final product. It all ends up as machine code anyway. Apple is the one claiming that using only C-family languages will produce better apps in the app store. I think that's demonstrably false. I love Objective-C. And Apple does a great job designing Objective-C APIs. The app we're writing uses Objective-C for all interface and user interaction code. But the backend is written in Scala and compiled with VMKit. It would be slower in Objective-C, at least 10x more lines of code, take 10x longer to write and maintain, and have more bugs. The end user has a completely native experience, they have no way of even knowing that another program language was used along the way.



    Apple is unnecessarily forbidding completely native apps with this policy--that's why it's ridiculous.



    I think you are letting your anger get ahead of your reasoning. Several things you say here don't seem to be true to me and your original argument that Scala should be used in place of Obj C is just an argument for using the "best language" which is what Apple is attempting to do. You disagree over what's the best language of course, but saying that Apple is wrong for insisting on a particular language and then saying they should really be insisting on this *other* particular language makes no sense to me.



    In this particular post you say "Apple (is) claiming that using only C-family languages will produce better apps" when you know this is not what they actually said at all. I'm not saying you aren't making some good points, but you are also clearly angry, and using some not-quite-true and seemingly biased arguments.
  • Reply 42 of 240
    MarvinMarvin Posts: 15,309moderator
    Quote:
    Originally Posted by Prof. Peabody View Post


    People say this all the time (about it just being about the money), but I've yet to see anything that indicates it's true. It's just a flip comment to toss out that can't be disproven in any substantive way.



    I said it was more about the money and control not just money. Obviously if the reasoning had no basis whatsoever, it would be shot down quickly. The argument for better quality software is naturally a plausible one but like I say, it was the same reason given for the App Store design and I personally haven't seen many high quality apps in there.



    I understand the reasoning behind blocking interpreters to some extent but native code that uses other APIs is a bit crazy because that could mean all sorts of useful apps. If it blocks the Unity 3D engine, there's no benefit to that at all. Just download this game demo:



    http://unity3d.com/gallery/live-demos/avert-fate



    Where's the quality problems? Nowhere to be seen. Until XCode actually offers what IDE's like that can offer then the argument has no basis. The purpose has to be to force these devs to drop C# and move to Obj-C, which can't be used on Windows.



    Quote:
    Originally Posted by Prof. Peabody View Post


    I find the idea that Apple would jeopardise so much and take the hit in terms of good will just to enable the sales of a few more iMacs a bit ridiculous.



    It's not just Mac sales, there's also iPhone sales from having exclusive software that is difficult to port elsewhere. Same goes for Mac software tools that help developers, like 3rd party IDEs built around Apple's exclusive frameworks. If Microsoft or Adobe do this, it's vendor lock-in, if Apple do it, it's for everyone's benefit? It's still vendor lock-in, Apple just happen to be better at what they do. That could certainly be interpreted as being in everyone's best interests but it's subjective.



    Quote:
    Originally Posted by Prof. Peabody View Post


    Apple is not a profit driven company. Everything about their history, their policies, their margins and their market stance indicates that squeezing that extra dollar out of consumers is actually the last thing on the company's collective mind.



    This is the same company with $40 billion in cash reserves? This is the same company selling year-old hardware at the same price it was a year ago? The same company that doesn't know how to make a $500 computer? The same company that sells a new product (iPad) with a profit of $250 per unit i.e 100% profit margin.



    What I believe about Apple is that individual employees have a drive to improve standards and quality but that they also know they need revenue to allow them to keep doing this. To have control and the ability to direct, you need power and to have power in this world, you need wealth. To buy companies, to protect IP, to defend against lawsuits etc.



    Who knows, this might be revenge for all the sh*t they've taken from others over the years like Microsoft creating tools that lock out other platforms like DirectX and Visual Studio and I'd do the same but this move will produce a massive workload for innocent developers just trying to make a living.
  • Reply 43 of 240
    Quote:
    Originally Posted by sashuey View Post


    What would happen if Microsoft suddenly released an update that prevented iTunes from running? Think of the chaos that would ensue. Microsoft could take a big cut out of Apple's sales by doing just that. Could they get away with it? Probably not. Lawyers would be swarming everywhere.



    If iTunes stopped running because Microsoft made a change to a published API that Apple had improperly implemented, then no lawyers need apply. Apple would have to change iTunes so that they are once again implementing the API properly.



    Of course, that wouldn't prevent a lot of people from yelling "LAWSUIT", but that's just the American way, isn't it?
  • Reply 44 of 240
    tulkastulkas Posts: 3,757member
    Quote:
    Originally Posted by DerPlanck View Post


    Notice how the post you're replying to understands the issue to be a two-way street, whist you promptly ignore it and pretend anyone agreeing with Apple's point of view is shutting down the debate. You build your own imaginary gulag, and lock your own chains, and create your own sense of repression in this situation. Maybe you're confusing that with being trumped. Keep on torturing yourself with imaginary monsters if you like.



    I then have to ask if you read and understood the post I was actually replying to. I personally haven't decided where I am on this issue. I am trying to see it from both sides. The posts claims it is a two way street, with the only alternative to agreeing being to 'create their own platform'. So, uh, what did I 'promptly ignore'? The so very sincere 'it is a two way street'? That metaphor might normally imply give and take...but when qualified with the statement the Apple has the larger car, it was sort of meant to imply one way traffic...



    I suppose that might not have been obvious...with the other clue being the 'agree or leave'...does that sound like a two way street to you? I suppose it must.
  • Reply 45 of 240
    daseindasein Posts: 139member
    I have a simple question: As a developer, why would I want to use anything other than the development kit that Apple itself has developed? I don't mean this rhetorically. If the answer is simply a matter of comfort or familiarity or preference, it would seem that would be tantamount to holding back a company's own platform development and where they would want it to go. If there are specific, articulated reasons, please list them. I honestly would like to know where Apple is failing and could improve its SDK. In other words, what does a particular third party SDK offer that SDK 3.2.2 doesn't that would make a substantial difference in either the end product or time spent developing one?
  • Reply 46 of 240
    amitofuamitofu Posts: 59member
    Quote:
    Originally Posted by tawilson View Post


    How is garbage collection (checks to see if it needs to clear up any memory) going to use less processor time than manual memory management (clears up when it is told to). Only if it's badly written will the latter ever perform slower.



    This about Apple ensuring new features get adopted as fast as possible, by controlling their platform themselves.



    If they allow third-party IDEs become popular, then it'll the third party that determines when the new features are adopted (after Apple has released the new features).



    If you can't see that, you truly are an idiot.



    Cocoa scans an autorelease pool every cycle of the run loop--as in all the time. Most object references are autoreleased every time they're accessed. Apple even refers to autorelease pools as "semi-automatic garbage collection" in their documentation. Reference counting causes a lot of cache thrashing because objects are constantly being retained/released. And reference count variables are volatile and accessed with atomic instructions that force the processor to flush its execution pipelines every time they're accessed. Reference counting is slow.



    Garbage collection of a strongly typed language on the other hand doesn't constantly access objects to modify their reference counts so you get better cache performance. And when the collector runs you're essentially just doing what the autorelease pool does. Garbage collection: 1, autorelease pools: 0.



    The real speed and memory advantage for a strongly typed language is the ability to use escape analysis. This is like method inlining (which, btw, Objective-C also can't do), but you're inlining an entire object allocation. This means there's no allocation, deallocation, or reference counting costs, better cache utilization, fewer pipeline flushes, and lower memory use. Garbage collection: 2, autorelease pools: 0.



    Cocoa makes tons of costly little allocations that eat up a lot of memory because they're on the heap and use up lots of cycles because they're reference counted. Many of these allocations would be eliminated by escape analysis in a modern language. Things like NSNumbers and NSDates and NSColors and NSErrors and NSFormatters and NSInvocations and NSURLs and NSValues, and even many NSArrays and NSDictionary(ies), which are used all the time, would be compiled down to almost nothing in a modern language, but are incredibly wasteful in Objective-C.



    The iPhone is powerful enough and has enough memory to handle these heavyweight objects for user interface tasks. But if you're doing something computationally intensive, Objective-C isn't the best option. And often neither is C++. So please don't conflate the programming language issue with the platform compatibility issue. I don't support writing apps that target some compatibility layer instead of the native platform. But I strongly support the option of using other programming languages when it's appropriate.
  • Reply 47 of 240
    anonymouseanonymouse Posts: 6,857member
    Quote:
    Originally Posted by Marvin View Post


    Who knows, this might be revenge for all the sh*t they've taken from others over the years like Microsoft creating tools that lock out other platforms like DirectX and Visual Studio and I'd do the same but this move will produce a massive workload for innocent developers just trying to make a living.



    Yes, they might well end up as collateral damage, but the idea that Apple must allow their platform to be undermined for the advantage of others, is, at least to me, even more objectionable.
  • Reply 48 of 240
    Quote:
    Originally Posted by Marvin View Post


    The same company that sells a new product (iPad) with a profit of $250 per unit i.e 100% profit margin....





    Pleeeeeease.... we have been through this a gazillion times in these threads, and you should not be contributing to FUD.



    Gross margin (which is what you are referring to here) ≠ Profit margin. Apple's profit margin is ~20%, well in line with other successful companies, and much lower than companies such as Google (~30%) and MSFT (~35%).
  • Reply 49 of 240
    dacloodacloo Posts: 890member
    Stop talking out of your butt. Great unity3d games have been developed. top selling, top performing titles on the AppStore. Stuff that's virtually impossible to create with Xcode.



    Your comparision with COBOL and fortran is ridiculous.













    Quote:
    Originally Posted by sflocal View Post


    This isn't an issue of right or wrong. Apple created a hugely popular system for the masses and they are being associated as a company that may very well change the way people use computers in the next 10 years. Frankly, I think that scares a lot of developers that have spent years learning their craft in another language / system and shudder at the thought of having to learn something new. That's life.



    It's called evolution. Do you think we all should have stayed on FORTRAN and COBOL because too many people would raise a stink about having to learn a new language?



    Technology has been like this since the beginning. Adapt or get left behind.



    But the poster is right. If you want to change the world then develop your own system. That's what Android is supposed to do right?



  • Reply 50 of 240
    anonymouseanonymouse Posts: 6,857member
    Quote:
    Originally Posted by amitofu View Post


    Cocoa scans an autorelease pool every cycle of the run loop ... Reference counting is slow.



    Garbage collection of a strongly typed language on the other hand ...



    The real speed and memory advantage for a strongly typed language is the ability to use escape analysis. This is like method inlining (which, btw, Objective-C also can't do), but you're inlining an entire object allocation....



    Yet, as already pointed out, and as you are, or ought to be (since you are here giving us computer science lectures), already aware, all of these "advantages" of other languages are, just as much disadvantages in other cases.



    Yeah, we know you're pissed, but these one-sided, angry rants against Objective-C are just that.
  • Reply 51 of 240
    solipsismsolipsism Posts: 25,726member
    Quote:
    Originally Posted by anantksundaram View Post


    Pleeeeeease.... we have been through this a gazillion times in these threads, and you should not be contributing to FUD.



    Gross margin (which is what you are referring to here) ≠ Profit margin. Apple's profit margin is ~20%, well in line with other successful companies, and much lower than companies such as Google (~30%) and MSFT (~35%).



    Honestly, none of that should matter to the consumer. They have no monopoly so their profits and growth are a choice a consumers are making.



    It's silly to begrudge a company that has a desirably product, excellent marketing on the cheap and has learned to produce better quality products at less expense than their competitors for the same class item.
  • Reply 52 of 240
    Quote:

    "We've been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform," ~ Steve Jobs.



    Either Steve Jobs is completely stupid, or thinks we are.



    Is MacOS X written in machine code? Or does it use intermediate layers like Assembler code, C, or ObjectiveC (which is an intermediate layer between C and a bad wannabe Smalltalk-for-C thing).



    Cocoa is an intermediate layer between the programmer and the hardware platform.



    Carbon is an intermediate layer that often sits between Cocoa and the Platform.



    A lot of Cocoa rides on other parts of Cocoa, or OpenCL or OpenGL which are also intermediate layers.



    All of Object Oriented Programming is an intermediate layer between one platform and another. In fact, that's kind of the point of writing most software.



    The point is for any application you have a certain budget. The higher you can ride on abstractions, the more you can spend on other parts of the software to make it better: features, testing, tuning, etc. Sometimes people choose their intermediate layers poorly -- like Apple did with Mach instead of Nukernel or using a rarely used ObjectiveC instead of the more powerful, faster, and more versatile C++. Should we say the entire platform is sub-standard and that's been holding them back? Or look at the bigger picture?
  • Reply 53 of 240
    bigpicsbigpics Posts: 1,397member
    Quote:
    Originally Posted by RidleyGriff View Post


    And as we all know, iTunes on Windows sucks, doesn't it? Same with Safari.



    I'm getting tired of this particular chestnut.



    I run iTunes on 3 PC's and two Macs, and to me, the experience is hardly different at all. I know it's grown into a giant Swiss Army Knife of a program and is probably loaded with legacy code, but I've invested years in getting to know it, so not going to change 'cos there might something leaner and slicker around.



    Using iTunes for Win and discovering how cool Apple software was, in fact, was the tipping point that led me to buy my first Mac.



    Quote:

    a "hostile and despicable move."



    What's next? A video of SJ and Brimelow having coffee in public? Prolly not.....





    As for the issue at hand:



    I think there's another obvious reason for the policy change I haven't seen posted or written yet. And it neither contradicts nor denies the validity of Job's answer/Apple's new policy - and in fact lies outside of the technical issues being debated here.



    It's not news to anyone here that Apple has defined and been the vanguard of the rise of the Age of Apps for mobile platforms. Now everyone has a soap-bar shaped touch phone with an app store, and they can be made to look cool in an ad or store demo.



    So it's become a turf war. If you can develop an app in a cross-platform environment, with a few customizations, you can release your app - looking and acting 'bout the same - on Android and likely other platforms simultaneously, e.g., Palm, B.Berry. Which by giving parity to Android, et al. makes the release on the iPhone inherently less special.



    As long as iPhone is the biggest kahuna to go after for a developer, it pushes the developer to write an Apple version first. Which at least delays him recoding for other app stores, or expends his resources and time. Which will keep more of the best apps coming out - at least first - on the iPhone/Pad.



    'Course I don't have a fly-drone on the boardroom wall in Cupertino to really "know" anything like this, but hey, I'm just sayin'........ ....but, nahhh, big corporations aren't really ever that Machiavellan are they? (^-^)
  • Reply 54 of 240
    Quote:
    Originally Posted by Marvin View Post


    I said it was more about the money and control not just money. Obviously if the reasoning had no basis whatsoever, it would be shot down quickly. The argument for better quality software is naturally a plausible one but like I say, it was the same reason given for the App Store design and I personally haven't seen many high quality apps in there.



    I understand the reasoning behind blocking interpreters to some extent but native code that uses other APIs is a bit crazy because that could mean all sorts of useful apps. If it blocks the Unity 3D engine, there's no benefit to that at all. Just download this game demo:



    http://unity3d.com/gallery/live-demos/avert-fate



    Where's the quality problems? Nowhere to be seen. Until XCode actually offers what IDE's like that can offer then the argument has no basis. The purpose has to be to force these devs to drop C# and move to Obj-C, which can't be used on Windows.



    To be fair, games can hardly be considered "useful" applications; they are a diversion, and though the newly implemented game-friendly iPhone APIs and the recent porting of Steam to Macs both indicate a pleasant change in course for Apple with regard to gaming, it is still probably not a primary concern for them. That said, if the Unity team needs to adapt anything it will because of how much revenue they generate from developers creating games for the iPhone. Besides, Objective C can be used on Windows because GCC is portable, so Apple is not locking developers into just their platform.
  • Reply 55 of 240
    Quote:
    Originally Posted by solipsism View Post


    Honestly, none of that should matter to the consumer. They have no monopoly so their profits and growth are a choice a consumers are making.



    It's silly to begrudge a company that has a desirably product, excellent marketing on the cheap and has learned to produce better quality products at less expense than their competitors for the same class item.



    I wholeheartedly agree.



    (I simply wanted to clarify what was an incorrect comment from the standpoint of basic finance).
  • Reply 56 of 240
    chronsterchronster Posts: 1,894member
    If you don't like it then GIT OUT.









  • Reply 57 of 240
    g3prog3pro Posts: 669member
    Quote:
    Originally Posted by dasein View Post


    I have a simple question: As a developer, why would I want to use anything other than the development kit that Apple itself has developed? I don't mean this rhetorically. If the answer is simply a matter of comfort or familiarity or preference, it would seem that would be tantamount to holding back a company's own platform development and where they would want it to go. If there are specific, articulated reasons, please list them. I honestly would like to know where Apple is failing and could improve its SDK. In other words, what does a particular third party SDK offer that SDK 3.2.2 doesn't that would make a substantial difference in either the end product or time spent developing one?



    You can use other development tools to release the same program to several different platforms at the same time without any added work.



    It makes the developer more efficient.



    Apple does not want this efficiency because it wants to lock in the developer and the consumer to its platform.



    I already stopped developing for iPhone a while back so it doesn't affect me. But it affects dozens of other developers, and they will likewise leave the platform.
  • Reply 58 of 240
    Quote:
    Originally Posted by dasein View Post


    I have a simple question: As a developer, why would I want to use anything other than the development kit that Apple itself has developed? I don't mean this rhetorically. If the answer is simply a matter of comfort or familiarity or preference, it would seem that would be tantamount to holding back a company's own platform development and where they would want it to go. If there are specific, articulated reasons, please list them.



    It boils down to one: productivity.



    If you want to write for just iPhone, there's a productivity advantage to using higher-level languages, and that advantage multiplies logarithmically when you want to deploy to multiple devices.



    If you've ever pondered the millions of man-hours lost every year to bugs caused by the difference between "=" and "==" you know what I mean, and if you haven't there are plenty of papers describing the productivity advantages of modern high-level languages for applications programming.



    While some like to point out that Apple is the leading smart phone manufacturer, they're overlooking that other OSes run on devices from multiple manufacturers.



    Take a look at these stats:

    http://techcrunch.com/2010/04/05/com...on-the-iphone/



    In terms of subscribers per OS, Apple is #3 with about one-fourth of the market.



    Gartner says it'll be that way for Apple for a while, as Android eclipses them:

    http://www.computerworld.com/s/artic...2_says_Gartner



    Android and most other mobile OSes don't dictate what language you can use. They don't care, the more the merrier as long as it lets you deliver the goods.



    The only reason Apple has more apps today is that most of the mobile RAD tools in the pipeline aren't shipping yet. Once they do, we can expect to see an explosion of app development.



    With any of those tools you can write and maintain a single code base for 75% of the mobile market.



    It could be 100%, but Jobs is devolving into Gates so developers will have to be satisfied with bypassing the iPhone until he comes around.



    In the meantime, Jobs has given Android the biggest gift ever: thousands of developers using high-productivity RAD tools.



    Jobs' excuse that everyone at Apple suddenly forgot how to write APIs to handle threads effectively for their multitasking simply doesn't hold water. What he's after is control, pure and simple, and he's got just enough hubris to believe that his 25% market share can reverse the tide of history which increasingly favors RAD tools.
  • Reply 59 of 240
    Quote:
    Originally Posted by amitofu;


    Good point. Apple uses a compatibility layer (Cocoa) to get iTunes and Safari to run on Windows without having to rewrite them from scratch as native applications. And they do it in a different programming language than what Windows' native APIs are written in.



    Oh the Irony. And what hypocrisy!



    The real irony is that you are wrong because both are written using native windows graphics APIs and C++.
  • Reply 60 of 240
    quadra 610quadra 610 Posts: 6,757member
    Apple doesn't owe anyone a living.
Sign In or Register to comment.