8 ms·
Steve Jobs’ response on Section 3.3.1
- alanthonyc 17y agoWell, at least we know he's listening and is concerned enough to respond to the criticism. Where this leads will be interesting to see, it's only been two days after all. Thanks for emailing him.
- ugh 17y agoYou know they are worried when they are using their PR backchannel. (But damn, what a great tool from a PR perspective.) (I don’t really know whether Firefox is such a good example. It’s a great program because it first challenged IE, not because it’s anything close to a native feeling app. There must be better examples out there, right?)
- mattparcher 17y agoI don't think they're "worried". They may be a generally secretive company, but Steve has been replying to a lot of emails in the last few months. I'm not surprised to hear about someone else hearing from him, although I can't recall the last time someone emailed Steve about a developer issue specifically. The only time I remember them reaching out to developers was a while back when app rejections were getting out of hand, and Phil Schiller (SVP of Worldwide Product Marketing) started making the press rounds to say that Apple was working to improve the situation (e.g., http://daringfireball.net/2009/08/phil_schiller_app_store http://daringfireball.net/2009/08/phil_schiller_app_store)
- jokull 17y agoSteve's second response tells us that he's well aware of what they're doing. The platform is going to be heavily guarded. If you make something for the iPhone or iPad you're going to have to hire fan-boys or developers who are very, very willing to bow to the Apple.
- tjogin 17y agoSo let me get this straight, you are a fanboy per definition if you're an iPhone developer? Holy fundamentalism, Batman!
- jokull 17y agoNo. Repeating myself now, a fanboy or just willing to work within Apple's tools and nothing else.
- tjogin 17y agoVery close to 100% of iPhone developers are using Apple's tools. Does that mean that all of these developers are either fanboys or willing to "bow down" to Apple, or is there even a smidgeon of a chance that they actually think it's a pretty decent platform to work with? I've heard a lot of complaints about developing for the iPhone, but none about the quality of the development environment.
- jokull 17y agoDude, I'm not complaining or saying it's a bad platform. Just that if you're going to develop on it you're going to be guided by Apple's choices and platform. As opposed to being able to hack something that in the end runs on the iPhone. That's no longer the case as you're not even allowed to choose the language or tools.
- tjogin 17y agoRight, but since everybody (close to 100%) is already using Apple's platform by choice that means there's no difference from how they were developing apps before. That doesn't suddenly make them "fanboys", or "willing to bow", it just means they like the platform.
- glenra 17y ago> I've heard a lot of complaints about developing for the iPhone, but none about the quality of the development environment. Consider this your first, then: the iPhone development environment sucks. People are using it despite the suckage or because they don't know any better. I do have an app in the app store, but the experience of making it was so painful - the cruftiness of Objective C, the gawdawful poorly-integrated mess of the Interface Builder, and various DRM issues - that I just couldn't take it anymore. I had a long list of apps I wanted to build next and features I wanted to add to the one I had, but programming for the iPhone turned out to be so unpleasant that I couldn't stand doing it. The same sense of aesthetics that makes me really like using the iPhone makes me dislike using Objective C or the iPhone dev environment in general. By way of reference, I really enjoyed programming for the Newton using the Newton Toolkit and NewtonScript, and I really enjoy using Ruby. Ruby and NTK were discoverable in ways that the iPhone toolchain is not. My chief hope, if I ever wanted to develop more iPhone or iPad apps, was that third parties would jump in and fill the gap with more mac-like development tools that I could stand to use on a regular basis. Maybe something like Corona. I could even hope that competition from third party development environments might lead Apple to improve theirs. But no, these hopes have been dashed. So I guess I'll have to continue not developing iPhone apps. Oh, and consider the posts on this blog your second-through-tenth complaints: http://www.iphonerant.com/ http://www.iphonerant.com/
- cmelbye 17y agoIt's funny, his main example of a "high quality cross platform app" was Mozilla Firefox. In my opinion, Mozilla Firefox is a prime example of why the intermediate layers (if Firefox uses one, I'm not sure) and the cross platform stuff is a bad idea. It uses its own weird certificate store instead of using the operating system's, its interface does not have a Cocoa feel in any sense of the term, etc.
- tumult 17y agoNo, if anything, Firefox is proof that you can write a bad 'native application' in C directly with the APIs provided by the OS. It's entirely possible to write something that is more native than Firefox but is based on another language, like Ruby, a Lisp, ML, etc.
- tedunangst 17y agoFirefox isn't written directly on top of the OS APIs. It's written on top of NSPR (Netscape Portable Runtime) on the bottom, with layers of more compat piled on top.
- tumult 17y agoAnd NSPR is written in C as a thin layer over the OS APIs. Just because it's C doesn't magically imbue whatever uses it with super-awesome-native qualities.
- celticjames 17y agoIt's more accurate to say that Firefox 3.6 is written on top of the Mozilla 1.9.1 platform, which includes technologies such as NSPR or XPCOM for some low level system interaction. I don't think anything at the UI rendering level uses those technologies.
- aerique 17y agoFirefox may not have a Cocoa feel but he prefers it over Safari anyway since it serves him better. So apparently native look 'n feel isn't all that for some people in their choice of applications. I feel the same way about Safari on my iPhone. I quickly ditched that for a better browser.
- karzeem 17y agoIt seems like every few months, John Gruber hits another clout milestone. Now Steve Jobs's own statements are a self-described tl;dr of Gruber's posts? Not too shabby. Anyway, the puzzling thing here is that as Greg says, most iPhone OS apps are written in one of the whitelisted languages already. Couple that with what I think is the likely fact that Apple is being honest about its motives (namely that it doesn't want its roadmap to have to consider third-party toolkits in any way), and it's confusing. Why would they go to the trouble of pissing everyone off to bring about a result that had largely brought itself about? Two answers. One, I think Apple feared that more third-party toolkits are on the way, and that they'll become more popular. Two (and I think this is a huge part of it), Apple seems to have simply underestimated how mad this would make developers. I wouldn't be surprised if the company went back on 3.3.1, or at least moderated it. Apple's only willing to be a jerk when it and the public agree about the level of jerkitude at hand. If Apple gets more ire than it was expecting, there's precedent for it backing down.
- reitzensteinm 17y agoI would be surprised if they did go back on 3.3.1. They're hurting themselves with the backlash, yes, but they're hurting other mobile platforms far more, further securing their position as the #1 mobile platform to develop for. That said, I'd be surprised if Apple spends too much effort policing the rule. The fact that it exists in the first place will probably be enough FUD to prevent third party toolkits from taking off at all. They'll probably do some kind of automated signature testing for Flash, Unity etc and leave it at that. The upside of that is you'd probably be able to sneak a Clojure or whatever app in and nobody would probably care too much.
- fab13n 17y ago> They're hurting themselves (...) but they're hurting other mobile platforms far more. That's true today because they're the main platform. This might change if, say, Android becomes much more widespread than iPhoneOS. When this happens, they might concede on things like 3.3.1. Then again, Apple is quite comfortable with having minority share but huge profit margins in a market: I'd guess that 90% of laptops sold over $1000 are Apple, and that their margin is something like 5 times Dell's...
- vito 17y agoI would not consider Firefox to be a "top-notch" Mac app. Every time I used it it felt slow, awkward, and clunky. I'd even find myself using non-native keyboard shortcuts (despite the native ones being available; e.g. F5 vs. Cmd+R) simply because it took me out of the "Mac native" world. No matter how close its emulation came there was always something to throw me off, mostly little GUI idiosyncrasies.
- csomar 17y agoIt's not good on Windows either. It still better than IE though, but way behind Google Chrome. Chrome is fast and when I browse, I want to quickly scan pages and run JavaScript. FireFox exists in my desk only because it has FireBug and a couple of other web dev. tools.
- DrJokepu 17y agoActually, the web development tools and the JavaScript debugger in recent Chrome betas are starting to get really good, almost as good as FireBug and even better in some respects. You should definitely give it a try.
- csomar 17y agoActually, I only use FireBug for debugging JavaScript. For CSS, there is nothing like Stylizer. Just give it a try and you'll never use another tool.
- rimantas 17y agoFirefox was my default browser on Windows since v. 0.6 when it wasn't a Firefox yet but Phoenix. It was still my default when I switched to Mac, but with the release of Safari 3 Firefox was relegated to development/tools role. I'd say the only area it beats Safari is extensions. Alas, Chrome also has those now. When Web Inspector matches Firebug, my usage of FF will be for testing only :(
- igrekel 17y ago
- deleted 17y ago[deleted]
- tumult 17y agoJobs' second response is the most interesting. 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. So it seems, at least from his comment and the context it was in, the intention of the clause is to remove layers that are other people's products. There are two sides to the "hinders progress" claim. One is that, with an intermediary layer, new features added by Apple cannot be used by anyone relying on an intermediary layer to build iPhone apps until the maintainers of the intermediary layer add support for it. From what few comments we've gotten out of Apple, it seems they are trying to avoid a situation in which there is a large ecosystem of developers who are unable to directly exploit Apple's newest innovations on the platform, and instead work with least-common-denominator that their layer provides. I think this is a totally reasonable thing to want. The other side to this is that there is probably not a good technical way to make people obey. Innovation directly on top of a platform can involve abstraction into layers. For example, most of the best games all involve multiple layers of abstraction, in the form of a managed runtime for the game, some sort of scripting engine (or template/meta-language for specifying behavior), dynamic compiler (for shaders, AI and other tasks), etc. The first thing a good programmer does when faced with a complex and uncertain problem is to build a grammar to express their ideas in on top of the foundation you're given. In C, this usually involves writing sets of routines that form a second (usually ad-hoc) 'language' that can be composed together to form complex ideas without having to hand-code everything over and over. I see tons of bad and dumb Objective-C iPhone, iPad and Mac apps. It's completely possible to write first-class stuff in something other than Objective-C or C. ML variants, such as OCaml, SML and now even Haskell are speed demons in comparison to Objective-C. (The thing that makes Objective-C 'fast' is that when you need it to be fast, you just write the routines only in C, without message dispatching. Want to know how much fun it is to write GUI glue in C? Not very.) I hope this means Apple is not going to start rejecting apps that are polished, fast, and innovative simply because they are built or expressed with tools other than C. I realize a lot of Flash->Objective-C compiled stuff would be crap. A lot of Objective-C stuff is crap, too. But some guy with his own hand-rolled Scheme runtime with message passing mapped onto the UIKit classes implemented with closures? If you reject that, you're going to piss off the very best developers, and dig yourself into the kind of hole that no technology company in history has been able to maintain mindshare once inside. Addendum: if it's true that Apple's primary intention of removing layers is to keep their APIs and ecosystem nimble, then I would expect them to not reject games made with intermediary software, such as Unity3D. Games usually play outside of the main OS framework kits and are not as beholden to new UI features as normal application kit programs.
- ghshephard 17y agoSo, I can understand why developers dislike and hackers despise the new 3.3.1 rules. What programmer, in their right mind, wants to have the language they develop in dictated to them? But, for just a moment, I'm hoping that some of you can appreciate how miserable an experience Apple users have had with the couple decades of various levels of cross-platform development that Microsoft has done. At times, those applications have been _so_ bad as to be an advertisement for windows. I'm an Apple fanboy, and own three generations of Apple MBPs, three iPhones, and, of course, an iPad - but to this day, at work, I still keep a 2003 class Windows XP system with Microsoft Excel on it to get work done - The painful experience that is Office 2008, (and don't get me started on "NeoOffice") single handedly make me appreciate the fact that Apple is dictating that people write dedicated, high quality applications, directly for the iPhoneOS, rather than trying to do some crufty translation to that platform. When I read Jobs's response, I could only imagine that he was having bad flashbacks to some of the x-platform disasters of years past. I appreciate and respect that developers don't want to be told how to develop, but if the end result is that the few development shops out there capable of putting out a AAA title like Microsoft Excel, have to pony up a few more developer resources and put out a world class app directly for the iPhone OS, rather than just creating some half-baked x-platform experience, I'm in favor of 3.3.1.
- Silhouette 17y ago> I appreciate and respect that developers don't want to be told how to develop, but if the end result is that the few development shops out there capable of putting out a AAA title like Microsoft Excel, have to pony up a few more developer resources and put out a world class app directly for the iPhone OS, rather than just creating some half-baked x-platform experience, I'm in favor of 3.3.1. Well, OK, but the other possibility is that the executives at the few development shops out there capable of putting out a AAA title take one look at Apple's terms, observe that their entire investment could be arbitrarily yanked by another commercial organisation without compensation, kill the iPhone/iPad development before it starts, and target more open platforms that don't come with the same absurd levels of risk instead. In the long run, the developers will always win, because someone will always make a platform where good developers can write good software, and then people will buy that platform to get that software. On the other hand, no-one cares about the platform, even if it's Apple, once the initial "Oh, shiny!" moment wears off and you actually have to get stuff done.
- lispm 17y agoWhen Steve Jobs got a demo of the graphical user interface and object-oriented software at Xerox PARC, he saw a computer that could be interactively programmed. In Smalltalk. When Steve Jobs started with NeXT in the mid 80s he got a demo of a novel program that can be used to interactively design general user interfaces - the first program of its kind. It was written in Lisp by Jean-Marie Hullot. It was called SOS Interface, marketed also as Action! by the company Expertelligence. Steve Jobs hired him and Jean-Marie created the Interface Builder - which became one of the most important tool on NeXT OS. Then for Mac OS X and now for iPhone OS. This innovation is now hindered by Apple. The innovative software may not be written in Lisp anymore, but it is not necessarily Objective-C either. With the Mac everybody got a copy of HyperCard - everybody could write and design programs in a simple way - using the built-in HyperTalk. Xerox had such a software years before - called NoteCards and written in InterLisp-D. With the iPad, which is much more capable than the Mac where SOS Interface and HyperCard were developed, everybody is degraded to be a consumer. The goal is no longer to be a maker, a creator, a programmer. You can't even use a shell to connect to your own iPad. There is huge domain of visual programming and end user programming to be explored on touch screen devices. Maybe Apple is working on that and hiding this (like Jobs claimed that 'nobody reads anymore' and some time later Apple now sells iBooks) - from what we see now Apple hinders innovation and innovators in these areas. I want a 'DynaBook' and not a media player. Steve Jobs did not really understand what he saw at Xerox PARC when he got the demos of the Smalltalk system. He got the idea of the graphical user interface. But what he overlooked was the concept of object-oriented programming. He later with NeXT understood that. But what he never really got was the importance of interactive programming, end-user programming - the role of the user being able to program his computer in a straight-forward way. The cultural importance of being able to write, understand and change software.
- rimantas 17y agoWith the Mac everybody got a copy of HyperCard Here we go again. I got a free copy of Xcode, IB and Dashcode with every release of OS X I had. I can code in C, C++, Objective-C (with a choice of compilers gcc or clang), PHP, Perl, Python, Ruby (including RoR), Java right out of the box. SQLite is also there and maybe some stuff I don't even know I have. Existence of iPad (and iPhone) does not hinder innovation — it fosters it. Three years ago there was no iPhone, no iPhone OS, no App Store. Now we have a new platform with not far from 200 000 (just think about it) applications written for it. iPad gives an opportunity truly explore what's possible on multitouch device with dedicated UI. I am a web developer, but I do not complain that I cannot easily write my code in the browser itself. Nor do I want to. Just think about it: if there were no iPad you could not code for it even in Obj-C.
- metachor 17y agoRegardless of the content of Jobs' response, and regardless of the merits or flaws of Section 3.3.1 for Apple, developers and consumers: It is interesting to see that Jobs is aware of the dissatisfaction with this clause. The man isn't stupid, and maybe he will pay attention as more developers look for other platforms with more open developer licenses. I've always seen Jobs as being highly principled and opinionated about the technology he helps create, but not particularly greedy (it is perhaps fortuitous that his principles have contributed to Apple's financial success). I get the impression that Section 3.3.1 was changed as-is because Jobs honestly believes that restricting use of cross-platform toolkits and compatibility layers will help keep the iPhone platform and AppStore true to his vision of what those platforms "should be" (whether or not this is actually the case). I also don't think Jobs is explicitly trying to lock developers into the Objective-C/Cocoa development platform (though this might be a welcome side-effect of this decision from Apple's POV). Philosophically I don't agree with Section 3.3.1. However I can see, on the one hand, how it fits in with what I understand of Jobs' character and motivations about his technology. And on the other hand I can see how it makes good business sense for Apple in the short-term. In the long-term it may not work out as well if it induces a developer-exodus. But since Jobs is paying attention, we'll see what happens when that time comes.
- wallflower 17y agoFrom what I've seen of the CS5 packaging for iPhone, there are no native UI controls. Adobe claims to have a project to port Flex to iPhone, and I can't assume that it will use native UI controls. Since the iPhone is all about the rich user experience, perhaps by limiting access to the AppStore for prior-life Flash 2D games, Apple is protecting the dilution of the quality of the games. As for the other build an iPhone app application frameworks, the quality of the finished product varies from lackluster to average. At the worst, the finished app looks like one of the RSS reader apps that Apple is now trying to filter out of its AppStore. At the best, it's something like Location Scout. I believe by limiting access to third-party application builders, Apple is going to continue to increase the quality of iPhone apps. Titanium, Adobe et al will never generate anything like Tweetie 2. And, I believe Apple wants more Tweetie 2-caliber applications. To increase the S/N ratio. I believe Apple wants less crap and cookie cutter applications, even though some of the top 25 Free and Paid lists may from time to time have those types of 'Fart' type apps. Apple is a premium brand. Even for developers. There are barriers to developer entry. It is kind of a privilege to write iPhone apps as you need $99/yr and an Intel Mac. The Cocoa/UIKit framework and CoreData persistence are tools that Apple engineers have invested centuries of programmer years in developing. There aren't many private APIs in Apple land; almost all of the standard iPhone apps could be recreated by third-party developers. And now with OS 4.0, I believe only a small fraction could not be recreated. As another example, Titanium et al. are not using CoreData - CoreData is designed to make managing and persisting an object graph easier. Which is what you need for non-cookie cutter applications. I have yet to find one application built on RhoMobile, Titanium, Ascena etc that leverages CoreData. And, I wouldn't be surprised if they start rejecting apps for quality (as in what does this app provide that is of value). "He downloaded Titanium on a Saturday morning, and by Sunday night he had a functional prototype of his Location Scout app..." http://www.appcelerator.com/partners/case-studies/locationscout/ http://www.appcelerator.com/partners/case-studies/locationsc... http://labs.adobe.com/wiki/index.php/Applications_for_iPhone:Developer_FAQ http://labs.adobe.com/wiki/index.php/Applications_for_iPhone...
- rimantas 17y agoFrom what I've seen of the CS5 packaging for iPhone, there are no native UI controls. Adobe claims to have a project to port Flex to iPhone, and I can't assume that it will use native UI controls. Adobe did not even bother with their own apps, just visit http://adobegripes.tumblr.com/ http://adobegripes.tumblr.com/ A couple of telling examples: http://adobegripes.tumblr.com/post/296745150/photoshop-why-is-the-file-info-panel-made-in http://adobegripes.tumblr.com/post/296745150/photoshop-why-i... http://adobegripes.tumblr.com/post/236090781/the-many-sliders-of-photoshop-cs4 http://adobegripes.tumblr.com/post/236090781/the-many-slider...
- endtime 17y agoThe quality argument is bunk, in a very obvious way. Apple reviews each individual app anyway before it can enter the App Store. In other words, given a review of an individual app, the original platform and the app's quality are d-separated (in the Bayes Net sense).
- fab13n 17y agoAgreed, Apple doesn't need any reasons to kill an app. Conversely, they have the ability to "save" an app that doesn't respect TOS. Yet the TOS are useful, as a good set of guidelines: TOS compliance is very strongly correlated with chances of having your app accepted.
- godDLL 17y agoI think it's their way of getting the word out.
- rimantas 17y agoYou can look at it this way: Apple will have less apps to review :)
- jonknee 17y agoSimply because it's against the agreement doesn't mean people won't attempt to submit offending applications (especially considering we don't yet know what the limits are). Using private APIs is against the agreement too, but that hasn't stopped a lot of developers from using them and submitting to the store. Some have even made it by the App Store reviewers.
- deleted 17y ago[deleted]
- tmsh 17y agoThis was my take/biased-C++ guess on it a couple of days ago, fwiw. http://tmsh.posterous.com/section-331 http://tmsh.posterous.com/section-331
- strlen 17y agoRead your post. Problem is, there isn't that much code you can write without allocating something on the heap. When you are allocating stuff on the heap, manually using malloc() can be very inefficient. Not to mention recent versions of the JVM can perform escape analysis and convert un-needed heap allocation to stack allocation. From my own experiences, bigger problems occur with extra large heaps (>32gb). That's where the dreaded Java GC pauses and CMS failures come in. In these cases custom memory allocators (such as memcached's) are what people turn to. I'd also wager the iPhone/iPad are not low-memory devices by any stretch of the imagination. The amount of memory is orders of magnitude higher than the original machines on which Smalltalk, Common Lisp and Java were developed. Erlang (with the BEAM VM) is meant to run extremely reliable on very limited telecommunications switch equipment. That being said, well written, profiled and optimized code in C is always going to beat code written in a JIT-compiled, garbage collected language. 3d graphics and gaming is one such place and I'd hesitate using anything other than C for these domains (at least for now).
- tmsh 17y agoGood point. I don't regret my time spent writing in Java. I think in many ways it improved on previous languages and clarified a lot of things that are pretty murky in C++ (like how objects have both a 'dynamic' and 'static' type). And it's nice to hear they're still innovating things. It's just that small things add up. Take class members. In C++, all non-pointer class members are allocated together (like a struct). In Java, each non-array member is basically a pointer. That small little thing spread across say a UI/widget hierarchy adds up and creates a lot less memory locality, etc. Doesn't quite fold as nicely into the caching layers of the von Neumann model. I totally agree with you about there being orders of magnitude more memory than the original machines that these languages were developed on. Actually, just googling 'ipad ram' (and filtering by last week -- man, I love that feature): http://bit.ly/dioAjU http://bit.ly/dioAjU It looks like there's only 256MB or so. No idea why they didn't include more. That makes no sense to me. It's almost like they're squeezing VMs on purpose. Not sure if Jobs is that much of an evil genius, but yeah. I mean when you're paying $600 for a device made in bulk, RAM is cheap. Odd.
- csomar 17y agoFor people who think that this will increase quality in the app store: No, you are completely wrong! There will be always sh!t games and apps, because sh!t developers exist either on Mac or Pc or Linux. So the solution is either to tighten the app store approval process or make a user voting system that select the best. I do believe that Flash will bring loads of crappy game to the iPhone, however the couple exciting games it will bring are worth it.
- Tycho 17y agoWhether throwing mud at cross-compiled apps is valid or not (personally I'd say its validity fades in light of the voluminous bad apps already available... although i do remember Apple already taking some measures against those), I think it's merely a footnote to a sensible business decision. Apple need to preserve their lead, build a wall of incompatibility (now that it's necessary), and avoid this 'de facto cross-platform standard' which would greatly benefit Adobe and others but greatly hinder iPhone. If the iPhone ever loses its strong position you can bet Apple will embrace Flash, Java and cross-compilers in a heartbeat.
- yankeeracer73 17y agoThis is exactly right. Until they see real damage from the decisions they're making in the form of lost revenue and non-record quarterly performances, why not take the strongest "negotiating" position possible. You can always back down later.
- towndrunk 17y agoDoes Android support flash or AIR apps? If so, are there a lot of developers using this to build applications?
- mbrubeck 17y agoThere are a few phones with Flash Lite, and plans announced for full Flash 10.1 in the browser. But as far as I know there is no AIR for Android, and no shipping phones with the full Flash runtime. There's no Android equivalent to the Adobe CS5's iPhone app compiler.
- deleted 17y ago[deleted]
- mattparcher 17y agoEveryone fears The Ignorant Boss For developers, this is the person who knows nothing about programming yet insists that you use X tool and write it in Y language. The author seems to imply that either Steve Jobs or Apple itself "knows nothing about programming". That seems wholly unfair, especially for Apple, and even for Steve. Obviously Apple employs some very talented programmers, or else we wouldn't be here talking about the iPhone. But surely Steve has a working understanding of the issue? Compared to Wozniak, he may have been the less technical of the two, but reviewing his history at Apple, Pixar, and NeXT, I think we can agree that he has a much better understanding of his products than many CEOs. Apple knows what they're doing. As usual, they are just very conservative and arrogant, which I'm personally OK with (in general) because they make great products.
- CamperBob 17y agoThe author seems to imply that either Steve Jobs or Apple itself "knows nothing about programming". That seems wholly unfair, especially for Apple, and even for Steve. It is, however, fair to say that Jobs is overlooking some very basic computer science. There is no reason why a tool like Flash can't emit Objective C, and there is no guaranteed way for an app reviewer to tell the difference.
- commieneko 17y agoJust a cursory look at what's going on with the new virtual memory system seems to indicate that writing apps that follow the rules enough to work correctly will be an interesting enough problem even _using_ Apple's tools and libraries. But this issue is mostly about control, both of developer promiscuity and usage of system resources. Blocking developers' cross-platform plans is probably just a bonus. Apple could certainly solve any technical issues if it felt it was worth the effort and in its best interests. Apple does not feel it is in its best interests... And for now, they are probably right.
- deleted 17y ago[deleted]
- jimbokun 17y agoIs there an alternative way for Apple to meet its goal of prohibiting extra layers of cross platform toolkits, without mandating the choice of programming language? Could they somehow say that programs must use native CocoaTouch widgets, while still allowing for people who want to compile from Scheme into Objective C or C?
- wallflower 17y agoIf they did this 'native UI widgets' only restriction for non-game apps, it would help. However, as other commenters have pointed out, there are a lot of crappy applications that are built with the native tab bar control. Maybe some people don't want polish, they just want a momentary diversion (hence the proliferation of silly trivia type games and gag apps). I even saw the developer of a top-50 paid iPhone app be wow'd recently by a simple iPad game. Fun is fun, no matter how it is coded.
- makecheck 17y agoApple may have other motives, but the effect of this is still positive; encouraging a higher standard of quality is a good thing for a massive platform. Remember, Microsoft didn't do this with Windows. Where did we end up? For years, an incredibly bad user interface became the norm, with shaky programming APIs to match. Most 3rd party developers simply copied whatever Microsoft was doing (out of laziness?), causing other applications and APIs to also be horrible.
- mclin 17y agoAnd, obviously, such a meta-platform would be out of Apple’s control. Consider a world where some other company’s cross-platform toolkit proved wildly popular. Then Apple releases major new features to iPhone OS, and that other company’s toolkit is slow to adopt them. At that point, it’s the other company that controls when third-party apps can make use of these features. This has happened before. It's called the web, and it's beautiful. Slow to adopt? Hells yes. But I love it because it runs everywhere.
- raganwald 17y agoIf I may: The salient difference between the web and a meta-platform like Flash is that while Adobe controls flash, nobody controls the web. If Apple wants to build hardware acceleration for CSS animations on iPhone, it does so. If Apple wants to fix a bug in Javascript, it does so. If Apple wants to close a security hole in Safari, it does so. Whereas if Adobe feels like making Flash slow as shit on OS X, it does so. If Adobe doesn't feel like fixing a bug on OS X, it doesn't fix a bug on OS X. If Adobe can't be bothered to fix a security bug on OS X, Adobe leaves a huge security hole open on OS X. The web is a "worse is better" alternative to native iPhone apps, but at least it's open and offers opportunities as well as dangers for Apple.
- wvenable 17y agoIf Apple wants to write 200,000 applications and post them to it's app store it does so... no wait.
- commieneko 17y agoThe web is many things, but it is _not_ beautiful. It is a mess. It happened by accident, evolved beyond anyone's control and is now a beast loose upon the world. Unlovely in the extreme. And it does _not_ run everywhere. With lots of work, you can make it run a lot of places; enough to be worth the effort. It is certainly useful, but not _nearly_ as useful as it could be. Ted Nelson, who created the term hypertext, famously said, "HTML is precisely what we were trying to PREVENT-- ever-breaking links, links going outward only, quotes you can't follow to their origins, no version management, no rights management." While politically I myself am very much in favor of open standards, for reasons I shouldn't have to explain _here_, I'm also vastly disappointed in the quality of most of the results, if from no other viewpoint than a human factors one. Like the talking dog, proponents seem happy that it talks (works) at all, and don't seem nearly concerned enough about what it's saying...
- cheald 17y agoUgh. That's an awfully distasteful response. "Intermediary layers" are what make modern programming productive. We don't all write in processor-specific assembler because it's not (developer-time) efficient, and because we can accomplish a given task without having to resort to such a low level. For example, it's far more efficient to write in higher-level C and compile for the platform as necessary. The entirety of the software development ecosystem is "intermediary layers". C compiled to a platform target with GCC is sure as hell an "intermediary layer". I can't help but think that what Jobs means here is "intermediary layers that aren't ours automatically produce inferior products". What an arrogant line to feed to developers. At least he's being direct (if not honest) with Apple's intent to fully lock developers into the Apple-blessed toolchain, from the initial concept to the final product. Ugh.
- jstevens85 17y ago>I can't help but think that what Jobs means here is "intermediary layers that aren't ours automatically produce inferior products". Is that not true though? In most cases, apps that use an intermediary layer will not be as polished or usable as an app developed using the native tools.
- confuzatron 17y agoWell, Steve Jobs said it so of course it's true dear.
- cheald 17y agoI don't think that's true at all. Layers of abstraction can improve the quality of a product by letting the developer focus on polish, rather than fighting a lower-level language. We see vast quantities of applications written in high-level languages on high-level frameworks that behave marvelously.
- steve19 17y agoiTunes is cross platform. Is Steve saying that iTunes is crap?
- naner 17y agoIt certainly is on Windows. Same goes for Safari on Windows.
- papachito 17y agoMicrosoft should ban it from Windows then.
- yellowbkpk 17y agoApple would probably like that. They don't have to spend money on support and can point their finger at Microsoft when customers come to complain. Also, a small fraction of complaining customers might actually purchase a Mac. Cha ching!
- blasdel 17y agoAnd they'd finally make their devices useful without being synced to a computer!
- edanm 17y ago"Also, a small fraction of complaining customers might actually purchase a Mac." While the rest can't use their IPods anymore? I don't think Apple would be too happy with that.
- yellowbkpk 17y agoThe majority of the functions that used to require a computer-to-iPhone sync can be done over the air now.
- petercooper 17y agoThe difference is that Windows users are used to using primarily shoddy, poorly designed software. Most PCs even come with some preinstalled.
- glhaynes 17y agoThis makes an interesting thought experiment: what if Adobe decides to take on Apple directly by throwing their weight behind Apple's main competitor, Android. CS5.1 is shipped as a free upgrade to CS5 and replaces the iPhone-compiler with an Android-compiler. Organizations with existing Flash content decide that they had might as well do a quick/dirty port of their apps using CS5.1. What will the results of this be? * Lots of Flash content gets released on Android. This expands Android's software market considerably, though with a cost in performance/platform-integration (both in terms of UI and in terms of taking advantage of low-level capabilities). * Many of the best/most popular and money-making Flash apps will get an iPhone OS-native port. The cost to write an iPhone app is relatively low; if you're talking about a game, the vast majority of the cost is usually in the assets. The iPhone developer tools are very good, there are lots of developers: finding an iPhone developer willing to make a native port of your game engine isn't difficult or expensive relative to the number of users you open up your investment to. Thus iPhone potentially gets the best version of many originally-Flash apps. Thus, Android continues to have more possibilities (theoretical and, in some cases, actual), but a lower overall level of quality, integration, and performance... an issue its apps are already widely accused of. And iPhone, which has a tremendous lead in number of apps, loses out on a few — again, a fairly unpopular set which would have generally not fit in on the platform as well and would have slowed Apple's ability to require adoption of new platform capabilities. It's hard to see the downside to Apple here. And it's hard to see how this does anything but make Android less attractive and iPhone more attractive for most mainstream (the overwhelming majority) users.
- wvenable 17y agoIt depends. Lets say that Adobe's compiler allows Zynga to quickly port FarmVille to Android as a native app. There are 82.4 million FarmVille users who, like crack addicts, always need their fix. They might just buy an Android phone for FarmVille and all the other games they play daily. Now Zyngna does as you said and hires someone to build an iPhone OS native version. It'll come out 6 months to a year later -- but it's there. Then what happens? FarmVille is always being updated. It's easy to update the Android version but iPhone version always requires more work. So inevitably it falls behind or stops working entirely. Is that really more attractive for mainstream users?
- abstractwater 17y agoDevelopers, like all scientists, want to have choices to tinker with stuff. Especially the smartest. As a consequence the number of smart iPhone developers will decrease and we'll have a higher number of sub-standard iPhone apps. But at least they will all have a consistent look and feel. So much for "Here's to the crazy ones." I feel more like a sheep that's being told a priori what to do.
- CamperBob 17y agoApparently nobody at Apple has the guts to tell Steve that Adobe will just modify their tool to emit Objective C code instead of ARM bytecode. Performance really will suffer when they do that, and Apple won't be able to do anything about it because they won't be able to prove that the Objective C source was generated.
- bbatsell 17y agoObjective-C, when compiled down (with the Apple toolchain, at least), remains a very expressive language. It won't be all that difficult to programmatically detect signs of an Adobe library in the binary. It's how Apple presently checks for use of private APIs (and that has led to the sorts of false positives we've seen in that detection).
- CamperBob 17y agoIt won't be all that difficult to programmatically detect signs of an Adobe library in the binary There doesn't have to be an Adobe library in the binary. To the extent Adobe would want or need to include standard library code as part of a Flash-generated iPhone app, they'd just compile it as C. Absolutely 100% of the binary code would come from Apple's compiler. There are a dozen trivial workarounds for 3.3.1, and the fact that Jobs apparently doesn't see that is unnerving. Somebody at Apple is feeding him BS.
- reitzensteinm 17y agoThey absolutely will be able to tell. When you auto generate code it is going to have a very distinct signature, not to mention common runtime code. All they have to do is get a competent programmer to compile a Flash for iPhone app, disassemble it and build a program that looks for the signature that's run over submitted apps. A few days of work at most every time Adobe releases an update to their iPhone compiler.
- CamperBob 17y agoWhen you auto generate code it is going to have a very distinct signature, not to mention common runtime code A couple thousand Russian worm authors would beg to differ. This is a classic arms-versus-armor battle. Arms will always win.
- daniel-cussen 17y agoDoes Steve Jobs know how to program, and if so, what languages does he know?
- jokull 17y agoQuoting Steve Wozniak's description of Jobs' job back when he worked for Atari: "... Steve would examine their design and make changes, like adding sounds, etc. It's like modifying a program to do different things, just barely a step under designing them yourself, and a step that all design engineers go through." http://www.woz.org/letters/general/91.html http://www.woz.org/letters/general/91.html If that gives you any sense.
- jpcx01 17y agoMore proof that Gruber is a tool.
- metamemetics 17y agoI think 3.3.1 is a smart choice from apple's perspective. They need to raise the barrier of entry into the app market and make developing apps more difficult, because there is currently an oversupply. Even if the clause turns away a ridiculous 70% of would-be app developers, I don't think apple will suffer.
- schemas 17y agoMonotouch has been out since November 2009, Adobe CS5 isn't out for the iPhone yet, and as for Titanium I don't know the exact time period but it's not been long. The only platform producing apps for a longer period of time has been Unity3D, which now advertises itself as having over 600 appstore games. So your argument about raising the barrier to entry is weak, as these tools have only just emerged in the last 6 months. Prior to that we've seen thousands of poorly written, leaking objective-C applications on the AppStore. I've seen 2 RSS readers and the official digg.com app crash straight to springboard in the last 2 weeks, all written in objective-C. Just because the language is closer to C and enforces memory management doesn't make its barrier any higher or require any greater skills - it means you'll get a tonne of apps that aren't releasing or reference counting and crash. I'm sure all this was hotly debated 10 years ago and garbage collection won.
- jstevens85 17y agoI think perhaps what the parent meant is that Apple wants to maintain the current barrier to entry. I think perhaps they're worried about the shitload of crap apps that will end up being submitted for approval once Flash CS5 is released.
- corruption 17y agoIf apple allows cross-compilation like that from titanium and adobe, then guess which platform gets the apps first? That's right - all the others! Because apple is so slow and nitpicky with their approval process, if they allow this to happen their own policies will make sure they lose out to the less moderated platforms. I think this is a good reason why apple is doing what it is. They want to maintain the app advantage as long as possible. Seems to me there is an easier way - make your approval process better!
- stretchwithme 17y agoI think companies would cooperate more with each other and with developers if patent law wasn't creating incentives to do the opposite. Cooperation would happen a lot more if cooperation were mutually beneficial instead of just benefitting the patent holder. The creation of web was really a fluke, but the sort of thing that would be happening all the time if patents weren't discouraging them.
- Xichekolas 17y agoI really don't get this argument. It seems that his point is that section 3.3.1 is going to scare developers away and ruin the platform. Ok. So let the developers go elsewhere. The only party hurt here is Apple. If they want to shoot themselves in the foot, then let them do so. It's one thing to have an intervention for a friend that is an addict, quite another to save a company from itself. As a friend put it, section 3.3.1 pisses off an extremely small subset of iPhone users... namely, the developers themselves. No one else cares. If they app ecosystem dies because of it, then people will jump to another smartphone. But until that actually happens (if ever), Apple can get away with whatever it wants, and trying to argue about it is not going to get you anywhere.
- deleted 17y ago[deleted]
- lwhi 17y agoNo matter how clever Steve's rhetoric - he's trying to restrict freedom and moderate the behaviour of developers. Steve; if you were really worried about quality, you could examine the end product and make a judgement based on the final quality of each app in question. This is a strategic business decision and you're treating developers like pawns. Potentially this move has the ability to stifle innovation.
- eapen 17y agoI look forward to Steve not allowing any software other than those developed in XCode and solely for the Mac OS to be run on my Macbook Pro. Put an end to all software piracy and buginess and one place to run all OS apps. // I was just being sarcastic but given Apple's behavior I wouldn't be surprised if this happens.