Features

Features > Web Apps Features > Dev

In the leadup to The Future of Web Apps Expo in London, I asked some of the speakers to give me their idea of what the future might hold. In the first article of this series, Jeremy Baines discusses moving web apps from the browser.

The internet would never have become the phenomenon it is today without the web browser; the simplicity of the browser concept allowed the Web to grow rapidly. Developers just had to write basic text documents using a simple markup language (HTML) and the browser took care of everything. As websites became web applications developers still did not have to deal with the complex task of building client applications in the traditional sense: make it work in a browser and anyone can access it without having to install any new software, no matter what device (or OS) they are using.

While the browser makes life easy in many ways for developers it also throws up certain challenges. Major software companies such as Microsoft, Adobe and Google are now trying to address these challenges, albeit in different ways. This article will focus primarily on the option of building desktop applications, what the key drivers and considerations are, and how this may affect the future of the web browser.

What are the Challenges?

The recent launch of Google’s web browser is the latest shakeup in the browser wars that have raged for over a decade. Of course, competition has been good for the evolution of the Web, by bringing us new technologies such as CSS and Ajax and driving adoption of web standards, but there has been some negatives.

The inconsistencies between browsers have always been a major headache for developers. What works in one browser doesn’t always work in another or, worse yet, works differently. Many of the latest web applications now utilise Ajax for a superior user experience, but unfortunately Ajax libraries are so bloated to handle cross-browser quirks that they can cause performance problems. Even with the latest “standards compliant” browsers a lot of time has to be invested in making web apps work and look the same across IE, Firefox, Safari, Opera, and so on.

Today’s web apps are complex and, perhaps, pushing the browser to its limit. Other technologies are emerging to try and help developers build the next generation of Rich Internet Applications (RIAs): Flash has been around for many years, but now Adobe offers Flex and Microsoft have given us Silverlight. In the context of the web browser these are great options and will certainly challenge the traditional mix of HTML, JavaScript and CSS as the standard way of building web apps.

These new technologies are still running up against one of the age-old challenges: the more browsers do to protect the user from viruses, spyware and the like the more these security barriers limit a web app’s interaction with the user’s PC. Uploading your latest holiday snaps to Flickr is a painful process, primarily because anything running inside a browser is abstracted from the user’s desktop.

In addition, a number of social networks and services have run into the other major challenge with browsers: if the user does not have the browser open with the site loaded and are looking at it they have no idea what’s going on in their network. This creates a level of separation between the app and the user which is problematic if part of the application’s benefit is live data.

What’s the answer?

The problem of keeping users up-to-date when the browser is not running (or the app is not loaded in the browser) has seen a raft of third party desktop applications pop-up. For example, just look at the array of desktop applicationss for Twitter (Twhirl, Twitterific, Snitter, Tweetr, Twitteroo), FriendFeed (AlertThingy, Sobees, Feedalizr) or Facebook (FizzBoost, Facebook Desktop Client). These are just a small selection from the vast number out there.

These have been made possible by, firstly, the growth in web apps providing developers access to their functionality via APIs and, secondly, by the increased ease of building desktop applications. While developers have been focused on the Web (browser) as the main app platform the major vendors have been working on ways to make traditional desktop application development faster and more accessible. The latest and most popular of these is Adobe’s AIR technology which allows developers to use the knowledge and skills acquired from building web apps to develop cross-platform desktop applications. Using HTML, JavaScript, and CSS you can now build a fully-functional desktop application with AIR that runs on PC, Mac and Linux.

Desktop applications have a number of advantages over those that run in the web browser. They provide an “always on” method of communicating with the user. AlertThingy, for example, can hide in the system tray, but pops up an alert in the bottom right corner of the screen whenever a new notification comes in. They also have far greater access to the users’ system than anything running within a browser: uploading files suddenly becomes as easy as drag’n’drop; user data can be saved on the user’s machine; and the app can continue to work without an internet connection. These benefits can be put to incredibly powerful use in building feature-rich apps that provide a great user experience.

Providing users with a web-based interface and a desktop version with additional functionality is not a new idea, nor is it the preserve of Web 2.0 start-ups. Microsoft Outlook, with its companion web app version, Outlook Web Access, is a well-known example of this, having been around since 1997. Fortunately, the technology available to developers has come a long way since 1997: a benefit of Adobe Flex is that the exact-same app can be hosted within AIR or the browser; you just have to disable certain features in the browser. That’s both options covered with very little extra work.

