Editor’s note: This article is a reaction to a statement made by investor Marc Andreessen (of Andreessen Horowitz) in a recent interview with Wired in which he stated, “The application model of the future is the web application model. The apps will live on the web. Mobile apps on platforms like iOS and Android are a temporary step along the way toward the full mobile web. Now, that temporary step may last for a very long time. Because the networks are still limited.”
In doing some research for an upcoming story on the subject, I asked a few developers, investors, stakeholders and entrepreneurs for their take on Marc’s statement and got some great responses (to be published soon). One response, however, was so impassioned that I felt it deserved it’s own post. So, here is why Jeff LaMarche, author and CTO of software development firm MartianCraft, feels that Mr. Andreessen is wrong about the eventual death of mobile apps:
Andreessen is wrong. There have been those within the tech industry who have, since the earliest days of the web, been pushing this idea that the network will supplant the computer. That world is always right around the corner. Remember Sun’s old motto, “The network is the computer”? Back during the dot com boom, we were constantly being promised by companies that soon every computer would be a network computer. A thin client. A dumb client. There was a hard sell going on concerning the value of network hosted applications. Even after more than a decade, there are people still grasping at the idea. Look at the ChromeBook.
But, regardless of the merits of remote apps as an idea, it’s just not realistic for mobile devices. We’re not just talking about infrastructure that needs to be upgraded and expanded, we’re talking about limitations imposed by the laws of physics. To reach a point where an “always connected” device is truly always connected – even in basements and sub-basements, even in old brick and steel buildings, even in the most remote rural areas – requires more than simply adding or upgrading cell towers. Short of a breakthrough in our understanding of physics, there will always be places where your device can’t access the network reliably or at all. There will be less of those places over time, but they will exist.
The “web application model” is a great model for many purposes. But it’s also terrible for some apps and never offers the best experience on all hardware. It’s a compromise solution. It’s a very good compromise solution, but it is a compromise.
Think about it: Do you really want your phone’s functionality dependent on a connection that can and will get lost at times? When you’re traveling abroad, do you really want to have to pay roaming charges to do tasks that your phone is perfectly capable of doing itself? Do you want to lose access to your applications when they close the door of the airplane or your train goes into a tunnel? The idea that we all buy and carry around these amazingly capable little computers in our pocket, but should be dependent on other computers sitting in a data center somewhere for everything is kind of silly if you think about it.
Web apps are also abstracted from the hardware, so web applications generally can’t take advantage of new hardware for some period of time after that hardware becomes standard in the industry. Accelerometer, GPS, compass… none of these things could be supported by web apps when they were introduced. Without native apps, that means new hardware isn’t going to be available in most apps for some period of time. The simple fact of the matter is, native apps are closer to the hardware. We can access new hardware features as soon as they are available (and sometimes can code for them before they are available), and we have the ability to fine tune for specific hardware to maximize performance. We can almost always provide a better experience with less battery impact because we’re not abstracted away from the hardware and trying to write a one-size-fits all solution.
There’s no doubt that web apps (and, by that, I mean web front-ends, as I assume Andreesen does) are a model of the future. They will continue to be useful and a regular part of daily life for a long time. But they are not the one and only model or even the main model of the future, at least not anytime soon. Web apps are only a piece of a very large puzzle. Anyone arguing that they should be the entire puzzle probably has something to gain from everything being a web app. It’s no coincidence that usually the people telling us that web apps are the way of the future stand to profit from a world where we don’t own our apps and we don’t own our data.
Lastly, I’m not sure why people feels this need to cast the situation as “web apps versus native apps” They’re not really in direct competition. There’s overlap, sure, but they’re not the same thing and neither is perfect for every situation. There are a great many web apps that also have native platform clients. This allows companies to fine-tune a really great experience for the most popular devices (right now, iOS and Android) while, at the same time, making sure their service is available to everyone without having to separately write clients for every platform and operating system. On the other hand, there are many applications that simply be can’t be done as web apps, such as games and other processor-intentsive applications.