Computers are interesting devices. They’re easily one of the most influential inventions mankind has ever produced, and are crucial to almost everything we do today. From smartphones to tablets to Google’s massive servers around the globe, computers come in all shapes and sizes and are used for a mind-boggling array of tasks.
What sets apart computers from the wheel, hammer, engine, and other major inventions of humanity is the varied ways a computer can be put to use. They can calculate the amount of fuel needed to get to the moon, animate characters and render picture-perfect landscapes, and let you talk with friends around the globe. Computers don’t do this on their own, though. The special thing is the software or apps that run on them. Without software, computers are simply black boxes.
So what makes one type of software different from another? Why would you choose web apps over native applications, and why does it really matter?
The Traditional Software Landscape
If you’ve used computers for any period of time, you’ve likely installed software the traditional way. Best Buy, Walmart, and many other big box retailer used to carry rows of software in boxes, complete with disks, user manuals, and a dozen license and warranty papers you never touched. You’d pop the disk out, walk through the 35 step install process, and hope it didn’t corrupt your registry in the process. Or, if you were lucky enough to get started in computers before CDs were prevalent, you might have installed Office from a stack of 25 floppies. There were so many things that could go wrong: a floppy could be broken, you could have the wrong version of your operating system or drivers, or a dozen other problems.
But, for all of the frustrations, we still installed software. Sure, you could just use Paint and Notepad on your new HP. But the true promise of your machine lay with your software. Mathematica turned your computer into a research lab, and Photoshop turned it into a dark room. The frustrations and steps were worth it.
Autocad, Office, Adobe Suite, and more made computers essential to business
An Island to Itself
Still, traditional software had a number of major problems. If you were a Mac user in the ’90′s, there was an increasingly limited number of applications to buy, and everyone expected you to be able to run PC software. Interestingly, the opposite is true today. Either way, you are limited on what you can do based on your platform.
Then, sharing files from desktop applications has always been frustrating. A Word document from one version with its own settings would often look much different on another version of Office. Even your Photoshop files might not look the same on another computer if they don’t have the same fonts. And who hasn’t been frustrated trying to get a home network running just to share files between computers?
The joy of sharing files
The Promise of the Cloud
Enter web applications. Ubiquitous broadband connections and faster browsers led developers to create increasingly sophisticated web sites that worked much like traditional desktop programs. Web sites were originally static pages of text and images, but even news sites today are often powered by content management systems with sophisticated formatting and layout tools that rival word processors that were cutting edge little more than a decade ago.
These web apps offered many advantages. They could run in almost any browser, no matter if you were using Windows, OS X, Linux, or some future OS no one had ever heard of yet. They didn’t take 30 steps to install, and you didn’t have to drive across town to buy them. Drop your computer down the stairs, and you could be up and running with your web apps from your friend’s computer in seconds. And sharing files was no hassle; in fact, most web apps were fully designed around being collaborative.
Realtime collaboration without emailing Excel files back and forth
Web apps have made our computing experience less tied to one machine than ever before. And increasingly, they don’t skimp on features just because they’re in the browser. HTML5 is bringing hardware accelerated applications to the browser, and a growing number of apps are using it to let you use your favorite web apps even when you’re offline. They’re far from perfect, but if you’ve been using an OS that feels left behind by application developers or often switch between different platforms, the ability to run the newest stuff on any computer is magical.
Losing Your Computer’s Advantage
But cloud apps still have several major problems. First, for the most part, they only work when you’re online. Offline web apps are coming, and some like LucidChart already work great even if your internet connection is down. In general, though, even with offline web apps, you’re still dependent on the service to stay online. If Adobe went out of business, you could keep running Photoshop, but if Aviary went out of business, you’d never be able to use their apps again.
Then, they make your internet connection and your browser’s speed the main differentiator in your computing experience. A brand new Core i7 computer will not feel any faster than an Atom processor if your internet connection is sluggish. And for most web apps, snazzy new hardware such as an accelerometer or a touchscreen won’t make your experience any better. Web apps are optimized for everyone, not for specific machines. While this has its advantages, it can be a problem too.
Native apps can make the most of your hardware (pictured: Labyrinth 2 for iPad)
Native + Cloud: Better Together
So what’s the solution? Should we give up on web apps, or should we be content to get a sub-par experience with them? Apple’s App Store on iOS and Macs has proved that there’s still a world of amazing applications that run natively on your devices, and most of us are excited to try out the latest ones. They’ve even gotten easier to install, thanks to online distribution. But then, at the same time, we’d be lost without Google Apps such as Gmail, and most people spend more time in their browser than in any other program. And without web apps, it’s not getting any easier to use the same apps on all platforms.
But for web apps to win, native apps do not have to disappear. Instead, they can work together, each bringing the best parts of their own platform. Native applications can take advantage of your hardware, while web apps can take advantage of the network. A good example of this might be office apps. Anyone that’s used the latest versions of Microsoft Office or iWork knows that they can make much nicer looking documents that Google Docs. But then, try collaborating on a product plan with a colleague, and suddenly the magic of Google Docs comes clear. It isn’t the best page layout tool, but it sure is great for working together on a document or saving a spreadsheet of data where everyone can access it. There’s a place for both, and you’ll get the best use of your computers and time by leveraging both apps for their own best uses.
Cloud App uses native apps for system integration, and the cloud for sharing and collaboration. Win/Win
Then, an increasing number of apps are designed by default to work with the cloud. Simplenote is an incredibly simple service for saving notes, but it wouldn’t be anywhere near as popular if it was only a web app. Instead, its native iOS and desktop apps such as Notational Velocity have made it indispensable to many of us. You’ve got the best experience of native apps (keyboard shortcuts, integration with other apps, data saved locally and offline), but with the great features that web apps can bring (works on any platform, designed for sharing and collaboration, data stored centrally so you’ll never lose your work).
Cloud + Native apps together give you a great experience everywhere (pictured: Simplenote in native apps)
That, in my opinion, is the future of apps: a world where native apps and web apps work together seamlessly, and everyone gets the best of both worlds. We’ve had it for years with email, which has been one web app that’s always worked great with native apps. With increasingly powerful web apps, and native apps that integrate with the cloud, you shouldn’t have to choose between the cloud and native functionality.