The traditional difficulties associated with building desktop applications are done away with with technologies such as AIR. Not only can you use web development skills to build a desktop application, but the runtime also takes care of features like the ability to have the application automatically update to new versions. By building within a runtime, the developer does not have to worry about the awkward plumbing of desktop apps, such as minimizing to the system tray. Plus, Dreamweaver suddenly becomes a desktop development IDE!

Important considerations

There are some important questions to answer when deciding to build a desktop application. The first is whether it is really necessary. Many web apps work perfectly well within a browser and would not add any benefit for the user by having a desktop version. Building a desktop application just because you can is not a valid reason.

Next, however easy it is for a user to install an application there is still the question of whether they will. Some are put off by the idea of installing something on their machine and will choose not to. You are adding one more barrier to entry that does not exist with traditional browser-based web apps. Will the user see the benefits and that they outweigh any reservations they may have?

Finally, it is important that as an industry we do not go crazy building desktop apps. The swelling numbers of Twitter, FriendFeed, Jaiku, etc. desktop clients is already creating problems for users who do not want (or have space on their screen for) so many apps. When we released AlertThingy, we received a lot of feedback from users asking us to add certain features just so they could stop using one of their existing desktop apps and use AlertThingy instead. This takes us back to the issue above: will users want to install the app? The more apps they have the more challenging this becomes.

One area in which this can be addressed is that there are different types of desktop app. If your potential app is providing basic information requiring little user interaction or a small amount of screen space then Mac Dashboard widgets or Vista Sidebar gadgets are a great option. They are easy to develop (again utilising web technologies), lightweight and easy to install.

Is the browser a dead man walking?

I mentioned earlier Google’s latest browser, Chrome, which comes bundled with Gears. It is an attempt by Google to increase the install base of Gears and drive development of Gears-based apps. They are certainly highlighting other features of Chrome but Gears is most likely to be Google’s motivation for investing in their own browser, especially as it will benefit their own applications, such as Google Docs.

This situation is interesting because Gears attempts to overcome the issues discussed above, like Adobe AIR, but using the browser instead. This strategy could mark a new dawn for the web browser, which some believe will lead to it replacing the desktop OS (or at least rendering it redundant) but consider this: the Web is more than the browser, so much more, and with the growth of APIs and web-enabled platforms should we not look beyond the browser as the only client in future?

The first generation iPhone used the Safari browser as its application platform for third-party developers. This had limits and developers were desperate to be able to build native iPhone apps. Apple has now given developers that ability through the iPhone SDK. Many of these iPhone applications will be web apps (communicating with server-based applications) but not browser-based apps. We have seen a much more rapid growth in these types of applications compared to the previous Safari-based ones. And it’s not just the iPhone, surely a Java app on a Nokia phone is more powerful than anything running with the phone’s web browser?

As our TVs, cars and even fridge-freezers become internet-enabled the reach of the web app grows, but many of these devices will never have a browser. I have always found it strange that people think of what they see in the browser as the internet but not their email. As we move forward developers will be focusing on building internet applications, rather than browser-based apps, which can be accessed by a multitude of more powerful native clients on different platforms.

With Chrome joining IE, Firefox, Safari and others the browser war is set to rage on but the glory days of the web browser itself may be past.

The Future of Web Apps returns to Miami on 23 and 24 Feb 2009. The awesome speaker lineup includes Michael Arrington, Daniel Burka, Jason Fried, Joel Spolsky, and Gary Vaynerchuk. Book now as there are a limited number of conference passes for just $200 (normally $395) - be very quick as they won't last long!

