Has anyone else noticed that native clients are back in vogue? For several years now the conventional wisdom has been to move applications to a Web browser interface. Whenever I talked about native clients people would scoff, even though native clients still provide a richer experience than a Web browser interface.
Don't misunderstand me. I see huge value in building applications as Web services and offering a rich Web-browser-based interface to those applications. But for a long time I've disagreed with the conventional wisdom that one day all applications would only be available via a browser interface. (Much as I disagree that all software will be sold as SaaS, but that's a topic for another time.)
Just as browser based applications have advantages and make sense in many cases, so do native clients. Both will continue to exist. The world is not going to be only accessible through the Web. I don't have an iPhone, but my wife does. Notice something about the iPhone? It has native clients for Facebook, Twitter, Google, Youtube, EBay, and many others. Aren't those supposed to be Web applications? But Web application now means more than just a Web browser interface. They have Web services APIs (as they should). Although they are often accessed through a Web interface, the interface that works best and makes the most sense on the iPhone is a native client. My Blackberry is loaded with native clients for Twitter, Typepad, Google and many others. There's nothing wrong with that. It's the best way to build an interface for those applications on those devices.
Think about one of the most popular "Web 2.0" applications: Twitter. How many people use Twitter via a native client versus a Web interface? More than half. A Web browser isn't always the best interface to an application. At Medsphere we built a cross-platform client in C#/Mono that runs on Linux, OSX and Windows. Cross platform clients used to be hard because every client was custom. Today it's much easier to develop once and run anywhere.
I predict that more native clients will proliferate. Developing native clients is just getting easier. And given the choice, what application wouldn't prefer to be running in a native client and deliver seamless integration with the user's desktop?
Until recently the native client and Web interfaces were built in completely different technologies. So even when we developed a native client we needed a completely different development effort for a Web client. That too is now changing. With Appcelerator's recent release of Titanium we can write once for both native and the Web. (Disclaimer: I'm an investor in Appcelerator.) That means there's no excuse for not doing both a native client and a Web client for every application.
So if you thought the Web browser was going to kill the native client, think again. We're going to have both for a long time to come.