June 1st, 2010
The last several postings in this thread about the future of technology have focused on the consequences of hardware advances — e.g., all of the marvelous things we can look forward to in the next 5-10 years as a result of computers/chips that are 10-100 times cheaper, faster, smaller, etc.
But as an intellectual exercise, suppose for a moment that that was not true; suppose that we were doomed to continue using today’s hardware technology for the next 10 years. Would things get any better?
Those of us who have been working in the software industry for the past 40-50 years are likely to have a pessimistic reaction to such a scenario. “We’ve been writing lousy code, full of bugs, for the past 50 years — and we’ll probably continue to do so for the next 50 years. And we’ve been consistently over-budget and behind-schedule on our software development projects for the past 50 years — so why should we expect things to get any better in the next 50 years?”
Indeed, there is some cause for pessimism here, but there is also an optimistic response: “We have gotten better at project management, and we do write better software than we did 50 years ago. But as hardware technology has improved so astoundingly over the past several decades, business organizations and society, in general, have demanded that we solve bigger and more complex problems. And we have taken on bigger and more complex problems, until we reach the point that our efforts are just barely ‘good enough.’”
We could debate these pessimistic and optimistic perspectives for quite a long time, but for now we’ll put them aside. Back to the simple, straightforward question: what if we could only expect improvements in the computer industry from the “stuff” we do in software?
One thing is fairly obvious: it would take us another 5-10 years just to use the hardware we’ve already got! There are exceptions, of course, some of which we’ve hinted at in some of the previous postings in this blog thread. But particularly in the area of personal/home computers, and also in the area of small-business computers, we are using only a small fraction of the available computing resources. We could probably continue for another 5-10 years, writing the kind of “brute-force” software that lazy programmers have been able to write for the past decade or two; and at some point, we might have to start optimizing our code, and we might have to schedule the use of, and access to, our hardware resources. It would be extremely unpleasant to go back to the days of “batch scheduling” of computer jobs; and it would be unpleasant if we had to abandon the idea of dedicated, personal computing devices, and return to the days when lots of people had to share scarce hardware resources … but it could be done.
Again, let’s put that scenario aside for now. Let’s take a more positive, optimistic perspective: what kind of new, “good” things might we expect from the software industry? There’s one interesting perspective that we’ve been hearing from people for the past year or so: look how many apps are available on the iPhone! First it was 100,000 — which was pretty amazing — and then it was 150,000 and now it seems to be 200,000. Interestingly, I recall reading about numbers like this back in the late 1990s, when the Palm Pilot was all the rage. In a long-forgotten article in the Wall Street Journal (which I’m too lazy to track down on Google), I remember reading that Palm had cultivated a “cottage industry” of 40,000 developers who created tens of thousands of Palm apps, which they sold for a few dollars each. Of course, Palm didn’t have iTunes — and the mechanism for finding, purchasing, downloading, and installing the apps was time-consuming and tedious.
So now that we do have iTunes, does this mean we should expect a Moore’s-Law phenomenon with mobile apps? Will today’s figure of 200,000 apps escalate up to 2 million apps by 2015, and 20 million apps by 2020? Even if that were true (the likelihood of which I’ll discuss in a moment), it doesn’t necessarily mean that society will be fundamentally improved — if we had access to 2 million iPhone apps in 2015, it doesn’t necessarily follow that they would all be “killer apps.” In fact, only a small percentage of them would show up on everyone’s iPhone — but the rest could still serve a useful purpose, in the form of a “long tail” of “niche” apps that are only useful to a few people.
Indeed, the long-tail phenomenon is already quite visible in places like Amazon and the iTunes music store. In the old days, when music was sold on vinyl records, and books were only available on dead trees, retail outlets (e.g., book-stores and record stores) only had room for a limited inventory, and were thus constrained to stock and sell only their most popular items. But now, iTunes carries an inventory of approximately 5 million songs; and in any given fiscal quarter, almost every one of those 5 million songs sells at least one copy. And if it turns out that almost all of those songs sell only one copy, who cares? They’re all just bits on a disk drive, and it doesn’t really matter when you transmit one copy or a million copies to the customers who want them.
So maybe the software-driven future of technology is one in which we benefit from a long-tail phenomenon of millions of individual apps on the various hardware devices we have in our pockets, our purses, our homes, and our offices. But if that is the future, we need to ask: who will actually write all of those apps? People who already consider themselves programmers? Depending on whose estimate you believe, there may be a few million such individuals world-wide today, and if they spent their evenings and weekends working on clever apps (assuming that each of them had a clever idea), maybe that would get us from the current level of 200,000 iPhone apps to a couple million. Beyond that, I have my doubts…
Indeed, if we think that the most interesting version of the future consists of dramatically more application programs, we need to imagine a world in which people other than “professional” programmers could create them. Computer programming is no longer considered “rocket science,” so we don’t have to restrict our attention to people with university computer-science degrees; indeed, they don’t have to have any university degree. Even if we imagined that new apps required basic literacy and the educational equivalent of a high-school diploma, that would still be a very, very large number of people … indeed, perhaps enough to get us to the level of 20 million apps a decade from now.
To illustrate that this is not as crazy as it might sound, consider that until the mid-1970s, almost any kind of non-trivial computation for business, scientific, or engineering purposes required a programmer, who would hand-craft a program in FORTRAN to produce the required computational results. Today, we refer to such a program as a “spreadsheet,” and we refer to the “programmer” who creates it as a “person.” I don’t know how many copies of Excel have been sold by Microsoft, but I’m willing to be that it’s far more than 20 million; and there are many more than 20 million spreadsheets providing useful results.
So perhaps what we’re saying is that software-related technological advances will come from the introduction of a “tool” as simple and powerful as a spreadsheet, with which ordinary people can create whatever app they might imagine for their mobile computing device (or, for that matter, any computing device). Maybe it will be a “mashup” tool, developed along the lines of Yahoo Pipes, or the tools available from Microsoft and IBM and others. Maybe it will be some kind of widget, template, or other mechanism.
I don’t know if this is how the future will turn out, and I can think of one reason why there might be no relationship at all between the world of spreadsheet-developers, and the world of mobile-phone app developers. Consider this: spreadsheets are generally created in order to solve a “real” problem — e.g., because someone wants to add rows and columns of numbers in order to make a business decision. I’m sure there are exceptions, but most of us would not consider a spreadsheet to be “entertainment,” or “fun,” or some kind of “game.”
But if you look at the items in the iTunes App Store, the vast majority are games, fun, or somehow related to entertainment. There are, again, lots of exceptions (I’ve got only one game, Klondike, on my iPhone), and there are lots of apps that provide serious, productive solutions to some kind of problem. But you can’t get away from the fact that most of the apps are for amusement.
Not only that, they’re not for the amusement of the person who created the app. Instead, the app-developer is hoping to persuade others to play his game, and join in the entertainment. If millions of people are thus entertained, and if they’re willing to spend $0.99 to download and play the game, then the developer gets rich. Conversely, if nobody likes the game, or nobody even notices its existence, then the developer makes no money — and is likely to conclude that he wasted his time…
As for the “productive” apps that one finds on a mobile device, a large percentage are simply scaled-down versions of the same app that one already has on a laptop or desktop computer. In any case, though, here are the categories of apps that I think we’ll see a lot more of in the next several years, some of which may well turn out to be as much of a killer app as spreadsheets and Google:
- collaborative apps — it may be the next generation of Facebook, Twitter, and other “social media” apps, or perhaps something like the newly-released Google Wave
- virtual-world apps — most current versions of computer games could be thought of as a “virtual world” in which player(s) battle enemies, search for treasures, etc. But I think these will become far more sophisticated and intricate (e.g., like Second Life, with social rules and currencies), long-lasting, and multi-player in nature. If it can be embedded into your mobile device, with the ability to call, text, or email to you (and from you), it’s easy to imagine that some players could essentially abandon the “real world” altogether.
- more “location-aware” apps — indeed, the collaborative apps, and virtual-world apps, become all the more powerful if they know where they (and their associated human “owner”) are located, as well as knowing where other relevant participants/players are located. Looking at my iPhone, I see that roughly 25% of my apps are not only location-aware, but are able to use that information constructively. I think we’ve only begun to explore this area, because it’s only been the last couple of years that our mobile computing devices have had GPS mechanisms attached. The question to ask here, I think, is not what the “killer app” will be in the location-aware space, but rather who is likely to invent it…
- assistant/agent apps — aside from alarm clocks and simple “filters” that tell us if a designated keyword has been spotted in a newsfeed, most of today’s apps are fairly passive. We have to tell them that we want a task carried out, and we typically have to provide a great deal of specific data in order for the task to be performed. Tomorrow’s apps will gradually accumulate more and more “knowledge” about the humans they’re “connected” to, in terms of likes and dislikes, habits, areas of competence and expertise, short-term vs. long-term goals, willingness to make tradeoffs and compromises, etc. As a result, tomorrow’s apps will be able to take a more active role, offering advice, guidance, companionship, and warnings. Again, I have no idea what the specific “killer app” will be in this area; but it’s the generation of today’s children and teenagers that I think we should be watching for inspiration.
