Apple's Mistake
paulgraham.com
paulgraham.com
It iterated through an array doing 3 SQL SELECTs against non-indexed files for each element. There used to be about 50 elements in the array; now there were more than 5000. I rewrote the whole thing in one day to do a total of 4 SELECTs and run in 12 seconds.
But it took 6 days to get through QA (while the users continued to suffer). QA's biggest complaint? I indented 4 spaces instead of the (unpublished) standard of 5 spaces.
Of all the things I have to deal with, nothing pisses me off more. Software QA is becoming more and more like TSA security at the airport: illogical, and obviously so. Last year, flagrantly unacceptable code was promoted without question while its replacement was held up on a meaningless detail.
I got the feeling from the programmer's quotes in this essay that the same thing is happening at the app store.
We programmers are a funny lot. Make us struggle for business or technical reasons and we adapt beautifully. Make us struggle for something stupid and we just get pissed off and do something else. What a pity.
If the feature was really critical and important, QA should find a way to expedite the verification, but it should never be skipped in order to ship the fix faster.
QA is important, but determining how many spaces a line of code is indented is not QA. That is a code review, which is important, but not critical. There should be automated acceptance tests, so that new releases can be shipped immediately. (It's also worth noting that stuff like indenting, naming conventions, etc. can be automatically checked at checkin time. See Perl::Critic, for example.)
If there is some feature or corner case that the users test but isn't in the acceptance test suite... well... yeah, the software is going to be unreliable. So don't do that. Write a test.
(I worked somewhere with a QA department once. They didn't like it when the programmers wrote tests, because they felt their job would be threatened. It was true, so we were asked to only write unit tests; no "integration" or "acceptance" tests. I quit a few weeks later.)
No developer should limit themselves to unit tests.
As an optional if the QA people are good then describe what else might be effected by the code (if you edited a generic component). Good QA people will run your test, work out their own variations and also check other areas.
At ThoughtWorks we work with QAs constantly. It's a great relationship. There's no such thing as "QA's bugs".
Any decision made that promotes inefficiencies to "save jobs" puts the entire company in danger.
I'm not saying you're wrong, I'm just saying there's no hard rule on this. I've had to push code many many times without any outside testing and while occasionally it's been detrimental (but fixed quick, because I didn't have to go through QA), the large majority of times has been beneficial.
A large and formal QA process can kill a product / project just a quickly as cowboy code.
No developer is good at testing their own code because deep down no developer wants to break the code they just lovingly crafted.
(In fact I just refactored this comment to fix a spelling mistake... but I published it without writing any automated tests, or running it by QA... somehow I don't think many people noticed)
I think people are responding to the suggestion that in general developers will subconsciously protect their ego by willfully ignoring flaws in their own software. That is just tremendously offensive to any real hacker, and if it were true the world of software would be a pale shadow of what it is today.
When a new bug is found (a good one, not BS indentation) then QA has a justifiable joy in finding it before it got to the customer. The developer may also be devoted to quality, but doesn't your heart sink a little when you see a new bug? Overall you both want to ship good product, but your minute-to-minute motivations are just different.
When no one is looking (the first, buggy, submission is made), they will do the minimum necessary and approve it, often quickly.
Then, when everything goes to hell, all eyes are on them. The developers submit a fix with the note "this needs to be approved ASAP to put out fires"... the QA person resents being told what to do, and suddenly feels compelled to justify his job by finding anything and everything that could possibly be considered 'wrong'. There is also the issue that things like indentation are more visibly 'wrong' than obscure bugs that only show up in production environments due to the way database replication is set up.
Now, I'm not saying all QA people are like this. I've worked with some downright awesome QA people before. But awesome QA people don't reject things for spite, and usually don't stay in QA long before moving up.
Or do you really mean "held up by code review" when you say "get through QA"?
Treating QA as a step after development is a mistake that causes endless suffering to users.
Indeed QA is not a step after development, but I'd argue that encouraging developers to become better at QA themselves is a more effective approach than having non-coders inspecting sources after the fact.
Value - stuff should work after it's been through them
Costs that I've seen - more stuff doesn't get done/fixed because of the delay time associated with QA - things don't get scheduled because of lack of QA bandwidth - additional specifications required in order to go through QA - programmers / PMs worry less about catching bugs because they feel it'll come back from QA
When is it better to QA something rather than just measure when it's broken? Everything we do goes through QA but I'm sure most of it is a net loss.
Anyone have a good way of knowing what to QA and what to simply monitor?
We had a backend process that connected out to a network and did some things. However, the network it connected to changed their protocol, so our backend process was broken - didn't do anything - completely non functional.
We created a fix, but had to wait for it to go through QA for ages. What's the worst that could happen? It doesn't do anything like the current version? It wasn't even a massive update. Maddening.
Likewise, more likely it could just not work well, be buggy and require several updates to get it right, burning out your team's (or your company's) image with the customer. Before you deployed your fix, it's whoever changed the protocol at fault. After that, it's you that can't fix it.
Again, not justifing it taking ages, just saying there's never an excuse to skip QA.
The worst case was that it maxes out the connection and burns through bandwidth. But that's something that can be monitored.
The customer would have rather had something working with the network, than something broken with the network.
In that particular circumstance, there's always an excuse to skip QA. IMHO.
No, there isn't!
Thats a good point (even though in this case it turns out not to be true).
Seems like the right answer is to back out the change.
This is the best YC quote of all time. Thx, edwin!
Now, this doesn't mean that developers won't want a developer friendly phone, or that Apple is hurting their reputation with developers. I'm certain it has been frustrating to deal with the whole process. However, if 3rd party software isn't essential for the iPhone as a platform, then developer satisfaction moves down a bit in terms of importance in Apple's eyes.
Now, it's clear that games are major for the app store. Games are also a special class of software application that benefits disproportionately from having access to the hardware at a low level. They also have properties more similar to music and movies (incidentally, things the iTunes store is good at selling). Except for the simplest games, they require a lot of up-front design work and investment. It's rare that a released game goes through a ton of rapid iterations to "get it right". Games may still have bugs after release, but in general the functionality they are going to have is there on day one. They also ship with the final sound effects, music, artwork, etc... Games are also probably very unlikely to "duplicate existing functinoality" or any of the other cases where "normal" apps hit barriers. Perhaps Apple has (intentionally or unintentionally) created an environment optimized for game approval?
I'm certainly not defending the app store process, but I just wonder if the software development community has a disproportionate view of its importance to the iPhone as a whole.
The OS bundled ones are the ones people use the most. Across the board.
If I had to guess, I'd say third party apps are just as often or more used on iPhone than on, say, Windows and Mac OS X. Simply because, on iPhone, a lot of web apps out there are used via a special-purpose iPhone app rather than the web interface.
I don't think there are any killer mobile apps yet. Maybe for some it's FourSquare or FB, but I can't think of one app I'd miss that's not built in.
If you polled a random user of, what are the chances you would find an app that they will get very pissed off at it's disappearance?
What are the chances they will actually skip platforms?
On Windows or OSX, I think the answer is high. On iphone, maybe not.
It is still a luxury for most people - "oh cool look at this app," but it still comes down to those that can afford an iPhone. I can imagine there are many family squabbles involving parents that bought their kid an iPhone that racked up an App Store bill the parents didn't originally intend.
iPhone is not a business phone overall - and therefore doesn't have "critical apps".
I really doubt this is true given the lack of any killer mobile apps. I don't personally consider any of desktop apps in the list I gave 'killer', but fairly sure they've sold lots of computers.
When I hear someone say "I wish I had an iPhone right now", it's usually because they're either (i) lost, or looking for something, and want access to Google Maps, or (ii) in the throes of gadget envy. The App Store addresses (ii), but not with any single app -- it's just the idea that there are thousands of fun toys that only iPhone users get to play with.
So there are a couple of killer features, but nothing that can't be replicated on other phones. Not necessarily as well, but that's not the point: without exclusivity, the iPhone will not get the same kind of dominance Windows has.
Part of it may be a byproduct of the way the console games distributed on ROMs or disks. That may change, for consoles nowadays have network connection and can get updates anytime. There's another part, however, that some type of games fits this "done is done" philosophy. Like novels or movies, which you don't expect them to be improved over time.
Well, I don't defend the app store process either, and I believe majority of software should be developed in the iterative process. It's just interesting that games may be a marginal area that has some peculiar properties.
Apple wants iPhone apps to "just work" They don't want a plethora of buggy, half-baked, inconsistent apps in their store, because this would diminish the brand. It would be like a typical Linux distribution where half the apps implement their own peculiar UI conventions, crash often, or just don't work at all.
So it is like developing a game. You get one release, one chance, to get it right. It needs to work. Maybe a lot of app developers don't get this. There are published standards about conventions, icons, behavior, etc. The app is expected to be FINISHED and WORKING before you submit it to the store. Don't count on deploying 27 follow up patches and updates to customers -- imagine the chaos if every iPhone app needed updates multiple times. Users (most of whom are not hackers) would, after a while, just give up and abandon the platform.
So, when an app is submitted, it is reviewed, and if it's found to be buggy, or it doesn't work, or it works in an unconventional way, then they don't want it. And they're not in a particular hurry to waste more time on you when you didn't follow the instructions the first time.
I don't know, I'm just speculating. But this seems plausible to me.
I think this is a good "oh yeah, this is why we do it" argument, but is probably more of a by-product of the review process and less of Apple's original incentive.
A lot of the technical decisions that are made are motivated by business and profit. Not to say that this is a negative thing - Apple is a corporation after all. There are plenty of things I've seen done that are dumb as hell at my employer (at a technical level) but are motivated by external reasons that seem implausible or illogical because the guy writing code is too far removed from the information and the decision.
however, speaking as a guy who has went through the process for 8+ apps so far, that's not the pain point.
It's more about repeatedly encountering dumbass reasons for rejections, and dumbass long delays to get feedback on things that should take about 1 minute, not 2-4 weeks to get feedback on. It's about getting rejected for 1 thing, and then they don't bother to finish reviewing the app and discover the other 2 things that they know they would reject it on during the next submission, so you don't find those out until 2-4 weeks later, and so on, ad nauseum. It's about rejecting for inane reasons (that they can "fix", if they wanted to, and had a brain, by running a small piece of software on, shotgun-style) like 'this config value over here doesn't match this value over there, so please make those the same', or even worse, vague mysteriously-worded rejections, or rejections that contain explicit instructions for "fixing" the issue and then you follow them, resubmit and they reject again.
Dumbasses. I keep coming back to that word over and over again when dealing with their review process/people. We're talking about a company with supposedly billions of dollars in cash in the bank and until a few months ago or so reportedly had what 50 full-time reviewers on staff? (Do the math on what it would cost to even triple that staff and you'll see it's a tiny drop in the bucket compared to the profits that keep rolling in.)
Device? Love it.
OS? Love it.
Design sense? Love it.
App Store submission/review process? Dumbasses.
The year that iPhone existed without the App Store, no smartphone competitors came close to replicating it's core functionality and user experience. I don't think that's quite true anymore, and so I think that the App Store is one of the iPhone's key advantages. Specifically, the iPhone didn't need the App Store to differentiate itself from RIM and WinMo in 2007, but I think it absolutely needs the App Store to differentiate itself from the Pre and Android in 2009.
I don't think there is one killer 3rd-party app on the phone that everyone needs to have, but there could very well be many third party apps that smaller niches need to have. For me personally, MLB At-Bat (live streaming of baseball games) and the Kindle reader are actually the two biggest factors keeping me from switching to Droid. Those applications could easily be ported to Android, but haven't been yet, and in both cases a third party holds the distribution rights for the content so it's not like me or another hacker could replicate those apps easily.
I wouldn't believe that for a minute. The App Store would have been part of the iPhone product plan from day 1. It's too big, too complex, too strategic, and (yes) too well-executed to be a panicked response to developers' demands.
That's how Apple under Jobs has always done things: major features are not "supported" or "planned" or "offered" or "part of the company's philosophy"... at least, not until they appear out of nowhere one day.
“I don’t want people to think of this as a computer,” he said. “I think of it as reinventing the phone.”
"We define everything that is on the phone,” he said. “You don’t want your phone to be like a PC. The last thing you want is to have loaded three apps on your phone and then you go to make a call and it doesn’t work anymore. These are more like iPods than they are like computers.”
The iPhone, he insisted, would not look like the rest of the wireless industry.
“These are devices that need to work, and you can’t do that if you load any software on them,” he said. “That doesn’t mean there’s not going to be software to buy that you can load on them coming from us. It doesn’t mean we have to write it all, but it means it has to be more of a controlled environment.”
But the App Store was announced to the public only seven months after that, in June of 2008.
If they did all that work in seven months, my resume will be on someone's desk at Apple by Monday. Seriously. I don't want to compete with any large companies that can move that fast. They win.
No, the only reasonable conclusion is that you can't take Jobs at his word when he appears to rule something out.
Edit: And the question isn't really were they going to have an app store or not - they very well could have been thinking along those lines but reserving it only for software they themselves were going to create or with select partners - the question is whether they were going to open it up to general developers which I think they did not want to do.
Any app that makes someone get an iPhone instead of something else is a "killer app" as far as Apple is concerned, even if it only sold a total of 27 copies and lost the developer a lot of money. So even if the iPhone doesn't have any one killer app, the sheer diversity of apps means there is probably a killer app out there for most people, and that is vital for Apple.
All the ads I've seen lately for the iPhone are of the "there's an app for that" variety. So Apple themselves seem to think that the apps are a critical factor.
That being said, the iPhone sold very well before there were any apps at all.
I agree with others - the app store is not that important. It's a fun thing. I'm not convinced it'll even be around/relevant in 5 years.
Developer relations are central to Apple as a whole. Apples needs iPhone developers, desktop developers, web developers and developers for whatever they do after the iPhone. If Apple creates hostile feelings in the developer community with its App Store behavior, Apple is going to have ongoing problems regardless of whether it needs third party developers at the moment.
I'd say about 50% of the time my submissions get rejected, and always for a stupid reason like this; this is one of the better ones, actually. Will I stop developing? Probably not, because it's good money. But am I seriously considering moving to Android? You bet.
I have a simple "free" app in the iPhone App Store. It lets users browse "available" Web domains. One feature is a BUY button that forwards them to Godaddy.com, if they want to buy the domain.
I don't make any money from Godaddy.
The app has been approved for a while, but I wanted to patch one little bug, so I submitted a patch.
... And waited two weeks. Apple's testers found a bug that was in the original approved app, and asked me to re-submit.
... And I waited three weeks. This is classic: Apple rejects my app again because they want to test the domain "buying" feature on Godaddy.
It's a website! Not even my app! Not even a new feature.
Please kill me.
The expedited review request was accepted but in the end took 14 days to come back and got rejected for a piece of code that was never ran and has been there since day 1.
Talk about frustration, hell yeah.
But as everyone does, after getting over the anger and back to reality and business sense, what else CAN I do but only to resubmit since there lies a never seen before first of it kinds, an easy software distribution and payment system that many other platforms did not provide to small independent developers a year ago.
It's not about just supporting one SINGLE platform, that has never been the case. Just like making web apps run nicely in IE, Safari, Firefox, etc or even Windows, MacOS, Linux. As a developer, what matter is that I support the platform that has massive adoption/users. I will not drop iPhone and go Android, or any other platform. The only decision I will make is if there's enough users on the platform that I do care about to invest and develop for that platform. One day Android might be there and I see the possibility of developing for both Android and the iPhone.
It's beautiful, clean and comes with with Debian based distro, Maemo.
My opinions about apple were never positive, probably because I'm only 25 and did not program in the 80's. I've only saw apple as a manufacturer of shiny, well designed rich boy toys, but that is probably because I live in Brazil, where only rich people have it and they think they are 'computer people' because of it.
I was always more influenced by the open source community, and apple's record is far from shiny on that aspect.
My 2 cents.
Personally I've never been an iPhone fan either purely because you can get phones with far, far better technology for the same price. iPhone wins hands down in UI right now (I still hate touchscreen-only phones though), but that really won't be an issue for long with Nokia/Samsung/SE/HTC working double time to improve their OSes.
Apple do understand software. You cannot release Mac OS X, iLife and other jewels without understanding software. Also Mac developers jumping off the iPhone bandwagon are not jumping off the Mac plateform.
For the iPhone, Apple tried a different model that nobody really tried before.
They indeed have a broken store but the previous models on other platforms never worked. The most successful one before was for the PalmOS and it wasn't over the air.
However Apple always been an arrogant company. With their customers, their providers and their developers.
The climax of this arrogance has been reached with the iPhone eco system (certainly helped by the arrogance of the mobile phone operators).
And for many it is not sustainable.
But anyways, who really cares?
Apple can open the doors of the store overnight. It wouldn’t have been the first time they do one thing making you beleive it was the only way and then suddenly change in the opposite direction.
That’s the strength of Apple: they can change. Not only they can change but they usually know when, with what, for who and at which price.
I never realised the arrogance was a trade mark of this process though. Note: I don't mean being evil by being arrogant.
I think he just left out a word: marketing. They know how to build it, for sure. Paul's point is that they're marketing it like it is music.
I made three applications (only one that was popular - WiFinder) for the AppStore. Every time I interacted with reviewers, either by e-mail or phone, I got the feeling they had no idea what they had signed up for, and had not thought out beforehand how to deliver on the promise of only having quality applications in the AppStore. Which is a shame because it's an old problem.
That said, with OS X they really became a lot more developer friendly just because they adopted a UNIX base. At this point, I'd say they're the default platform for ruby/web development. Look at all the rails job postings for small startups promising 30" Mac Pros, etc.
I'm pretty sure that it was dominant at the time. I remember reading a lot of examples that used it.
But I dont think it was purely a codewarrior issue. The overall apple OS at that time was simply terrible and 10 years behind windows (i wont even count how far behind unix they were) -- they still could not get multitasking to work right. Which meant that any pointer error causes your computer to hang. And when you are coding for a data structures class in C all of your errors are pointer errors.
So I am sure a lot of developers abandoned the mac platform around those times, but maybe many of them are coming back now.
I wish I could remember the quote well enough to search accurately for it.
And while there was a dead period due to the technically deficient underpinnings of the late Classic MacOS, before that, the Inside Macintosh days, I hear folks loved programming Apple too.
After having been deeply involved in the Mac dev community for the last 10 years, the implicit claim that Apple is a company pro developers do not love working with sounds, frankly, a little bizarre.
Our first app was built using 'unsanctioned' technology, PyObjC (before PyObjC shipped with 10.5); the app would have never seen the light of day on the iPhone, but then again, we would never have built it in PyObjC for the iPhone to begin with. Everyone we've ever met at Apple has been supportive from day one, and we owe a lot to many of those people.
We have not shipped any iPhone apps, so I can't say how I'd like that, but as a Mac app developer I love working with Apple.
None of this is new, the only difference is that there's now a release bottleneck that requires Apple's approval, and there's a lot of developers new to the platform.
The thing is, this is part of Apple's culture for a reason. Steve is an obsessive control-freak when it comes to a great user experience, and third party developers are seen as a threat to that. Microsoft has always been a great company to deal with as a third-party developer - they value their ecosystem, put effort into free documentation and solid IDEs, and rely on outside developers for key applications. The trouble with this comparative openness is that you end up with 800 pieces of software written by different companies fighting it out on your desktop, leading to crashes and inconsistent UIs all over the place.
I think Apple is in danger of screwing up a great opportunity with the app store, but this way of operating is in their DNA and it won't be easy to change. Despite what the geek consensus might be, the record shows they've made a lot of money in the past whilst ignoring third-party developers.
And that's a bad thing because? Who has the mainstream OS now with over 87% market-share? Even popular cross-platform applications that were first available for Macs (like Adobe Photoshop) are now more optimized for Windows.
Microsoft has always been more open ... you can install Windows on any hardware you want as long as it's compatible (and most hardware is, with the notable exception of ARM-processors).
The developer tools where a lot more competitive because Microsoft allowed competition from the likes of Borland. And the Windows API was free to use (as opposed to OS/2 for instance). And for end-users ... Microsoft has always been committed to backwards compatibility (at least for popular applications).
Microsoft can be called "evil" yes, because of their aggressive tactics regarding competition. But imagine what would Apple do in the same position ... and it's kind of ironic that many developers choosing openness went to Apple for that.
Apple makes money, yes, but they were on the edge of bankruptcy ... they should've learned a valuable lesson then (besides keeping Steve Jobs as the CEO).
Sorry, I had to laugh.
Part of the blame for Itanium losing the 64-bit bandwagon could be pointed to Microsoft, for not having Windows ready for it when it became available. Or for delaying the launch - it's silly to launch a processor without an OS to run it on.
Having Windows support for your hardware is paramount to any desktop computer company since the early 90's (with the notable exception of Apple). Alpha, MIPS and PowerPC (as in PReP) desktop systems are not dead because x86 systems were a better price/performance choice: they are dead because Microsoft pulled the plug on NT for them (and Linux was not ready to take its place at that time). That's also why all our computers are remarkably alike from the inside. It's not that Microsoft is open - it's that they have computer makers cornered.
Today I can get a non x86 computer and expect all my userland to work (with the possible exception of Flash, Skype and parts of Eclipse). I could not do that in the 90s.
The Itanium is not an expensive server chip because Intel cannot build an Atom-like processor with the Itanium ISA (heck - it must be easier than do it with the x86 ISA). It's an expensive server chip because it won't run Windows 7 and Office.
I see very little competition in the development tools in the Microsoft space these days. Tool makers know better - if they make something that competes with Visual Studio, Microsoft will come after them in the next release cycle and it is not worth the pain to fight them. That's why every non-Microsoft development tool around is built for a niche. Or is free, a case where Microsoft will not be able to go after you. That could be a reason for the free language explosion we are seeing.
And thanks. The Psystar imbroglio is a statement of how evil Apple can be about competition these days.
It even seems that after stopping attracting the best and brightest, they started attracting former Microsoft minions...
Steve seems to think that the benefits of closed systems (standardised UI, fewer crashes) outweigh the costs (more expensive, less software). I don't have to agree to recognize that he's making a rational trade-off.
Today my small team of developers submitted the first "toy" we released just to test how the approval process works. Let's see if we'll have some bad experience as well.
Do you see my point? To anybody outside the app development community it's going to look a little bit "self important" for developers to be using such strong language and talking of boycotts over something most folks would agree is not evil. I agree what Apple is doing is stupid, in the long term the app store is going to be polluted with crappy apps and they're approval backlog is going to be rather daunting. I think strong lobbying from the development community is in order, but it takes conscious and deliberate inhumanity for me to label someone "evil".
A company should have the right to control the user experience offered for a device that it designed and manufactured. That will mean denying a third party's right to bypass those controls.
The user has the right to do anything with the device once they've bought it.
However, I think that the essay misses a couple of points.
1. The essay rejects the notion of an "intermediary" or a "software publisher". However, it fails to appreciate the fact Apple has opened up the mobile app market to developers and eliminated far worse intermediaries (the walled gardens of carriers). This is a huge order-of-magnitude improvement.
2. A lot of developers do release badly-buggy apps out there and then end up "blaming" the Apple review process for their customers dissatusfaction. While I agree with the launch-fast-and-iterate approach, I don't think developers/companies should use that as a license to release poor-quality crashing apps. Cutting/postponing features to launch the app quickly can be a good thing, not testing the app and releasing an app with crashing bugs is not a good thing. ---
I don't expect Apple to throw out the review process, but I do hope that they improve the review process. A simple/easy improvement would be to show the latest queue ranking of apps that are waiting for review. That will go a long way towards reducing the "ongoing karma leak" that pg mentions.
Replying promptly to developer emails about app-store rejection will also help. Setting a limit of n apps for a $99 license may also help Apple cope with the incoming deluge of apps
2. I'm not sure what you're trying to say here. The review process exists so developers are already doing their best to not be rejected and Apple is rejecting anything badly-buggy. Bugs still escape that process, it's inevitable. Fixing them should be easy and quick, but it's not, and Apple is entirely to blame for that.
2. I think the solution to the iPhone fiasco should be for Apple to hire more reviewers and allow developers to pay more money so that they can buy a faster turnaround time. It doesn't make sense for me to wait 2-3 weeks for another shot at the review process because I placed a bad keyword in the description.
The solution is to open the platform to all developers. Imagine if Microsoft had vetted every DOS and Windows app, or if we had to submit Linux apps to Linus for review.
What they need to do is just let all apps through, and make it easy for customers to report problems, and then Apple can proactively pull apps that have too many problems. They could do that at half the cost and have much better overall quality, to say nothing of the developer good will.
For example, applications that use Apple/iPhone imagery wouldn't get reported because users don't care about the dilution of Apple's brand.
Likewise, applications that encourage the user to do things that might damage the device (swinging, throwing, or dropping) wouldn't be reported because the device is broken -- and the user will probably try to get it replaced under warranty rather than admitting that they did something stupid with their phone.
The other thing is they could keep the existing process for everyone's first app, but once you are a trusted developer things should be smoother. That would eliminate most of the pain.
The question you should ask is do Apple customers want Apple to protect them from those sites?
I work with non-hacker computer users all day long and the answer is emphatically that they do want Apple to hold their hand and protect them so they can get their work done without having to fight with their machine. They want a padded room where they don't have to constantly worry about bandaging themselves up from being accidentally impaled on some spike around the corner.
Users definitely want a controlled ecosystem that is somewhat sanitized and they are willing to take it at the expense of having the latest greatest features, and also at the expense of paying more.
Or, hold constant that Microsoft didn't vet DOS/Windows apps and imagine that every DOS/Windows machine had access to a cellular network owned by a some other company.
I agree that the review process is completely broken, but I don't think the solution is as easy as having no controls whatsoever.
Well most windows machines do have access to a network controlled by someone else. And with the proliferation of cellular usb accessories more and more windows machines do have access to a cellular network owned by some other company.
I don't think you correctly read my post:) No worries
Too right, I inserted a subliminal "not" after the do.
Apologies!
It's possible that if Windows Mobile had been as popular as the iPhone, then the carriers _would_ have started to see a big problem with malware ruining their networks.
Of course neither had an app store, but there were no controls in place for these platforms, and the cellular networks are still up.
Apple wants people to actually buy apps — imagine that. And how do you accomplish that? Make absolutely sure that users don't for even a second think that the app they're interested in might be crap or malware.
Nothing kills spontaneous app shopping like a fear of malware, that's what Apple wants to make sure stays out of their garden.
Does Apple continue the overhead/cost of the app store? Do they have a giant disclaimer that they do not support or condone the applications, take no responsibility for any damages, etc? Do they still act as the payment gateway? How does this impact Apple's brand and the consumer trust of the product?
Why is it that mobile phones with open app development have not taken off even with years and years of head start?
What is Apple's incentive to do this? Can they make money on a phone that allows this sort of development?
I really think there is a lot more to it than just "open it up the world deserves to be free" and we're not talking about it. Why is that?
I would think the same thing would be true for apps. Many users would continue to use the App Store because of the convenience and the added trust that their verication process provides.
Re: the impact on Apple's brand, see the original article for reasons why the current model doesn't ensure quality.
Apple's incentive is long term viability of the platform. Can they make money indefinitely while alienating developers?
They make money off selling the phone. That apps sells the phone, not the other way around.
Apple can continue to charge their 30% cut, they can still be the only gateway to get apps... but at the very least you can submit things and have them available to your users immediately.
From my POV the easiest fix for a situation where lots of dumbass things are being done is simply for people -- in this case, Apple -- to just STOP doing those dumbass things.
Duh! (<-- hyper-intellectual argument I know)
Reminds me of an old Bob Newhart comedy routine about a rather blunt psychotherapist. His patients would come to him and whine about some bad habit they had, etc. And they would ask him, "Doctor, what should I do?"
He would think for a bit and then raise his hand with a friendly smile and say, "Stop it."
The patient: "What?"
Doctor: "Stop it. Stop doing that."
"Uh, I don't understand. Should I---"
"Ok maybe I'm not making myself clear. Sometimes that happens. So I'm going to say this again, very carefully, and I need you to pay attention."
"Yes, Doctor. Go ahead."
Then he would get up and yell, "STOP ITTTTTT! JUST STOP!"
Then hand them the bill and say the session was over.
Read your iTunes agreement. I think you will find that they already have this.
Apple unofficially accepts responsibility for the AppStore apps. They don't vouch for their quality per se, but they do vouch for the fact that they won't wreck your phone.
The same can't be said for apps on an open platform.
Hackers love open platforms but users flee them because the experience is painful.
Very well said. The developers the app store is designed for are the boring, careful, professional developers who create polished, shiny, dependable apps. And that's what most users want. They want freedom from fear -- freedom to search the App Store and download whatever they find without without worrying about their level of sophistication. They want Disneyland, not a bazaar in Cairo. They want new Times Square, not old Times Square.
As a matter of pride, developers and early adopters refuse to acknowledge this factor. They pride themselves on their savoir faire and their ability to safely navigate an uncontrolled software ecosystem. The image of Apple users is carefree, self-assured, and adventuresome, and consumers can't feel that way in a place that is wild and unpredictable. They need Disneyland.
We associate the BSOD with Microsoft software. However, in the majority of cases, the bug is in someone else's code or is a hardware problem. These days it drivers, but in early Windows (pre-NT), applications could cause the system to die.
I suspect that Apple are vetting to avoid bad apps from tainting the perception of the platform. The platform is what they care about, "like Google cares about search".
If an app is buggy and fixes or new features don't turn up the end-user blames the app vendor. If the device crashes, the end-user blames the platform vendor. Those things can stick; witness how the BSOD has influenced perception of the Microsoft platform.
Avoiding that is a reasonable thing for Apple to want to do. However, I agree that the way they are doing it is probably counterproductive.
But the review process is not the part of the App Store that made it successful, nor the fact the applications are so limited and can't use APIs outside a strict list.
2. This is not something you can fix with more reviewers... it's not just a matter of time, but there no way to create an objective review system, at least if you don't limit the review process to macroscopic stuff like "the app does not work" or "there is a huge disney logo", but in big companies you can't do things like this. If you have got the review process then even a 3 pixel logo of something remotely copyrighted will stop the process.
Also, the more reviewers you need, the less qualified you get, and it requires to be very sensible to handle well the review process. I don't think this can work. Jeff FooBar will simply read all the rules and apply them without the ability to figure if it's really applicable in this particular case. So like it happened recently if there is a program to connect to your mac, and it shows an icon accordingly to the model of mac detected, and there is a 10x20 pixel mac os x default aurora background, he will stop the application.
2. The review process is almost exponential, every week you have more apps and updates to all the existing apps. Maybe Apple is hiring more reviewers; they might have to just to keep up. Having a paid review tier just means that big developers get a 1 day turn around and indy developers get the left overs.
I was at the BB Dev Con last week and their tech lead explained the approval process: "they load it, make sure it doesn't crash the phone, then sign off on it."
He just realizes he can't build a successful product, long-term, without them.
But his main internal smart software guys know better, and build a great software ecosystem.
Thus Apple is now projecting a seriously schizoid personality.
When developers can make whatever they feel like making, we get linux.
When Steve Jobs is there to lobby for the customer, to lobby for beauty and ease of use and a focus on the details and thorough documentation, then we get OS X and the other "It Just Works" features that Apple is becoming known for.
Customers want a Steve Jobs parental figure to stand there beating back the hordes of opportunistic Bonzi Buddy coders trying to make a quick million. That's why people pay premiums for Apple products.
Love it or hate it, the philosophy behind the App Store is a large part of Apple's growing success. The philosophy is that the user will pay more and in return the developer has to jump through some hoops and get his app approved.
Having said that, obviously the approval process needs to be adjusted. It sounds relatively trivial, in fact, for Apple to implement a procedure that would allow minor bug fixes while still putting apps through an approval process.
It would be great if customers could trust developers, but the truth is they can't. This has been proven over and over again. For every hacker that is dedicated to making something people need, there are ten willing to code exploitative Facebook apps and spambots and spyware and toolbars and programs that run in the background and phone home constantly so they can sell user data.
I always think of them more in terms of Animal Farm. Microsoft was Mr Jones, Google and Apple are Snowball and Napoleon.
They clearly understand consumers, software, infrastructure & user-experience. They missed the boat with the ipod, here's a fantastic opportunity to do something about it.
Amazon apologized; it's unlikely they'll delete books again. I trust them more.
Below is what I've learned after 2 months of AppStore dev.
Here are a few dirty tricks & ideas that I hope will make life in AppStore purgatory easier:
Use the 'Easter Egg' field to plead directly to the reviewer. It's a free-text field that every reviewer will read and a little social engineering will work wonders.
If the app name is important to you, reserve it by submitting a dummy app without binary. You'll need dummy 512x512 and 480x320 artwork in order to be able to fill out the form.
Phone contacts at Apple are pure gold. I consistently got on the line with the same reviewer. Depending on their mood reviewers can expedite things. But it's still pretty random.
Set your app price low ($0.99) while it is in the review queue & jack it up immediately on release date. I got an app rejected because the reviewer did not like the price I set.
It pays not to be a bottom-feeder. Maximize revenue, not units of sales. Often a slightly higher price will give you more revenue. There's more than the $0.99 price-point. At a higher price point you can also afford to pay higher CPM/CPC for initial customer acquisition.
Count on doing your own marketing. The time when you could solely rely on rankings to boost your sales is over. The AppStore UI is so broken right now that you have to assume that your customers will not find your app without some effort of your own.
Expect long approval times. I've started thinking in development/update cycles of at least one month. Agile is not the mindset at Apple. Work on new apps while your other apps are in the queue. I wish Apple would crowdsource the approval process or look into setting up community-managed 'repositories' like Linux.
App Complexity is a good predictor of approval time. This is a big problem because it does not reward taking on the risks of building better apps. It took me 2 months to build up the confidence to start a more complex project.
Private API calls are an absolute no-no: even if you were approved before, your next update will be rejected because Apple started using automated tools to inspect your code.
If you give unlimited access to the internet through a UIWebView, your app will be pulled unless it has a 17+ rating.
There's no (easy) way to measure where your app sales come from. This makes traditional SEM/SEO difficult. You have no conversion numbers so your marketing funnel is broken.
Don't mention Apple products in your description. Don't use images of Apple products. Don't mention real-life persons in your description, I got an app rejected for that last one.
Don't count on being able to schedule a release date. Once you do get the approval mail, go into iTunes Connect & set your release date to $NOW. Remember, this can work both ways: I got surprised by an early release before my marketing materials were ready.
Yes, you will be pushed back to the queue upon rejection, even if you have the reviewer on the line and beg him to make an exception.
In all fairness, not all is bad. Apple seems to have started picking up speed lately. My experience with App approvals has been that it got faster in the last 2 weeks, at the same time when the AppStore itself went in disarray (wonky rankings, wrong release dates, ...). However, take care and remember "Correlation, Causation et Al.". Also, once I was in contact with Apple over the phone they were very courteous and professional in resolving issues. Slow & polite.
In the 80's you could travel pretty freely as a western visitor in communist eastern Europe if had a similar list, telling you who to nudge where, what gifts to bring for cheap bribes (IIRC I heard that a good ball point pen got you far in some places) and so on. Now, the ultimate solution isn't a better list, I think was PGs point.
That's a new one. At least for me.
Could you expand on this a little? Do you mean web service API calls that are unpublished, web service calls in general or native API calls that are somehow forbidden?
Web API calls are mostly a 17+ rating problem: if you load anything over the web that could potentially be 17+ you have a problem.
Obviously without good and satisfied developers those benefits are moot. I'm certain the approval process needs to be [improved/changed/redesigned/removed], and maybe some kind of sanctioned jailbreak should exist where more advanced users can manually install third party apps, but I do believe the App Store itself is a good thing when you you look at it from a user perpective.
Apple must understand this, and they can't possibly believe they'll be allowed to maintain this sort of dictatorial control over people's primary general computing platform
Maybe our generally-accepted notions of what should succeed in the market is wrong.
I was surprised too: my wife has a 3GS and I was planning to get one for myself too.
Instead I got a HTC Diamond2 which I plan to upgrade to a HTC HD2. I'm a developer, not a essay-writing millionaire. I like platforms that are Powerful, flexible and CUSTOMIZABLE to my taste. I like pretty too, but form has to follow function, not the other way around.
On WinMo, thanks to xda-developers I belong to an AMAZING (real, not wannabe) hacker culture and environment. The latest HTC ROMs are sleeker and better than the iPhone. More useful and immensely customizable.
My wife still has to click an "App" to get to her favorites... mine are on the first page. Which first page is GORGEOUS, not an old matrix of icons.
But the most important part... my phone is HACKABLE. My wife's is like my ps3: untouchable.
Does she want to have to deal with it when she downloads an app that sounds cool and it ends up installing spyware on her machine and drains her battery and drops her phonecalls?
Or would she maybe rather give up some hackable freedom for ease-of-use and a promise of a protected experience?
But the discussion here were HACKER phones, not consumer phones.
The app store is already far ahead of the competition but it could be factors further ahead with shorter cycle time.
Progress is a non linear function of cycle time. Apple are holding themselves back by many factors by artificially extending cycle time and making it far far easier for the other platforms to catch them up.
The more I think about it, the more I think a QA review process is necessary to make the market work in the long run, and I think the idea of "rapid iteration" on mobile devices--while nice for the developers--is ultimately wrong for the users.
APIs are notoriously hard to get right without either committing yourself to support a broken implementation forever, or breaking thousands of apps. So access to the API is rolled out slowly and gradually to give engineers time to see what's working and what should be changed.
And the value of "don't have to think twice about buying" for the users is probably worth millions or billions of dollars to a large marketplace. I don't think you can get that with certifications, because it really hasn't been working for SSL certificates and "TRUST-e", etc.
A mobile phone is NOT the center of my world. I already hate the fact that the few apps I have installed on my iPhone keep coming out with updates that I keep having to install. I do _NOT_ want rapid iteration being performed on a phone with 10-20 apps on it. It's a chore to keep installing the new versions. Nor do I think they should auto-update, because that comes with its own can of worms, too.
Apple isn't handing an advantage to its competitors. The review process _is_ the advantage. We've been needing a good review process for the notoriously crap-assed QA problems in commercial software for a long time.
If you're a developer, and you want a stable environment that gives you access to the Terminal (bye, Windows!), has nice typography (bye, Linux!), excellent text editor (TextMate is the best one I found for Ruby) and does not cause stupid problems with printers or wifi (bye, bye, Linux!), you have no choice but OS X.
Their hardware is a piece of crap. Even a company that made an ad with them, agrees with that:
http://37signals.com/svn/posts/1489-every-mac-ive-owned-has-...
I think it's very similar if you are a professional photographer. Windows is so bloated it's painful to work with. Linux has no Adobe toolkits and you end up with OS X again.
How many people associate an iPhone app they download with a 3rd party? I would think most people associate everything on their iPhone with Apple. Launch fast and iterate is great for developers but for Apple it makes it look like they keep releasing buggy software.
Contrast this with a software company. Most people have learned that if an app doesn't work on their Dell, its the developer's fault, not Dell's (usually).
This misconception about iPhone apps is made even stronger by the fact that users buys apps through Apple!
Edit: I don't mean to defend Apple completely. Obviously their processes should be better, but I'm just disagreeing with the rapid iteration model.
The biggest change they have made that took me off their platform was their recent policy to not show updated applications along with new releases.
Let me explain. For the longest time, if you looked under released applications you could see applications that were recently updated. This was a great incentive for developers of existing applications to keep updating their applications and getting it easily noticed by users.
Apple no longer allows updated applications to be displayed in the released applications list.
There is now no way for users to discover your application except for about one or two days when it is first released.
It was also a great incentive for developers to game the system and swamp the reviewers by submitting trivial updates every week to keep their apps at the top of the list. Tragedy of the commons.
On the other hand, it did tend to swamp the review process.
The current app store policies encourage developers to iterate apps i.e develop a bunch of apps in a month or two and hope one or two of them shoot to the top.
Developing compelling desktop level full featured apps over the long run are discouraged.
The App Store is an experiment for Apple. The publishing model has worked pretty well for Nintendo, Sony, and now Microsoft in the console games market. It should be pretty clear that's what Apple wants on the iPhone. They may lose developers to other platforms but from their perspective there's plenty of others waiting to take their place. I say it's an experiment because Apple can ditch the closed model at anytime in the future when/if it starts to negatively impact iPhone sales. If they had started open it would be impossible to go closed at a later time.
Our latest release of Gaia GPS was just a handful of bug fixes - no feature changes - and Apple rejected it on the grounds that our map screen didn't warn the user they were offline.
They also rejected the new version of our Lite app for a totally different reason - because we used a "private" API - actually just a function restricted to Mac programming called dateWithString.The non-lite version builds from the same code, so it's also annoying that they just pick one random thing to reject you for. They didn't mention the "private" API call for our non-free app at all.
It is my understanding that apps can also be installed directly from third party websites... If so, is there a way to create an app for the App Store that is a shell to a website where a conglomerate of listings can be offered? It seems this would give the value of having everything fairly easy to find (one extra click) and yet get out from the management of the App Store for all but the original shell app...
This is not true, and that's the essence of the problem.
You can install software that you've written yourself on your own phone. And there's some sort of deal that lets you give your software to beta testers and let them install it. A year or so ago some clever fellow tried to use this beta loophole as a way of selling an app that was banned from the App Store. I believe they threw the book at him and he had to stop. I haven't heard of that happening again.
You can distribute apps for jailbroken phones, but that is not really a solution.
Much of my free time in highschool was spent creating games on it. It's extremely easy to develop for (it uses a variant of BASIC), and the menu system is designed to minimize keystrokes, which means you can bang out your code very quickly.
Of course, the platform is very dated: 6 MHz CPU, and a 96×64 monochrome LCD screen! I'd love to see something in the same format, built with modern technology. Maybe the default language could be Python.
That's a mobile experience that I'd get excited for.
I spent every calculus class working on various things. My proudest accomplishment was a blackjack game. I implemented drawing routines for every card type, which was really painful given the graphics primitives you had available. So much Line(..) and PxOn(..).
Distribution mechanism was hooking up that cable to your classmates' TI-XX. Maybe iPhone devs should try that.
It's nowhere near as powerful as a PDA, but it has a great keyboard (for math, at least) and runs off AAs.
One doesn't need to look back far in the past to find examples of situations where Apple, after refusing to acknowledge the existence of a problem for an extended period of time suddenly came up with a solution that not only fixed it but also extended the playing ground significantly. The iTunes Store, the App Store, the iPhone copy and paste mechanism, etc. John Gruber could probably list quite a few.
Apple, or rather, Jobs' main problem is not one of efficiency but one of communication. His combined obsession for secrecy and control of the end user experience his mostly likely what produces this insanely inadapted public stance in face of the App Store obvious problems.
I seriously can't exclude that Jobs' obsessions won over the best of him and that he's actually fighting the tide instead of surfing it, but I wouldn't be surprised if a solution was already being tested inside the walls of the castle.
If Apple critics and users must learn anything about the company, it's that its public posture doesn't give away any information about what is actually brewing inside the company labs. If Apple must learn anything if it doesn't want to alleviate its most valuable partners (by which I mean developers), it's that posturing is not an acceptable communication practice and should be left people like Steve Balmer who have not much else to propose.
I agree in spirit the system is screwed - but Apple do have a hell of a lot of sway. They have the leading product and the huge customer base (and the cool factor). To a point they can dictate things (and I agree this is bad and we should stop them)
The same thing will happen with the App Store. Instead of "solving" the problems the way most companies would: throwing money willy-nilly at the problem, hiring hundreds of new untrained reviewers, etc., Apple will look at the core issues and figure out ways to fix it. Keep in mind the App Store is unprecedented in numerous ways (size, growth, etc.) and is new and not even Apple anticipated it would be this popular. It will take time, but it has been getting better and will become great.
(I predict the same kind of slow fix on the App Store itself, in terms of discovering apps, which I think is a more important problem than a handful of frustrated developers. Even if that handful is tens of thousands, finding apps is an issue that effects millions of users and developers, since if users can't find your app they aren't going to buy it.)
Why so specific? If the idea is get iphone-replacements into developers hands, why not just say that. 'Development on handhelds' sounds like a reasonable idea, but maybe it's impossible. Maybe it's just one of several possibilities.
'Get developers using something other then an iphone' seems like something that could at least yield some good ideas. Is there any reason the RFS is so granular?
I'm sure the money can be good ... but is that really the road anyone wants to go down? Is it worth having your leg chained to the table?
Mobile devices are physically constrained by their use case. They must be small to be carry-able. I believe in a future where mobile devices will be more ubiquitous, and where specific tasks (like development) would be delegated to "static" machines.
In the future, mobile devices will be more like a magic wand than a workstation. We would enable functionalities in different "static" devices with the same mobile device.
Also, you ask : How could you make a device programmers liked better than the iPhone?
I would suggest : make an open device for less that $100 and you will win. Now we know that price is a feature. No need for a big touch screen.
There are also some benefits to having a closed app store. 1) No viruses 2) Easy platform to collect payments 3) What else?
"In the short term, individual citizens and groups will pay. But in the long run, you can see they can't win. The very nature of technology is you can't harness it -- not authoritarian leaders, not anyone," Hom continued. "It's like riding a tiger, and you can't get off."
http://www.foxnews.com/story/0,2933,529090,00.html
http://www.techcrunch.com/2009/06/24/censorship-20-china-blo...
I can answer this one: there are already a few people who are interested in Hecl for this reason: they want to use it to write code on the phone. That was never my intent with the system, as it seems painful to me, but if there are already a few using my little language, which is not well publicized, there must be a bunch more out there. And if people are doing that with existing phones, I think things will only get better in the future.
http://i.gizmodo.com/5185837/a-hackintoshed-dell-mini-9-auto...
Looks pretty powerful, roughly the size of a Nintendo DS. Of course, it won't replace a laptop... the keyboard size alone.
But if I could sync code between the Pandora and my laptop and compile stuff on-the-go. The Pandora could function like notepad for writers... but for programmers.
Its usefulness in developing for windows applications would be very limited, however.
1. Open source - this could be Androids greatest strength against he iPhone and the key to making developers switch.
2. The killer app for Android could definitely be free phone calls! VOIP seamlessly integrated, not as an after thought.
I think Android will give iPhone a serious run for it's money, and put pressure on Apple to change some of these things. Great topic, Apple needs to wake up on this one!
However I don't see how PG shows that Apple is somehow winning by exercising power. Can someone clarify this? PG even? I don't hear any explanation of how their exercise of power is helping them win.
We develop on 8GB i7s with dual 24" screens. We have one at home and one at work, Remote Desktop-ing from each other.
Gigabit ethernet and optical fiber internet. No molasses wifi here.
We work FAST, we work HARD. But we use Windows 7 too, so we're not limited to Apple's crappy hardware either...
We test on iMacs and we serve from Ubuntu.
But we develop on Windows Desktops. Our Mac Airs are for browsing. And reading Hacker News.
I _like_ desktops more than laptops, as I argue here: http://jseliger.com/2008/12/26/computer-post-desktop-or-lapt... , but note the link to the Ars Technica article: global laptop shipments as measured both by number and by dollars have overtaken laptop sales. And that was in Dec. 2008: the trend has only accelerated since. That's about as good a definition for laptop sales having overtaken desktops as I can imagine.
As I said, we too have laptops we use for browsing from the couch. We just don't write serious code on them
The only moment I wish for an i7 is when I have to buildout Plone, which is time consuming, but specially so on a machine designed for battery life. Fortunately, I have been doing mostly Django work, so I haven't been building Plone out lately.
I wonder if other Linux developers also feel the need for 8GB i7 machines.
Regarding laptops and Windows: after using Visual Studio on a laptop for a month, I don't even want to hear about working on laptops. Also, I've noticed that some companies promote working on laptops as a cool factor, although in my opinion it's not.
There is a cool factor in working off a laptop - you can carry it out of your office where nobody can interrupt you. That's a non-trivial benefit.
Makes sense. I think it is not by chance that OSX is the least customizable OS around (and that's why my mac runs linux).
pg, can you please clarify this? What exactly does it mean to lose "a third" or "a half" of goodwill?
... then he gives a really insane Request for Startups: http://ycombinator.com/rfs5.html. I think the current upper limit for input bandwidth on a 4-inch or so screen means that you would really have to invent something not seen before. Moreover, given the stubborn habits of the top hackers, you can't have significant adoption with an 80% solution. And you really need to go after top hackers who influence others to get significant adoption by programmers.
(Not to mention that ideally you need RFS5 users to be able to develop for things that aren't RFS5 or generic Unix. Otherwise you just end up with an adoption rate similar to Linux. Possibly even lower, if people have to buy your hardware.)
I'm thinking of the fact that all top hackers have some kind of Holy Revered Tool on which they are dependent for their workflow. These might be large, clicky keyboards, vim, Emacs, or TextMate. Even if any given Holy Revered Tool is used by 5% of important hackers, ALL important hackers have SOME kind of Holy Revered Tool.
This means that the hypothetical RFS5 device would have to capable of running, at minimum, vim and Emacs, with trivial compatibility between the new handheld version and the old desktop versions (because the top hackers have years and years of muscle memory and customization that they want to make use of without months of retraining/rewriting).
If I were to spend time thinking about it I would broaden the problem somewhat:
- Alternative Goal 1 - invent some kind of user interface that smoothly scales from handheld devices to small notebooks (not just netbooks, but even something like a Macbook). The exact same software automagically squeezes into a handheld, and stretches to fill a notebook. Make sure you can put the OS on some commonly used notebooks. (Maybe even focus on easily supporting scenarios like dual-booting a Mac?) You could have a notebook computer running the software, and a companion handheld device, with really tight integration between the two, hopefully down to the level of closing your notebook, and having all of your open apps - the exact same session - in your pocket.
- Alternative Goal 2 - create a distinct mobile experience, but have really, really good sync to all desktop operating systems. Not an 80% solution, a 100% solution. Make it possible to sync anything, really easily. If you use iPhone you can only easily sync it with Apple stuff. If you use Android you can only easily sync it with Google stuff. If you use WebOS you have a slightly wider choice of services, but they're all cloud services and hackers might be paranoid about that. All of these platforms only sync a limited range of stuff. If you want to sync something else you have to wait for Apple/Google/Palm to decide that you're a significant market segment. Not to mention that (for Apple/Palm particularly) much of the data that is on the device is locked down. Want to bet how long it's going to take for Apple to allow their email client to view a Scheme/Haskell/Clojure source file someone sent you? How about Arc source code? How about if you want to edit a .txt attachment and forward it to someone else?
Alternative Strategy 2, by the way, might be useful as an intermediate measure to get more of your hacking stuff onto the device so you can more realistically evaluate, as a resourceful programmer as opposed to a regular consumer, what wonderful things you might be able to do with it that appeal to you in particular, and that Apple's restricted (read: lowest common denominator, just versatile enough to be widely adopted and no more) user interface doesn't let you do.
It's just kind of pointless because you get 50X the productivity by bringing your laptop with you. My 13" MacBook doesn't exactly weigh me down.
Couldn't agree more.
The documentation is incomplete, support is horrible and there is no way to even view my Android 2.0 app without a DROID.
The first logical flaw is to point out how developers love Apple's support for developing desktop software, and then a few paragraphs later say that they [Apple] "don't understand software". Obviously they do understand software.
The second is that Apple's control over the app store review process will create a closed monoculture. So the original iPhone development model of using web apps has been forgotten already? Mobile Safari is continuing to support new standards and APIs, enabling new kinds of app to be delivered that way, and it will continue to be a competitive option for developers in the future. These apps will work in other phones and do not require an approval process.
The misperception of the essay is that the app store, and specifically its approval process, is evil. But this doesn't make any sense.
Apple just handed to small, independent developers a way to distribute their software to tens of millions of customers with a real, working single payment mechanism that is so easy it affords impulse buying from anywhere at any time. The cost to enter this program is $99--less than the cost of the phone itself and an entry barrier so low it's practically nonexistent.
So we now have apps developed by the recently unemployed--while sitting on their living-room couch no less--making tens of thousands of dollars in a few weeks.
This is unprecedented and incredible. It's one of the best things that has ever happened for independent developers since the microcomputer. And then they made it even better by adding in-app purchasing through the same payment mechanism. This is huge.
The inconsistency of the app rejections points to the problem of hiring and training people to interpret the policies, not the policies themselves. They aren't likely to find people who want to do that kind of work, and I'm figuring that the turnover is probably as high as it is for call centers. And given some reports that app store submissions (or at least approvals) reach 2000 per day, I would be amazed if these kinds of problems didn't happen in even the best run and most benevolent company in the world.
But while everybody is calling Apple evil for these growing pains, Apple is busy learning how to do App Stores. Statements made by Tim Cook, the rejection-reversals that come from higher up, policy changes and clarifications, suggest that Apple does actually care and is (slowly) improving the process.
Apple has a clear vision of what they want to deliver to the customer, and the review process is part of how they're trying to make that vision work. I think they're going to stick with it until they get it right.
I think it's likely that Apple will eventually find a way to solve these problems. When it does, it will have a competitive advantage that Android and Palm and even Microsoft won't be able to match for years: an app store that customers trust and will readily make purchases from without second thought, and a simple, painless way for independents to get their apps in. This would pave the way for an Apple TV App Store, a iTablet App Store, a Book/Magazine/Newspaper store and so-on.
It'll probably take a while to make it as painless as it should be for developers, because these kinds of problems are _hard_. Harder than engineering.
This isn't Apple's Mistake, this is an extra $100 or more per share of AAPL in the next few years.
>>> Last update of whois database: Fri, 20 Nov 2009 12:10:22 UTC <<<
Anyone wants to give it a try?
That's a good summary of the situation.
I would buy it.
If it already exists, someone link me!
http://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/dp...
From 2004, but comprised mostly of essays that are on his site.
Otherwise we won't see or hear of any solutions until June 2010 @ WWDC. (Apple is not involved with Macworld this year.)
Everybody should trust us.
And we trust nobody.Apple very well monetized iPhone's wow!-factor, but now it is a mainstream thing.
Let's see what their tablet would be.