17 Responses to “How To Solve A Problem Like The Browser”

  1. Leezl says

    One Adobe Air app not mentioned that works better than Twhirl is feedalizr, they have just released a new beta with full Twitter, Friendfeed, Flickr and Jaiku support. http://www.feedalizr.com

  2. Simon Mackie says

    Thanks Leezl. Feedalizr is actually mentioned in the article but not that it can also work with other apps apart from Friendfeed. AlertThingy also has the ability to work with other apps, like Twitter, too. This is what Jeremy was talking about here:

    When we released AlertThingy, we received a lot of feedback from users asking us to add certain features just so they could stop using one of their existing desktop apps and use AlertThingy instead

    - certainly desktop apps that can integrate all these feeds are more useful than having multiple desktop apps.

  3. Erland Flaten says

    I feel that both the browsers and the html has come to an end. Its too difficult making pages and the tech people using to many hours fixing stupid bugs. Many web applications like facebook is way to complex in code and many content mangement solutions could have been much bether as an desktop application.

    W3C works as slowly as some of worst UN-comittes and isent close in keeping up with whats need. Put HTML5 in that particle accelerator - and bring Microsoft for spinn aswell :)

  4. Henry Ho says

    Dreamweaver suddenly becomes a desktop development IDE!

    No, FlexBuilder (aka Eclipse + Adobe Plugin’s) did.

    btw, am I really the one who has problem with math? Stop insulting your blog visitors. :)

    WordPress database error: [Table ‘carsonified_vwp.wp_posts’ doesn’t exist]
    update wp_posts set comment_count = (select count(*) from wp_comments where comment_post_id = 129 and comment_approved = ‘1′) where ID = 129
    Sorry, it seems you didn’t pass math!! Please hit the back button and try again

  5. Simon Mackie says

    @ Henry, that’s the second report we’ve had about the math question spam protection not working. I will look into it.

  6. JeremiahTolbert.com » Blog Archive » links for 2008-09-19 says

    […] Vitamin Features » How To Solve A Problem Like The Browser (tags: web toread browser forblog) […]

  7. Colin says

    Simon, I get that database error 8 times out of 10. Seems to have to do with the answer expiring before I post, maybe because I’m a slow reader :)

    It’s a bit intimidating, for me personally, to think about entering these new realms beyond the browser, but no reason it won’t be for the better.

  8. Simon Mackie says

    Thanks Colin - I will get our developer to take a look.

    Personally I’m really looking forward to this new era of ubiquitous internet - the possibilities are quite exciting (as we’ll see in one of the upcoming articles)

  9. Dainis Graveris says

    Thanks for the review. It’s big questions about all those browser wars, but we’ll see in future..

  10. Keith says

    Why not just have the “new and improved” W3C be responsible for the development of THE rendering engine for browsers. Then browsers would license that engine and wrap it in whatever chrome they wanted to differentiate their browser. In that way, you’d have a system where all browsers will interpret standards compliant code in the same way as a baseline.

    Until we get to that point, I’m not sure adding in supporting technologies is worth it.

  11. Think howard/baines | Howard Baines says

    […] The nice people at Carsonified have just published another article of ours over at think vitamin […]

  12. Robin Massart says

    “I feel that both the browsers and the html has come to an end.”

    No they are not. Web browsers and HTML are about content, not applications. HTML is perfectly OK to do what it was designed to do: delivery content across the internet in a medium that anybody can read and write (a plain text file essentially).

    The problem is that HTML is being asked to fill the void created by the fact that there is no other tool that essentially 100% of users have on their OS. Rather than asking people to download and install a custom web app everything happens through the browser because:

    a) it is easier that way for the end user (up to the point that the UI gets to complex for a browser)
    b) how many end user’s would be happy installing a zillion apps to be able to use the zillion of web apps sprouting up on the web

    I agree with Keith, that there should be only one rendering engine sponsored by the W3C and let browsers then supply all the bells and whistles to enable developers to make web apps.

    I sometimes feel that many in the web community have forgotten what HTML is actually for, as well as ignoring the fact that most content on the WWW is actually just that: content. Not applications.

    The way forward is through API’s and desktop widgets, but the initial contact with a web app is likely to always be the browser.

  13. Simon Mackie says

    I’m not sure I agree with the one rendering engine idea. Yes, it would mean that your site works consistently for everyone, but without competition, it would stagnate.

  14. Robin Massart says

    Why would a “one rendering engine” stagnate? Presumably if the W3C were mandated to maintain it then it would always be up todate. Browser development is still about who renders best when 100% spec compatibility should be a given. Browser vendors could then concentrate making their browser more usable and be innovative in browser usability rather than html rendering.

  15. Simon Mackie says

    Maybe stagnate wasn’t the best choice of word, but the thing is that competition helps drive innovation, improving performance and efficiency.

  16. Keith says

    By freeing browsers to compete on features, not standards, you’re actually allowing them to focus on features, performance, and efficiency.

    Look at Flock, not necessarily as a rousing success, but more as what a company was able to do with a core browser technology in terms of integration features for people who love the social web. Now consider if you had major browser players focusing on those kinds of products, while smaller companies could dive in with niche products.

    I think you’d foster more competition rather than stifling it.

  17. insidesqa says

    We should definitely be looking at addressing compatibility issues within browsers rather than investing in a multitude of widgets and desktop apps. Developing a browser so that it can provide the same real time up to date info that folk require is also a possibility. With firefox and the 100s of add ons that I have installed gives me a lot more freedom.

    What I would like is a browser whose configuration I can save in an online account that gives me the same config on any PC. Widgets and desktop apps chain you to an individual PC.

Leave a Reply

Basic HTML (<strong>, <em>, <a>, etc.) is allowed in your comments. Please be respectful and keep your comments on-topic. If we think you're being offensive for no reason, we'll delete your comment.

Comments RSS