How do CouchApps work?
What are the benefits of building CouchApps?
Bradley Holt: Streamlining of your codebase (no middle tier), replication, the ability to deploy/replicate an application along with its data, and the side benefits that come with going “with the grain” of how the web works are some of the benefits of building CouchApps.
To be perfectly honest though, I don’t think CouchApps are quite ready for widespread developer adoption yet. The biggest impediment is tooling. The current set of development tools need refinement, and the process of building a CouchApp can be a bit difficult at times. The term “CouchApp” can also have many different meanings. That said, the benefits of CouchApps are compelling and the tools will catch up soon.
HTML5 addresses a lot of storage issues. Where does CouchDB fit in?
Bradley Holt: The HTML5 Web Storage specification describes an API for persistent storage of key/value pairs locally within a user’s web browser. Unlike previous attempts at browser local storage specifications, the HTML5 storage specification has achieved significant cross-browser support.
One thing that the HTML5 Web Storage API lacks, however, is a means of querying for values by anything other than a specific key. You can’t query across a set of keys or values. IndexedDB addresses this and allows for indexed database queries, but IndexedDB is not currently part of the HTML5 specification and is only implemented in a limited number of browsers.
How does CouchDB’s replication feature work with HTML5?
I’ve heard J. Chris Anderson use the term “ground computing” as a counterpoint to “cloud computing.” The idea is to store a user’s data as close to that user as possible — and you can’t get any closer than a user’s own computer or mobile device! CouchDB’s replication feature makes this possible. Data that is relevant to a particular user can be copied to and from that user’s own computer or mobile device using CouchDB’s incremental replication. This allows for faster access for the user (since his or her application is hitting a local database), offline access, data portability, and potentially more control over his or her own data.
Now that CouchDB runs on mobile devices, how do you see it shaping mobile app development?
Bradley Holt: While Android is a great platform, the biggest channel for mobile applications is Apple’s iOS. CouchDB has been available on the Android for a while now, but it is relatively new to iOS. Now that CouchDB can be used to build iPhone/iPad applications, we will most certainly see many more mobile applications built using CouchDB in order to take advantage of CouchDB’s unique features — especially replication.
This interview was edited and condensed.