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.
You can already run emacs on the iPhone. The issue is just that the keyboard sucks. But right now I can do all my regular dev tasks on the iPhone by SSHing in my webserver.
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.
... 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.