"The incumbents said the personal computer was inadequate and underpowered. It couldn't even multitask, unlike their glorious, room-filling computers. The personal computer would never catch on, they cried. They were wrong."
Notice how the modern personal computer eventually grew features that made it a more attractive proposition for people who were addicted to the power of the previous model. A modern personal computer offers all of the power and flexibility of an early vacuum tube computer, and much much more, without needing to deal with burned-out vacuum tubes (suck on that, people who think the command line is a big deal!). A quick perusal of the iPad programming guide reveals that there are now rudimentary features for sharing data between applications. That said...
My worry is that with the New World computing model (locked down by default, with the inviolability of the locks arguably backed by the DMCA) this process will be significantly slower and less pleasant if the mothership (whoever 'owns' the platform) has that kind of leverage over people who would otherwise give it a well-deserved kick in the pants. Here is a well-known app for the early Macintosh, well into 'jailbreaking' territory:
The real horror is how much thicker the C++ standard is than any of the thick documents mentioned in the speech. If people like Knuth, Hoare, etc. were working towards a dream where programming has the rigor of physics, the modern situation is more akin to alchemy.
The App Store is very similar to US immigration control. People are justifying the maddening complexity and the casualties of the system by analogous arguments in both cases. And building a startup around an iPhone application and then having the app kicked from the store is like a less dramatic version of building a startup in the United States and then having a co-founder kicked from the country.
Paul Graham criticizes the App Store, which is significant because it's a rare instance of a person with such major hacker street cred and no vested interest in the platform putting in their two cents...
... 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.
Wait, how is this "benefit"? Based on the above, App Store rejections are still bad for indie developers, but not as bad as for other people, so that for an indie developer the risk of getting rejected is supposedly more like a "pain in the ass" as opposed to a "prohibitive liability". But that's just saying you "benefit" because you're not being screwed as hard as that other guy.