Zachary Kessin: There isn’t a line you can draw and say that things on this side are “web pages” and on that side they’re “apps.” It’s more of a common-sense definition: Google Docs is an app, Wikipedia is not. If I had to define one factor, it would be how long do you go between page loads? In an app, you may work for an hour or more before reloading the page.
That being said, many of the ideas behind apps can be used in web pages to improve the user experience. For example, having an office wiki that cached the data on your local computer so you could use it offline would be a very useful feature.
How much programming experience do you need to take on HTML5 app development?
Zachary Kessin: There are two key things you need. First, an ability to do some amount of functional programming, and second, you need an understanding of asynchronous operations. In a web app, there are lots of times when a function does not return a value; it takes a callback that is called at some point in the future when the value is available. This takes some getting used to and it can often hit you in a strange way.
- Directly using the DOM. It is buggy and a pain to use. Use jQuery instead.
- Overuse of the global name space, by design or not understanding things. Keep things lexically scoped.
- Not using JSLint. I can think of so many problems that would be caught in advance with JSLint.
Zachary Kessin: The state of the local storage interfaces is kind of a mess. We’ve got IndexDB, SQLite and a few others, and it’s not quite clear what to use. The vendors need to get their acts together there.