Steve Jobs defends Apple's changes to iPhone developer agreement

1246712

Comments

  • Reply 61 of 240
    Quote:
    Originally Posted by omnivector View Post


    The real irony is that you are wrong because both are written using native windows graphics APIs and C++.



    ...through an intermediary layer provided by the QT architecture.



    In principle it's not all that different from having your compiled Flash code talk to the Flash engine, written in C++, which uses the iPhone's native APIs.
  • Reply 62 of 240
    addaboxaddabox Posts: 12,665member
    Quote:
    Originally Posted by g3pro View Post


    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.



    Which simply means more opportunities for devs who choose to focus on the most profitable platform-- not that there's any shortfall of same.



    I'm mystified by the idea that if "dozens" of developers decide not to grace the iPhone with their cross-platform apps that that would be of any concern to iPhone users.
  • Reply 63 of 240
    g3prog3pro Posts: 669member
    Quote:
    Originally Posted by Quadra 610 View Post


    Apple doesn't owe anyone a living.



    I think Apple's motto of "do no evil" is flushed down the toilet at this point.
  • Reply 64 of 240
    tulkastulkas Posts: 3,757member
    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?



    And sometimes, forced adaptation will rub people the wrong way. Fortran and COBOL became obsolete and were replaced. I don't recall them being prohibited.



    As far as like it or leave it, accept it or create your own platform as the only options...some people see other options. I honestly have more of a problem with that as an actual argument than with most any decision Apple has made.
  • Reply 65 of 240
    amitofuamitofu Posts: 59member
    Quote:
    Originally Posted by Prof. Peabody View Post


    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.



    Okay. Just to clarify. I like Objective-C. I think Apple should continue to use Objective-C, and I welcome Apple insisting that developer's directly use their APIs without any intermediate layers. I agree that such indirection almost always results in shitty apps. What I disagree with is Apple insisting that all code linked with an application must be written in some form of C.



    To be concrete about it, and since I obviously can't hide the fact that this decision personally and emotionally affects me, I'll elaborate on why. I've spent five months developing an app exclusively for the iPhone/iPad. We're writing an app for doing symbolic algebra. You can drag and drop expressions in equations to rearrange them in an algebraically correct way. It's great for mathematicians, scientists, and engineers who want to explore complicated equations, and its great for students because it helps them form a visceral intuition of math. The interface is all done with UIKit and is totally tied to the iPhone OS. We couldn't do the things we're doing with any other user interface toolkit.



    We originally wrote the back end in C++. Believe it or not, C++ was too slow. We model abstract algebra in a general way, allowing you to use our intuitive interface to manipulate many different algebras in different dimensions, with different levels of precision, and with different structural constraints. The way C++ expands templates led to a huge amount of bloat because of all the permutations. And the way templates are type checked made development slow and buggy and hard to change. C++ can be fast or generic, but not both. We switched to Scala because the type system and syntax is so expressive we could model things very closely to how we express them mathematically. And with some thoughtful design, the compiler is able to heavily optimize certain critical paths (think three dimensional real vector space with floating point precision, standard dot product and euclidean norm), while our code base stays small and generic. It's so fast in fact that we are able to use the same abstract algebra code to do real-time 3D rendering of graphs. We couldn't do this in C++, we had to write redundant specialized versions of a lot of code, and that meant a lot of adapters in order to visualize other abstract spaces.



    So this is why I am so personally frustrated. It's not because I don't know C++ and Objective-C--to the contrary. It's not because I don't want to use Apple's APIs with Apple's programming language--also to the contrary. It's because the best tool for the job that will result in the best app and the best experience isn't C++ or Objective-C. I feel unfairly targeted by Apple. I feel like I've been shot by friendly fire. And I hope Apple refines their developer agreement. I'm still an Apple fanboy, and I don't want to go to another platform, there isn't another platform to go to. I just want to make a really good app. Isn't that also what Apple wants?



    I suppose I should get back to work instead of commenting here on AI. But it's hard when your future is in jeopardy and everyone thinks that the only people being hurt are lazy Flash developers.
  • Reply 66 of 240
    Quote:
    Originally Posted by Sue Denim View Post


    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?



    Yes, there are layers inherently involved in programming. Apple just wants to make sure you stick to the ones they have the most control over.



    For example, say you wanted to program an application in Java, but it needed to be a native application (as it does for the iPhone). You could use GCJ to make the native binary, which in turn uses libgcj to include the components inherently necessary for a Java application to work (core class libs, garbage collection, etc). Let's say company X develops a tool that lets all those Java-limited developers in the world cash in on the iPhone platform using GCJ and some compatibility layer that allows for some interaction with the public iPhone APIs without the developer having to know any C/C++/ObjC. So now you have a required library not developed nor maintained by Apple using frameworks not developer nor maintained by Apple interfacing with whatever subset of the APIs this tool makes available (and by the way, that interface to Apple's APIs is not developed nor maintained by Apple).



    When things don't work well, the average user is going to complain about the phone and not necessarily the app. If you don't believe that you either haven't had a nontechnical relative or you're just burying your head in the sand. Apple wants to protect their turf as much as possible: if a developer has to follow these rules, then odds are they are going to deliver an application that will be tailored more specifically to the features of the iPhone itself, without the pitfall of third-party tools that may not represent a full set of features or complete compatibility; if a user thinks they are getting the best possible experience from their phone and its applications, they are going to invest more heavily in the platform.



    Stating that Apple is stupid in this case is premature. It could backfire and it could yield a windfall in their favor. All I know is that lately every time us "geniuses" tell Apple where they goofed, we're the ones that end up with egg on our faces. I was convinced the iPad was going to be a flop, right up until I used one...
  • Reply 67 of 240
    Quote:
    Originally Posted by g3pro View Post


    I think Apple's motto of "do no evil" is flushed down the toilet at this point.



    You've got some companies confused.
  • Reply 68 of 240
    amitofuamitofu Posts: 59member
    Quote:
    Originally Posted by omnivector View Post


    The real irony is that you are wrong because both are written using native windows graphics APIs and C++.



    No. Apple ported Core Graphics and Core Foundation to use GDI+ and Windows' System APIs. The iTunes codebase still uses Cocoa, Cocoa still uses Core Graphics and Core Foundation, but CG and CF are ported to Windows' native APIs. It's the canonical definition of a cross-platform compatibility layer.



    Whether this is good or bad I can't say. I don't use Windows, and I prefer Apple's user interface style. But I also don't like non-native ports. I think people like or dislike iTunes for Windows based primarily on reasons other than the fact that it's a port.
  • Reply 69 of 240
    g3prog3pro Posts: 669member
    Quote:
    Originally Posted by anantksundaram View Post


    You've got some companies confused.



    Oh, right. But, I think with the TOS changes by Apple, their motto should be "do evil".
  • Reply 70 of 240
    soskoksoskok Posts: 107member
    You all know that there are hundreds of apps at apple app store that essentially do the same thing, most of those are ported (so written by developers in a different language) and many of them perform just BAD. Why have such a thing? I think many devs will stop developing for iPhone OS but the left overs will have compete harder for the customers = better apps.



    P.S. some times to have a choice is bad, dont forget it.



    Apple is simply the best.
  • Reply 71 of 240
    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.



    It's amazing how much whining is done over Apple. I keep thinking "why not shut the hell up, change your diaper and buy a competitor's product?" It's especially annoying to see forum twits whine about Apple stopping 'innovation' when they've never done anything of consequence. That should be an automatic 5 across the eyes, probably should cost them a few teeth.



    This entitlement mentality is weak intellectually and ultimately a cowardly dodge of personal responsibility. I think it's a way talentless people bolster their own lack of motivation and hide their deep insecurities. Apple isn't your problem folks, you need to get on the Cialis forums and complain about your issues there.
  • Reply 72 of 240
    anonymouseanonymouse Posts: 6,857member
    Quote:
    Originally Posted by Sue Denim View Post


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



    Yes, but those layers are and define the platform. It's pretty obvious that what SJ is talking about here are layers that are not and redefine the platform. Redefine it into a generic OS that doesn't support native behaviors or performance, or, worse yet, as some other platform.



    Also, there seems to be this idea that Apple should "create exceptions" for this or that development tool, "because it's really good." Yes, Flash sucks and it's OK to ban it, but not platform X, which really rocks! This argument basically translates into: Apple should adopt an entirely arbitrary and capricious standard for approving development tools. The current rule may not seem fair if it affects you, but at least it's totally straightforward and not explicitly directed at specific entities. Instead, Apple is saying, use these tools, which we've been telling you to use for years. Seems pretty fair to me.
  • Reply 73 of 240
    lkrupplkrupp Posts: 10,557member
    Quote:
    Originally Posted by Tulkas View Post


    That's right. Apple is the big boy on the block now, so that makes the right by default. While one does have the right to complain, you really shouldn't. Only if you have the resources to develop an entire platform on your own do your complaints have any merit. And in that case, you are then a competitor to Apple, so that invalidates your complaints as well. Best to just keep quiet and assume Apple cannot be wrong. Success==right.



    Well then, it sounds like the JooJoo would be the perfect platform for both you and the developer. The JooJoo was built from the ground up, has none of the evil restrictions that the evil Apple and even more evil Steven P. Jobs impose and require. There should be plenty of JooJoos available for sale. Problem solved.
  • Reply 74 of 240
    I'm not a developer or software writer, but from what I've heard, Flash can be used to introduce viruses to PCs. If true, then theoretically it could introduce viruses to the iPhone OS, thus making the user experience an unpleasant exercise like PCs have become.

    I'm all for Apple's closed garden, as long as it maintains a positive user experience. It's worth noting the only complainers are geeks and developers.
  • Reply 75 of 240
    nikon133nikon133 Posts: 2,600member
    Quote:
    Originally Posted by Tofino View Post


    well - from what i read about itunes on windows - you just proved steve's argument.



    But would Apple easily accept if they'd have to completely re-write iTunes for Windows? Or - if they think this is right way to go, why haven't they done it yet?



    Yes, there is a lot of hypocrisy, double-standards, foul play there. Isn't it possible that Apple also wants to make it harder for developers to port iPhone applications to Android and other platforms as well? Forced exclusivity?
  • Reply 76 of 240
    Quote:
    Originally Posted by sexualintellectual View Post


    Stating that Apple is stupid in this case is premature.e...



    I didn't mean to say Apple is stupid. Just that Steve's Jobs comment was either stupid or assuming we were.



    Fundamentally he's trying to push marketing crap down software engineers throats. The only way for that statement NOT to backfire, is if the market is full of stupid fanboys that buy that crap -- otherwise the truth will win out, and that will backfire all over him (hence the stupid part).



    I don't like assuming my customers are stupid, or make comments that will haunt me. And I just can't find another path on this one.



    Now Apple might win this fight. But each fight you win in this way, you create a karmic debt. Eventually this debt is going to come back to haunt you. The bigger the dick you were, and the longer you were a dick, the more people line for people to take their turn when you're down. Even Microsoft of the 80's or 90's never did anything near as blatantly anti-competitive as this, or try to defend it with as stupid of statements.



    It's like, "Steve, be a man. Just own it". If he came out and said, "we want to lock users into our proprietary platform, and if you don't like it, you can develop for Android", I'd think, "Jerk. But at least he's honest". Now all I can think is "dishonest coward" or "foolish hypocrite".
  • Reply 77 of 240
    anonymouseanonymouse Posts: 6,857member
    Quote:
    Originally Posted by nikon133 View Post


    Yes, there is a lot of hypocrisy, double-standards, foul play there. Isn't it possible that Apple also wants to make it harder for developers to port iPhone applications to Android and other platforms as well? Forced exclusivity?



    No, there is no hypocrisy or double standards or foul play, Will it be harder to port, yes, but that's not the motivation here.
  • Reply 78 of 240
    nikon133nikon133 Posts: 2,600member
    Quote:
    Originally Posted by Mark Fearing View Post


    The point is what is best for the Apple customer. Not who wants to study a comp sic semesters reading.



    I don't think that polarising developers and pushing (potentially) big chunk of them to develop for someone else is good for Apple customers.
  • Reply 79 of 240
    nikon133nikon133 Posts: 2,600member
    Quote:
    Originally Posted by anonymouse View Post


    No, there is no hypocrisy or double standards or foul play, Will it be harder to port, yes, but that's not the motivation here.



    Well if it's not, it darn looks like it is. I didn't have chance to sit with SJ and discuss that in private, though. Have you? \
  • Reply 80 of 240
    Quote:
    Originally Posted by anonymouse View Post


    Yes, but those layers are and define the platform.



    I get your point. But why is it the platform? Because that's where they say it is. This is all arbitrary. Software Engineers know better.



    Quote:
    Originally Posted by anonymouse View Post


    This argument basically translates into: Apple should adopt an entirely arbitrary and capricious standard for approving development tools.



    Too late. They just did. They said "the ones we like are the only ones you can use.



    To say "Flash Sucks" shows ignorant of software development. Flash is a tool. Do we argue "a screwdriver sucks? It does at pounding nails or cutting wood -- for driving screws, it isn't that bad. There are many Flash apps that are better than iFart, shaking babies, or jiggling booby apps that they approved. Apple can't manage the quality of the apps they choose, but they want to dictate the tools as that somehow matters more? No rational person should buy the illogic of that.



    I'd rather them not accepting crappy apps based on the quality of the app, than denying good app because they don't like the platform it was made on (but no one would know).
Sign In or Register to comment.