Sunday, December 06, 2009

App Stores and iTunes versus the web

The app store or catalog (such as Apple's iTunes) is an alternative model to web apps. It's a closed platform where all the options are controlled by a central provider. However it's getting massively popular, to the extent that every mobile phone provider has to have one, and it's even seen as the saviour to several industries such as music (iTunes) and news (e-Readers or tablets).

I dislike this model. It's a way for corporations to increase their profits by creating artificial limits on what users can see and do. Even those app stores built with HTML and CSS (such as WebOS or Symbian3) remove the great power of the real web: the ability to hyperlink, search, aggregate, and mash-up.

So, why is the app store becoming so successful? A number of reasons:

  • Higher performance apps, using the device's native hardware. Browsers are still slower in many cases than native software
  • Access to the phone's full features such as camera, accelerometer, etc. Browsers still can't do much of this
  • Great development and design tools that the web still can't match
  • An easy way to get paid - compare the user experience of paying for an app versus registering on a new website and then typing in your credit card details

The only way the web can respond is to build on its strengths, and fix its weaknesses. In fact, some of this is already under way. Browser performance has improved hugely in the last few years, HTML5 is bringing new APIs including geolocation, native video and 3G graphics, and new developer frameworks such as Ruby on Rails are improving development practices.

There's a long way to go before the web can completely beat proprietary developer frameworks. Perhaps the most important gap is the bottom line: sorting out payments on the web, which are currently so frustratingly difficult.

Only with concerted effort among all parties - browser makers, web developers and service providers - can the web win against the app store.

Sunday, November 22, 2009

Identity and the browser

Identity is a big problem on the web. People have to set up endless usernames and passwords for each website, type the same basic information (name, address etc) into each one, remember passwords and change them regularly, and a hundred other tasks.

Recently there have been some improvements. OpenID has emerged as a standard way to assert identity, and oAuth a secure way to share personal data from one website to another. Google Friend Connect and Facebook Connect have emerged as identity hubs to enable users to share basic information.

Despite these breakthroughs, the problems remain. In fact, Google Friend Connect and Facebook Connect raise the spectre of monolithic corporate control over people’s identities.

Instead, I think much of identity should belong in the browser itself. After all, the technical term for a browser is “user agent”. It knows exactly which websites you are logging on to, and how. It should be able to negotiate account details and passwords on the user’s behalf.

Here are some of the aspects of identity I think browsers should handle:

  • Log on to websites automatically for you, managing passwords and automatically changing them regularly
  • Managing basic account data e.g. name, address, bank details, etc, and which websites have access to it
  • Presence & syndicating it to websites chosen by the user
  • Incoming notifications & managing who can trigger them

Mozilla have recently begun work on several of these areas. I think that’s a great move; as a non-profit dedicated to improving the web, they have the right attitude and trust. This could go in two directions; either corporate control over people’s identities, or enabling users to get better control themselves over their online identity. I sincerely hope it’s the latter!

Saturday, November 14, 2009

Chrome OS and Android

I was surprised when Android was announced, because it didn't seem to fit with Google's principles. Not only was it client software, not cloud software to which Google had previously confined themselves, but it also created a new platform, separate to the web.

Google's search and ads have tied its fortunes to the web, and their management knows it. They dominate their industry so much that the only way to increase their revenues is to get more people using the web all the time. To achieve this, they they need not only to innovate themselves with web apps such as Google Maps or Gmail, but to nurture an ecosystem of Silicon Valley startups to work on web applications rather than on any other platform. They do this using a combination of Google Ads (providing revenues to startups), funding browser developers such as Mozilla, web developer evangelisation (such as spreading the word about Ajax) and careful purchases of the best startups.

Since Android was announced, this focus on the web has increased. Recently Google announced it is putting all its energies behind HTML5, to bring new capabilities to the platform such as video, geolocation and graphics. They have created a new browser, Chrome, and promoted it hugely on the Google homepage.

So why on earth create a new mobile operating system? Now they have to build a new developer ecosystem using the Android Marketplace. These aren't web apps, therefore Google doesn't get the same search or ad revenue. And it takes the focus in Silicon Valley away from the web.

Of course, there were good reasons for Android at the time - fixing the lack of good competition for Apple, persuading the network operators to invest in data networks, and attempting to fix the broken industry structure especially in the US. And Android is increasingly successful. But I still believe that it's the wrong solution for Google to the original problem.

Now Chrome OS is about to be released. It's another client OS, but this time the operating system is simply a web browser. No distractions from the web, no separate platforms, but still a way to shakeup the computing industry in Google's favour.

For once, I think Steve Ballmer was correct about Chrome OS - "It’s incompatible with the one operating system they have shipped. To me, still, I don’t understand why they needed another one. They must have gotten the first one wrong."

Despite it's current success, I think they did get Android wrong. There must be some huge arguments within Google about the correct model, but Chrome OS is the one that fits with the rest of the company. Time only will tell how the two operating systems sit together, but I wouldn't bet on Android surviving for longer than it takes to get Chrome OS powerful enough to drive a phone.

Saturday, March 14, 2009

Telephony and the web

In the last few weeks, the web has finally started to encroach on the last holdout communications medium: the telephone. One day soon, most telephone calls will take place via Facebook, Twitter and Gmail, instead of your phone's inbuilt address book.

Internet telephony has already been through one massive hype cycle without great results:

  • Skype is only real global success with consumers. Not web-based. Proprietary.
  • Back-end infrastructure has been converted to IP, especially for business use and internally in telcos. But from the consumer's perspective it's still a separate network.
  • Endless Voice over IP start-ups have now failed. There was clearly a missing ingredient - they focused on back-end technology e.g. SIP, not the consumer side, and they couldn't take advantage of network effects. Also, what advantages did they provide from a consumer perspective except reduced cost?

Most revealing for me is the phrase 'unified communications' in the telephony industry - it's been a mirage because they never unified with the web, surely the most important communications medium of all!

A new wave of innovation has started in Silicon Valley and this time I think they're on the right lines. Recent news includes:

  • Native browser support for audio and video, in Safari 4.0, Firefox 3.5 and Chrome 2.0 is coming very soon. This enables browser-based conversations without plugins such as Flash.
  • Phweet - integrates phone calls with Twitter
  • Mikz - web-based access to your mobile phone call data
  • Twilio - web platform for making & receiving calls, suitable for integrating into websites.
  • Google Voice - web-based call management tool, due to be integrated with Gmail

You can see where this is going. The web is taking over most other communications mediums (TV, newspapers, letters, email) and telephony is up next. Telcos were never able to deliver the vision of a unified suite, centered on the address book, where customers could communicate with each other. It's now the turn of the web and its social networks.

Saturday, February 28, 2009

Browser competition

Of all applications, the browser is now by far the most competitively fought over. Four major organisations are each spending around $50-100 million annually on a free product, with regular upgrades due in the next few months:

  • Microsoft: Internet Explorer 8 with a totally re-written browser engine
  • Mozilla: Firefox 3.1 with fast performance and new functionality like native audio and video, plus the release of Firefox for Mobile.
  • Apple: Safari 4 with new standards support such as a native database and fast performance
  • Google: Chrome 2.0 with a streamlined interface and fast performance

Somehow the browser market has avoided the featuritis that burdened office applications with endless menu options. In fact, browsers have got much simpler; three of the those above don't even have menus. Instead the focus has been on turning the browser into a great platform for developers: javascript performance may soon approach Java in speed, and support for new developer features such as advanced CSS styling and APIs such as geo-location enable new applications.

Most of the browsers above are open source - the only exceptions are Internet Explorer and the user interface of Safari. Browser vendors have cooperated over the HTML5 and CSS3 standards. They also have common test suites and performance tests such as SunSpider. But they haven't cooperated as much as they could.

For example, Firefox and Safari have produced competing web developer tools (starting with Firebug for Firefox, and Web Inspector for Safari). They are writing competing javascript engines and debuggers.

Perhaps a bit more cooperation would help them both move forward faster. Why not agree on a standard tool for developer help (perhaps based on Mozilla's documentation), or a standard text editor (based on Mozilla's Bespin)? Perhaps Google could take the lead with process separation, and Apple with profiling tools. None of this would prevent further competition in the main browser engine, but it would ensure rapid progression for everyone.

Sunday, February 15, 2009

Mozilla's web developer tools

Mozilla are best known for their browser Firefox but they're creating a steady stream of great web development tools, the latest of which was unveiled last week. Bespin is a new web-based extensible code editor with integrated command line. Although it's a very early version and lots of kinks remain (including too much inaccessible HTML5 Canvas usage), the team have already accomplished one of their first objectives, which is to prove how capable browsers now are. Could web development tools one day provide the second 'arm' of Mozilla?

Other development tools managed by Mozilla include:

  • Firebug, for inspecting and editing CSS, javascript and HTML
  • Bugzilla, for release planning and maintaining issues lists
  • Mozilla Developer Center, for documenting web standards such as HTML and the DOM
  • jQuery, a javascript library for cross-browser web development

Tools for web development fit naturally into Mozilla's goals for extending the reach of the open web. In fact it seems strange that Mozilla don't have more competition in this area - there is a surprising lack of offerings from Yahoo, Microsoft, Amazon and even Google, especially considering how tools can be used to bind developers towards vendors.

I hope that Mozilla's plans for Bespin are ambitious, because I see it as the centrepiece for all their development tools. Imagine if you while editing your code you could click once to find help in Mozilla Developer Center, again to visualise the results via Firebug, another time to track your bugs in Bugzilla and finally to resolve DOM issues using jQuery. In this way, Bespin can integrate all Mozilla's tools together.

I would also add additional tools to the slate, all of which should integrate back with Bespin. For example:

  • Version Control System (e.g. hg, git) integration - create a fork or merge at the click of a hyperlink
  • Validation / Best Practices - automatically check all your code against standards or best practices such as jslint
  • Web design - online tool for visualising and editing site design
  • Security - automatic checks for common flaws such as XSS

Such a suite would constitute a second 'arm' of Mozilla. It would perhaps also provide a second source of funding for the organisation, with the support of web companies that use the tools. It could certainly improve the productivity of hundreds of thousands of web developers, while spreading standards and best practices. It's a very ambitious goal, but Mozilla has already proven capable of delivering great tools like jQuery and Firebug that now dominate their markets.

I believe it's time for Mozilla to take a step up and treat development tools as a priority alongside Firefox itself.

Saturday, January 31, 2009

Dell and smartphones

The latest rumours indicate that Dell are about to introduce a line of smartphones. Despite the incredible competition in this area, Dell's move makes great sense.

That's because of the convergence of computing to common standards. Smartphones are now mini computers, capable of running the same platform as desktops. Vendors should gain economies of scale by copying Apple, who use Mac OS across its product portfolio, from the iPhone to the iMac.

Dell has two choices for platform. It could choose the one it's worked on for the last twenty years - Windows. Or, as rumoured, it could choose Android.

If Dell chooses Android, this would be a reflection of Microsoft's weakness in the mobile space. But it could also be a harbinger of more to come; why couldn't Dell also use Android for netbooks, even eventually PCs?

I've already predicted further consolidation between the smartphone manufacturers and laptop manufacturers. Now the industries are converging, there are far too many companies around. Dell will struggle to achieve smartphone market share on its own before the market consolidates around it. If Dell is serious about becoming a major provider of smartphones, it should acquire to gain scale and expertise.

Thursday, January 29, 2009

Firefox 3.2

Well, I know that Firefox 3.1 is still a month or two from shipping, but I've already got a wishlist for the next version.

Since last summer, Mozilla has been on a hiring spree and momentum has really picked up. So I've been ambitious and included some big improvements.

Firstly, user interface enhancements:

  • Speed dial for the new tab page.
  • Cleaning up history and bookmarks. There's the history sidebar, the bookmarks sidebar, the history menu, the bookmarks menu, the bookmarks toolbar, and places. And none of it integrates with Delicious or Digg.
  • Get rid of the "file / edit / view ..." menu. Chrome did it, IE7 did it, surely Firefox can do it too.
Second, additional standards support: Finally, improvements to the browser:
  • DOM & regexp speed improvements. Further extending the new-found speed of javascript.
  • Native support for Weave, allowing us to share our history and preferences between computers and trusted websites.
  • Native support for OpenID. What a great way to improve and simplify everyone's online lives.
  • Process separation between tabs. Chrome and IE have reaped the benefits, including speed and security.

I told you it was ambitious!

Tuesday, January 13, 2009

Announcing about:history

Recently I've become convinced that desktop browser interfaces are too complex. Menus, options, tabs and sidebars are a legacy of browser wars, with each side adding many new features; it's also a reminder of how recently we've really started to understand the web. Now, with smartphones with tiny screens and fiddly keyboards finally gaining proper internet access, simplicity is even more important.

So I've developed a Firefox extension to remedy the situation - about:history (download).

It's the first of a series of extensions to fit a new set of principles I've come to believe in:

  • Shrink the chrome

    The browser chrome - the menus, options, address bar and buttons around the actual content - should be as small as possible. After all, what users really want to see is their webpage.

  • The browser as a website

    People are used to navigating websites. Clunky browser dialog boxes, sidebars and menus just don't work in the same way. We should replace all of them with webpages. For example, there shouldn't be a history sidebar - instead, there should be a history webpage that opens in a new tab, with a URI, built from HTML, CSS and javascript, and following normal web interfaces like Google search. In this view, the browser chrome is a website.

So, about:history replaces the current history sidebar in Firefox with a browser tab that works similar to a web search engine:

It's actually quite similar to Google Chrome's history page, with a few important differences. Most notably, it's got a URI (about:history). If the web has taught us anything, it should be the power of the URI. Also, of course, it enables you to selectively delete pages from your browser history.

There's an advanced search option too - see the screenshot:

All you need to do to open up this page is click on the history link on the bookmarks bar, or press Ctrl-H. Of course, since there is a URI, other sites can also link back to it.

Personally I think this interface is much better. It doesn't introduce any new visual features like the sidebar - instead, it works just like a normal page. It follows normal visual metaphors like web search pages. It's linkable, clickable, you can put it in your favourites or view the source or screenscrape it. And it doesn't require any space in the chrome!

Let me know what you think. If all goes well, I'm going to apply the same principles to other parts of the browser, all in the aim of reducing clutter.

Unexpected convergence: smartphones and TVs

CES this year was fascinating. The Palm Pre is the perfect example of where I see consumer devices heading. The whole phone is basically a browser; it's built using web standards (HTML, CSS and javascript) from top to bottom. As Tim Bray states, "Speaking personally, as a person who'd never thought I needed the Internet in my pocket, I find myself using my G1 to approve comments and check the weather and fetch maps and so on all the time." To create the Pre, Palm (like Apple and Google), has focused on creating a browser for small screens. They've had to get rid of all the menus, options and buttons that desktop browsers are infested with, while also removing much of the need for fiddly keyboard entry.

Which brings me to the following quote last week from the CEO of Netflix, commenting on new internet-enabled TVs: "Think of Internet on the TV like the Web browser. One view is that the Web, a browser like Firefox, Chrome or I.E., will be right on the television in the next couple years. Another view is, no, a PC-based Web is just too complex. The second one is the phase that we're in now."

I agree that the PC-based browser is just too complex to use while standing metres away with a remote control. But the smartphone-based browser might work perfectly on your TV!

After all, stripping out the menus, options, buttons and keyboard navigation is the first step to getting a working browser on the TV, too. And though you can't touch your TV from the sofa, you can imagine using a control like the Wii to navigate a pointer round the screen in much the same way. Download the Wii Opera browser to see what I mean. Or just imagine the Palm Pre interface on your TV!

It seems odd that smartphones and 50" TVs could share the same interface. But that's the lesson of this year's CES for me.