16 ms·
Getting away from the frenzied rhetoric, my opinion is that what Apple really wants to prevent is people releasing multi-platform compilers. So taking Flash as
by raganwald 17y ago
Getting away from the frenzied rhetoric, my opinion is that what Apple really wants to prevent is people releasing multi-platform compilers. So taking Flash as just one example, if I can build one app and the compiler can make me an iPhone executable, an Android executable, and so forth, Apple don't want that.
In my experience so far with such "cross platform compatibility layers," they always produce results that water down each platform's individual strengths and differentiations. And of course, instead of the developer being locked into the phone platform, they are locked into the compatibility layer's platform.
Adobe's Flash compiler is a classic maneuver to "commoditize your complements," as Joel put it so well. Apple don't want to be commoditized, especially if it means having apps that don't take advantage of the iPhone's strengths.
Adobe want to lock developers into Flash and commoditize everything else as Flash-delivery devices. Apple want to commoditize applications and lock developers into their APIs.
http://www.joelonsoftware.com/articles/StrategyLetterV.html http://www.joelonsoftware.com/articles/StrategyLetterV.html
- bpod 17y agoI agree with Apple, 80% of apps are crap and are deleted after a few weeks, thats not a good app and not how apple what to be seen as having a junk yard of crap apps ? Would you delete Photoshop after a couple of weeks ? No, why ? because it's a good bit of kit, and Apple want to keep that inline with there image. I am not a developer but have been investigating starting a development company, I have seen 1,000 of bedroom chancers on the fourms.... Yeah man lets make an app and cash in, lets make an app called twitbook, it's a cross between a twit and a book we will get 1,000 downloads a day and we will spend it all the profit on weed, yeah man good idea ! Ok lets start... we can't code but we can use 3rd party apps that even my mum can use and we are done. Yeah I am exaggerating slightly but thats how the market is going, it means that the app store is constantly full of shite with shite apps and will get worse if these 3rd parties are allowed to run riot to let any Tom Dicks and Harrys to release apps, which will happen if it's allowed to. Apple does not want to encourage that and nore do I, I want quality not quantity apps. This is a new phenomenon for the world so Apple are bound to make mistakes on how they operate it and they have realised this is a bad thing that is happening to THEIR brand. I have seen so many good serious developers with good apps, they complain they are not getting seen on the app store and above is the main factor for that, piles of it. These guys can code with their eyes closed and yes the 3rd parties apps maybe an inconvenience but I am sure they can work round it and actually get the coverage and sales they deserve. In the short it's not good but the long of it is that it will be good for the people who know what they are doing hence brining us apps that don't sit on our phones for a few days and get ditched. Why are people screaming about this ? It's all about money on both sides, not future development of the up and coming kids, end off. If I rent a room in your nice house and start pissing on the carpet would you want to boot me out ? As far as i remember it was always Apple being victomised by other OS and software companies, how the tables have turned and good on em.
- brianshaler 17y agoOkay, so cross platform compatibility layers water down each platform's individual strengths and differentiations. What happens when a small team of developer needs to re-write their application to reach more devices? While the platform with the most users will probably get the most polish, the rest will probably flounder at v0.9. I guess Apple could be counting on being the platform getting the attention. Let's see how that works out for them in the next 5 years!
- bkudria 17y agoThis is a great point.
- icey 17y agoThis change doesn't just cover Flash though; it also hits all of the Mono cross-compilers (and Scheme, and everything else that happens to cross-compile). I can't see any way that this turns out as remotely positive for developers.
- Zak 17y agoApple has consistently demonstrated that they don't care about what developers want. They seem to believe, and have so far been shown to be correct that if they can get the consumers, developers will follow. The only way I can see this changing is if a killer app that consumers want becomes available on another platform and not iPhone OS due to Apple's restrictions.
- cschep 17y agoI think you're forgetting that it's also really fun to make an app that has the best "look and feel". I can make things that make people say "Wow." A lot easier on the iPhone than on Android. Developers will make apps where it is fun to make apps. I haven't had any horror stories with the app store, so it's still just more fun to make iPhone software than anything else.
- smncameron 17y agoThe developers who make apps 'for fun' aren't producing the blockbusters that make the appstore so important to the iPhone.
- Zev 17y agoNo, but they do make up a fair number of apps that populate the top 100 lists for various categories (even if they're not runaway hits on the most profitable list).
- m234 17y agoYou really think developing software in 25 year old technologies (Objective-C, Cocoa) is fun???
- mortenjorck 17y agoIf the cross-platform experience is subpar, Apple should just let these apps fail in the market.
- jrockway 17y agoThe average person's tolerance for faulty software is lower than it should be. I guess Apple wants to raise expectations, so that people are locked into the iPhone. ("OMG, that android app has ITS OWN KEYBOARD!!!111".) Of course, this is why I don't use C, C++, or Objective-C. I'm always a little surprised when someone writes code in one of those languages that actually runs.
- aaronbrethorst 17y agoYeah, the Linux kernel, Mozilla, Chrome, Safari, Emacs, vi, Mac OS X, iPhone OS, Windows 7, Google search, Apache, Nginx, the very first web browser, et cetera are utter crap.
- jrockway 17y agoAs an Emacs developer, I can tell you with 100% confidence that the C part of Emacs is utter crap. The good news is that there isn't very much of it. The rest of the software is buggier than it should be. My web browser has remotely-exploitable security holes. Random drivers in Linux randomly regress as the version number increases. OS X and Windows 7 crash for no reason, and don't support enough hardware. The only program I use regularly that doesn't crash on me is Xmonad. And guess which language that isn't written in.
- wisty 17y agoXmonad claims to be about 1000 lines of Haskell. I'd say that's equivalent to about 10-100k of C. It doesn't crash because it's simple, not because it's written in a good language. Well you'd probably have 100X as many bugs in a C program (it takes 10X as many LOC, and I bet bugs scale with N^2), so Haskell is a bit better, but language isn't as important as scope. Big programs have more bugs.
- ghshephard 17y agoAdobe's response, from a game-theoretic perspective, is to adhere to 3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited). by simply generating Objective-C as their Object Code. Developers then compile this for their target platform (iPhone) and stay within the bounds of 3.3.1. I see Apple is trying to put a kibosh on this with the "originally written" clause, but, that will be a stretch to enforce.
- wvenable 17y agoYes, but then the app still wouldn't be "originally written" in Objective-C.
- newobj 17y agoAnd how could this ever be proven?
- rortian 17y agoThis is addressed in the original post. As of now, projects that were made other the the approved ones would have obvious file layouts characteristics. Theoretically, you could make it hard to tell the difference, but in practice its pretty easy to tell machine generated from human written code.
- MutantSushi 17y agoSure, 'multiplatform compiling/targeting' is one thing. But banning non-approved languages is silly. Even apple is funding projects like RubyCocoa and bringing Python compatability to the Cocoa API. If somebody wants to write an app using CocoaTouch but finds Ruby, Python, Lua, or Mono to be a better fit for the project or their own capabilities than Obj-C, why stop them from doing so? If the apps still have to interface with Cocoa somehow, how are such app's any more/less native than one written in Obj-C? Such a policy does nothing to stop somebody from writing a cross-platform targetting framework that uses Obj-C. The language is not the real issue.
- tshawkins 17y agoThink OS/4, think opening up multitasking to 3rd party apps, perhaps thats why they are being so anal about how apps should be written, if they are planning to make changes to the low-level libraries to support 3rd party app multitasking then they are going to want to make sure that 3rd party apps are linked against them.
- MutantSushi 17y agowhat does language have to do with that? you can include your own C libraries within your project if you want, the language is no different. if people use other language interfaces to Cocoa, like RubyCocoa or MonoTouch, what is the problem, they are still using apple's libraries. the language has nothing to do with any of that.
- boucher 17y agoThis argument makes no sense. These third party tools are using only the publicly documented Apple APIs. They are simple doing so through an intermediary layer. It has nothing to do with using private or low level libraries.
- confuzatron 17y agoYeah, but there's no actual multitasking in iPhone OS 4. Just some 'background' system services. Apps cant run in the background. And the clause doesn't say "you need to link to our libraries", it says "you need to author your app in [languages] etc".
- edster 17y agoIt's not just with the consoles. I used to develop Lotus Notes applications. The problem with Notes was that the barrier to entry for developers was too low such that it hurt the platform, and it made it hard to distinguish good developers and good apps from the chaff. When a bunch of unqualified developers fill the world with junk it gives the entire platform a reputation as being junky. I now develop iPhone applications, and I personally agree with Apple in this respect. If you want to develop iPhone applications, spend some time and become proficient with the tools. And, @raganwald is correct that it's still lock-in, it's just a matter of where the lock is.
- fauigerzigerk 17y agoYour lock-in argument is wrong. Of course there are always dependencies. But it's important to be able to choose which dependencies are the right ones for your application. Mandating a particular API isn't just lock-in. It's lock-in lock-in. You're signing away the right to choose the right tool for the job.
- mkramlich 17y agoApple should filter by quality, not by what language/technology was used to make the app. It makes more sense to reject Fart apps -- or least the 100th Fart app. It does not make sense to reject apps written in Python or Clojure, for example. To put it another way: they are disproportionately turning away the better quality devs, not the lower quality ones.
- lolindian 17y agoDemocracy is similar. I used to have a nice life as a french king, until the stupid peasants took over. Now everything is fucked. I feel so locked in.
- Andrey 17y agoEnjoy being Apple serfs, developers! The guys over at Titanium [1] can give you genuflecting lessons if you need. Apple has definitely crossed-over to the dark side. After 26 years of being a fanboy, they've finally exceeded what I can stomach. [1] http://developer.appcelerator.com/blog/2010/04/apple-4-0-and-titanium.html http://developer.appcelerator.com/blog/2010/04/apple-4-0-and... [2] http://ipadmakesmesad.blogspot.com http://ipadmakesmesad.blogspot.com
- roc 17y agoYou're beholden to whatever platform you develop on. That's simply the way it always is. The web isn't appropriate for the apps I want to write yet, so I can't develop on a perfectly open platform and expect to find customers. And I can't reasonably create my own platform and create the software I want to create. So I have to pick a platform that can reasonably support the apps I want to write and that gives me a reasonable chance to make a living at it. I'm going to be somebody's sharecropper. When I have more resources, I can consider supporting multiple platforms to mitigate my risk. But until then, pointing out that we develop at the pleasure of the platform holder is redundant and the differences between more- and less-restrictive platforms is splitting hairs.
- bliss 17y agoThis is seriously putting me off. I was not thinking of a third party approach, but it limits me when I want to use my OWN scripting language when developing apps. Does this stretch to build scripts??
- dedward 17y agoTechnically yes, but it's not like they would ever know. It's pretty obviously an out clause so they can kick Adobe in the pants, and possibly prevent app-mills from popping up all over, completely saturating their approval process for the app store. I doubt they'll go after an individual developer who isn't obviously using some mass-market code generator to pump out apps.
- juasko 17y agoThere was a sentece from Apple, Apple aproved tools could be used. Don't excpect Flas to be one of them and I totally hate Flash. When they produce less buggy Flas that doesn't have memoryleaks enough to kill a new computer with 4GB ram Core2Duo only running outlook and Google maps in IE7. Then maybe I'm also intressted to run Flash in my phone. ATM flash is blocked in my Nokia.
- lispm 17y agoSay, one wants to develop a touch user interface for a visual programming language for music composition and the core engine happens to be written in Common Lisp (say, something like PWGL or Open Music) - why can't I have that in Lisp? It is compiled, native and would use the Cocoa libs. There are not only consumers which want to download ebooks with ads. There could be an area of innovative and experimental use where Universities want to develop novel applications - applications that might be written in Smalltalk, Lisp, Haskell - or any other language that can compile and is not Objective C. In many cases the innovation lies in the core logic and the innovative use of a touch screen. Why should I develop my core logic in a way that it is tied to the iPhone or iPad (assuming that the iPad will get the same developer agreement) and where I have to use a relatively low-level language like Objective C. It is one thing what you assume Apple's target (Adobe, cross platform frameworks, ...) is and another thing who else is also affected by these clauses the developers have to agree to.
- ftlbaby 17y agoThe university example is a good one. I wonder if they will be covered by wireless app distribution, which will bypass the app store. From Apple's iPhone Enterprise Developer page... "Deploy proprietary, in-house applications to authorized users in your company, the iPhone Developer Enterprise Program is available to companies with 500 or more employees and a Dun & Bradstreet number.
- bruceboughton 17y agoBecause companies with fewer than 500 employees have no need for custom apps...
- phifty 17y agoThey dont want anyone peeing in their pool. They purge the pornspam apps, they purge the rss-reader apps. I personally think this is a good thing, because developing a native iPhone app in C/C++/Objective-C means you will more likely have a vested interest in the iPhone/Mac platform other than to make a quick buck with a flatuence app. At the very least, you're a more dedicated developer.
- confuzatron 17y ago"At the very least, you're a more dedicated developer" What a rose-tinted way to describe lock-in.
- daft 17y agothis is all about controlling the quality of applications, its is good, congrats to apple, they want to controll the quality of their applis by forcing people to code in a low level structure, they are right, high level abstractions when badly coded are a mess.
- narrowdesign 17y agoyou can't seriously argue that it's "quality" that is driving this decision. I've downloaded far too many apps that turned out to be absolute garbage to believe that it's a factor for which apps they approve. it's about controlling the apps and the devs, not the quality.
- juasko 17y agoThis is the reason why Apple still have better quality freeware,shareware applications on Mac than Windows have commersial application. It was more difficult to program for Mac than for DOS. Hell I can make a decent DOS application. But in my younger years doing the same on Mac was way more troublesum. Ok I havn't programmed Cocoa just done som experiments, made de calculator and currency converter Apple has as tutorial. And yes it simplifies a lot. But simple programming comes with a cost in quality. Takin the step from DOS programming to program for Apples System 1-MacOS9 was huge. Eventloops, memoryheaps etc etc. Those who know programming had little problems. Those who made hello word apps had huge problems, aka me. The greater challange there is to programming the greater programs will de creators do.
- gromitski 17y agoI'm sorry but that is a terrible excuse for what they've done. As a flash developer hit hard by the recession, having another (strong) string in my bow was essential for survival. Like others in my industry, I don't have time to completely re-train every time a new product comes onto the market. Being able to produce for a different device using my current skills is a blessing. Apple should be thoroughly ashamed with themselves and I for one will be approaching the Monopolies Commission regarding this.
- gabrielroth 17y agoI sympathize with your economic plight. But the fact that you're having a hard time making a living using Flash doesn't give Apple the obligation to provide you with a development platform. Since the iPhone has less than 20 percent of the smartphone market, it seems unlikely that the Monopolies Commission will be interested.
- barrkel 17y agoApple isn't obliged to actively deprive people of development platforms either.
- bobwaycott 17y agoWhile it sucks when times are tough, if you want to develop for a new platform to make money, then make and take tge time necessary to learn the platform and its tools. Your complaint here is disingenuous. When you learned to be a Flash developer, did you complain that Macromedia should be ashamed cos they didn't build their tool in HTML & CSS? If you want to develop for the iPhone, then develop for the iPhone.
- stevenN 17y agoI thought of doing the same thing with my Pl/M experience. Decided to learn new tool sets/languages instead:-) You will find your self in serious trouble moving forward if you tie yourself to only knowing a single company's toolset and tying your future to the well being of that companies tool set. Especially Adobe's; a company as fickle as Apple.
- sergeo 17y agoAgree, from my experience any good software for a platform should take as much advantage of the platform as possible. And then work around platform limitations. Any cross-platform apps look non-native, missing subtle platform conventions, and ultimately feeling awkward on such a distinctive platform as iPhone OS. This seems to be a consistent line of Apple's, ultimately aiming to project the "quality" image of the platform, and not diluting the valued brand. This is the same line as John Gruber suggested pondering the purge of overly explicit apps. It did not come down to purging crapware developed natively with Xcode yet, but with thousands of apps in each category, the purgatory moment in one form or the other (e.g. if not purging outright, but subjectively separating into premium and "others" stores) probably is not too far ahead.
- statictype 17y agoWhat you're saying makes sense, but at the end of the day - it doesn't matter what Apple wants to do, what matters is what they have actually done. If they wanted to eliminate cross-platform apps, they could have just as easily put something which specifically mentions that in their terms of service. It wouldn't be any more ridiculous than the conditions they have put in place right now. These new terms of service effectively bar tools like Monotouch - a development environment that exclusively targets the iPhone OS.
- access_denied 17y agoBut why "Apple want to commoditize applications and lock developers into their APIs."? Because of "especially if it means having apps that don't take advantage of the iPhone's strengths." Apple wants unique killer-apps for iPhone OS, not the Mac version of that Windows program.
- lg 17y agoNah, that's bullshit. Applications written in a higher-level language and compiled down to Obj-C could be a lot better than apps written in straight Obj-C, for the same reason that applications written in Obj-C are better than applications written in straight ARM assembly.
- JPtw 17y agoPerformance is an easy excuse. A terrible programmer can do worse than cross compiler. If Apple do care about the so-called performance, they should judge apps by their quaility, not the process of how they are created.
- colinwiseman 17y agoI can understand Apple wanting to lock down their property to make sure what comes on it is quality and secure. Look at MS, anyone can develop almost anything on it, and what we have is a massive bug and virus trap. BUT... Microsoft was given into trouble by the competition commission over the tight reign it had on Windows. Now what are we saying, Apple should be allowed to get away with near enough the same things Microsoft got fined for? just because they are Apple? If Apple just lets this happen, and lets iPhone apps be developed on other OSs/SDKs/whatevers, then if a developer wants to produce a piss poor version of something then let them. Apple can then say yeah or nay when the App goes into the Store. They are still going make money, their phones are still going to be bought in droves. Open the doors Apple, you might let something good in.
- juasko 17y agowell i cannot agree with you on the apple/mircosoft issue. Microsoft has an near monopoly or defacto monopoly if we call it that. What MS decides on does effect the whole market. What Apple decides affect the Apple users only. But me as an Apple user Is affected of all dumb anti standard decisions MS have done. My web experience is crippled and I have to deal with name extensions and even more so now in OSX 10.6. Under MacOS9 i only had to know if a file was going to be used on a windows machine and then add the proper extension in the name. But it's uggly and wrong.
- lwhi 17y agoIt's not just about quality. As with everything Apple does - there are company-centric motives, which have been neatly balanced against a set of consumer-centric motives. Apple is run by smart people, who realise they have a dedicated following. By making the 'we don't want to diminish the quality of the App pool' argument clear, they allow their ardent followers to do battle for them. The corollary of this is that Apple ensure that their platform receives the developer investment it requires, enabling the company to become a permanent fixture in the mobile market. If Flash developers didn't have to make a new investment of time and money to learn their platform - what would stop this pool of developers from leaving Apple's side tomorrow? They want full control over what is allowed _into_ their market, and they want a dedicated team of developers who won't walk away. If Flash was allowed, neither of these requirements would be assured.
- bettynormal 17y agoMonoTouch isn't really a cross platform toolkit. It is not providing a replacement API for Apple's APIs just allowing them to be called from C# and allowing you to use extra code you have in C# that Apple by definition doesn't have. the Modern C# language provides many advantages over the Objective C used on the iPhone which does even have garbage collection. If they intend to succeed in the Enterprise they should of encouraged MonoTouch not squashed it.
- bettynormal 17y ago20 years ago I used to rave about how Objective C was 10 years ahead of anything else out there. Unfortunately it's now 10 years behind C#....
- sunilshah_99 17y agoApple is really trying hard to enclose and seal a closed garden environment, that much more lucrative for them. HOWEVER, 98% of video seen is currently viewed via flash. If Adobe have a cross compiler that works and apps can be translated WELL onto the apple platform, why should apple care? if they dont work, the user will decide!! Is this Microsoft all over again? And is it non-competitive? A legal suit looms over apple's head. One I suspect they will lose.
- bettynormal 17y agoHow can anyone now develop a business and future with Apple when it could all be taken away at a moments notice.
- gregbulmash 17y agoImagine if Microsoft had come out with an App Store for Windows 7 and decreed that the only way to run apps on Windows 7 was to get them from the Microsoft App Atore. If you wanted to create apps for Windows 7, you'd have to use Visual Studio and a Microsoft compiler, you'd have to pay an annual fee to be a an accepted Microsoft App Store developer, and if you wanted to charge for your application, you'd have to pay Microsoft a 30% commission on the sale price. People would lose their damn minds. If you're the dominant OS in the smartphone market or in the desktop market, where's the difference? Apple has to unlock the iPhone and let people get their apps from wherever they want. If people want the security of knowing an app is Apple approved to work and play nice with others on their systems, they can go through the App Store. It's not their rules, but the fact that they remove choice from the market for both consumers and developers by FORCING themselves into the consumer/developer relationship as a restrictive middleman.
- stevenN 17y agoBut Apple is NOT the dominate OS. 1) Symbian 2) RIM 3) Apple 4) MS 5) Android Android and MS might have swapped in the last month or so. They are close. As for choice, consumes don't seem to mind. You have tons of "choice" on Symbian, Android and WM for app selection. The AppStore is beating them all. Developers will go where the money is. It is a job. You play by the rules or move on. Simple really.
- slashdotdot 17y agoI presume all these other programming environments allow one to target the iPhone/Pad/Pod using a PC. Is Apple, with all their (new) clauses, trying to say in a round-about way "If yer wanna target our iDevices, buy a Mac"..? After all, Mac sales is where they make the most money.