Skip to content →

Tag: browser

Web vs native

imageWhen Steve Jobs first launched the iPhone in 2007, Apple’s perception of where the smartphone application market would move was in the direction of web applications. The reasons for this are obvious: people are familiar with how to build web pages and applications, and it simplifies application delivery.

Yet in under a year, Apple changed course, shifting the focus of iPhone development from web applications to building native applications custom-built (by definition) for the iPhone’s operating system and hardware. While I suspect part of the reason this was done was to lock-in developers, the main reason was certainly the inadequacy of available browser/web technology. While we can debate the former, the latter is just plain obvious. In 2007, the state of web development was relatively primitive relative to today. There was no credible HTML5 support. Javascript performance was paltry. There was no real way for web applications to access local resources/hardware capabilities. Simply put, it was probably too difficult for Apple to kludge together an application development platform based solely on open web technologies which would get the sort of performance and functionality Apple wanted.

But, that was four years ago, and web technology has come a long way. Combine that with the tech commentator-sphere’s obsession with hyping up a rivalry between “native vs HTML5 app development”, and it begs the question: will the future of application development be HTML5 applications or native?

There are a lot of “moving parts” in a question like this, but I believe the question itself is a red herring. Enhancements to browser performance and the new capabilities that HTML5 will bring like offline storage, a canvas for direct graphic manipulation, and tools to access the file system, mean, at least to this tech blogger, that “HTML5 applications” are not distinct from native applications at all, they are simply native applications that you access through the internet. Its not a different technology vector – it’s just a different form of delivery.

Critics of this idea may cite that the performance and interface capabilities of browser-based applications lag far behind those of “traditional” native applications, and thus they will always be distinct. And, as of today, they are correct. However, this discounts a few things:

  • Browser performance and browser-based application design are improving at a rapid rate, in no small part because of the combination of competition between different browsers and the fact that much of the code for these browsers is open source. There will probably always be a gap between browser-based apps and native, but I believe this gap will continue to narrow to the point where, for many applications, it simply won’t be a deal-breaker anymore.
  • History shows that cross-platform portability and ease of development can trump performance gaps. Once upon a time, all developers worth their salt coded in low level machine language. But this was a nightmare – it was difficult to do simple things like showing text on a screen, and the code written only worked on specific chips and operating systems and hardware configurations. I learned C which helped to abstract a lot of that away, and, keeping with the trend of moving towards more portability and abstraction, the mobile/web developers of today develop with tools (Python, Objective C, Ruby, Java, Javascript, etc) which make C look pretty low-level and hard to work with. Each level of abstraction adds a performance penalty, but that has hardly stopped developers from embracing them, and I feel the same will be true of “HTML5”.
  • Huge platform economic advantages. There are three huge advantages today to HTML5 development over “traditional native app development”. The first is the ability to have essentially the same application run across any device which supports a browser. Granted, there are performance and user experience issues with this approach, but when you’re a startup or even a corporate project with limited resources, being able to get wide distribution for earlier products is a huge advantage. The second is that HTML5 as a platform lacks the control/economic baggage that iOS and even Android have where distribution is controlled and “taxed” (30% to Apple/Google for an app download, 30% cut of digital goods purchases). I mean, what other reason does Amazon have to move its Kindle application off of the iOS native path and into HTML5 territory? The third is that web applications do not require the latest and greatest hardware to perform amazing feats. Because these apps are fundamentally browser-based, using the internet to connect to a server-based/cloud-based application allows even “dumb devices” to do amazing things by outsourcing some of that work to another system. The combination of these three makes it easier to build new applications and services and make money off of them – which will ultimately lead to more and better applications and services for the “HTML5 ecosystem.”

Given Google’s strategic interest in the web as an open development platform, its no small wonder that they have pushed this concept the furthest. Not only are they working on a project called Native Client to let users achieve “native performance” with the browser, they’ve built an entire operating system centered entirely around the browser, Chrome OS, and were the first to build a major web application store, the Chrome Web Store to help with application discovery.

While it remains to be seen if any of these initiatives will end up successful, this is definitely a compelling view of how the technology ecosystem evolves, and, putting on my forward-thinking cap on, I would not be surprised if:

  1. The major operating systems became more ChromeOS-like over time. Mac OS’s dashboard widgets and Windows 7’s gadgets are already basically HTML5 mini-apps, and Microsoft has publicly stated that Windows 8 will support HTML5-based application development. I think this is a sign of things to come as the web platform evolves and matures.
  2. Continued focus on browser performance may lead to new devices/browsers focused on HTML5 applications. In the 1990s/2000s, there was a ton of attention focused on building Java accelerators in hardware/chips and software platforms who’s main function was to run Java. While Java did not take over the world the way its supporters had thought, I wouldn’t be surprised to see a similar explosion just over the horizon focused on HTML5/Javascript performance – maybe even HTML5 optimized chips/accelerators, additional ChromeOS-like platforms, and potentially browsers optimized to run just HTML5 games or enterprise applications?
  3. Web application discovery will become far more important. The one big weakness as it stands today for HTML5 is application discovery. Its still far easier to discover a native mobile app using the iTunes App Store or the Android Market than it is to find a good HTML5 app. But, as platform matures and the platform economics shift, new application stores/recommendation engines/syndication platforms will become increasingly critical.

I can’t wait :-).

(Image credit – iPhone SDK)

22 Comments

Why I Switched From Firefox to Chrome

About a year ago, I wrote a post about how I prefer Mozilla’s Firefox web browser over Google’s Chrome browser as well as a few things it would take to get me to switch (and what Firefox should do to defend against that).

With the launch of Firefox 4 and Chrome 11 Beta, I decided now was as good a time as any to revisit that decision. I had been using the Firefox 4 beta’s and release candidates for several months and had been quite impressed by the improvements in speed. So, for the past two weeks I used the Chrome 11 beta exclusively – and the verdict? I have decided to switch browsers.

Shocked? I definitely was.

And, just as I did with my comparison of the DROID2 and the iPhone 4, I will make a long list of comparisons:

  • The speed advantage that Chrome has over Firefox 4, at least on my Windows 7 machines, is overrated. Firefox 4 is much faster than its predecessor. While there’s still an observable difference in startup time, the gap between the two, in my mind, has been narrowed, and it was literally not something that affected the quality of my browsing experience. Slight advantage to Chrome
  • I found I didn’t need browser history sync as much as I thought I did. As part of an effort to maintain work-life balance, I have a separate work computer from my personal computer. However, because my work oftentimes involves research in my “spare time”, its oftentimes useful for my work computer to know what I did at home and vice-versa – in fact this was a point I brought up when I previously compared Chrome to Firefox. Over the past two weeks of using solely Chrome, I realized that jotting notes in apps like Springpad and Google Tasks was really all I needed beyond Chrome’s natural ability to sync bookmarks and passwords, and that the lack of full browser sync actually did not interfere with my ability to be productive across both my computers. Slight advantage to Chrome
  • The Chrome Tweetdeck app wound up being a killer use case for me. While Google’s Chrome Web Store deserves a lot of the criticism that its little more than a collection of bookmarks, popular Twitter client Tweetdeck has one of the rare “apps” on the site which is actually app-like. While I find that the app itself doesn’t stay stable if it stays on for longer than half a workday, it uses a lot less memory and is a lot faster to start than the Adobe AIR version of Tweetdeck I had been using before, and, given the amount of time I spend on Twitter, this became a very compelling reason to use Chrome. Strong advantage to Chrome
  • Chrome’s notifications system makes it very easy to keep web applications running in the background. I was somewhat surprised at how useful this feature wound up being – but the latest versions of Chrome support desktop notifications which allow you to see at the corner of your screen an indicator if a new email, Tweet, or instant message is waiting you. This form of notification makes it more convenient to run web applications as you no longer have to constantly check the application to see if anything has happened. Strong advantage to Chrome
  • Chrome’s bookmark management is “good enough.” One browser feature I relied on very heavily in Firefox was keyword searching/keyword browsing. In a nutshell, instead of searching for “Harvard” on Wikipedia, I simply type into the address bar: “w Harvard” – with ‘the latter ‘w’ being the keyword I assigned to the Wikipedia search engine. I’ve made similar associations across all the major web sites and search engines I use. Chrome, sadly, makes it difficult to do anything with keyword searching and browsing (keyword browsing requires you to treat the link as if it were a keyword search), but its not impossible – making my browsing experience on the browser actually palatable. Weak advantage to Firefox.
  • Internal PDF capability. This is again one of those functions that you don’t realize its useful until you actually use it. As I read a fair number of white papers and investor presentations, I used to find myself constantly frustrated by the time it would take to load Adobe’s PDF reader in another browser. Google made a very smart call to integrate the PDF reading functionality straight into the browser. Advantage for Chrome.
  • One of the main reasons I stuck with Firefox for so long was because of its rich ecosystem of addon/extension developers. However, in recent times the breadth and quality of Chrome extensions has improved (Slight advantage for Chrome):
  • Developer tools: My old roommate and good friend Eric and I had a good back-and-forth back when I did my first browser comparison about the relative merits of Firefox’s main development tool Firebug and Chrome/Safari’s Webkit Inspector. I think it boils down to a stylistic preference, but I strongly prefer Firebug over Chrome’s developer toolset: for me, I’m more accustomed to the controls and I find it easier to use when I’m looking into or experimenting on an existing page. Advantage for Firefox (although subjective)

A quick tally above shows that there are a lot of specific reasons I identified to pick Chrome – and hence why I switched. Now, to be 100% open, I am continuing to maintain my Firefox 4/Firebug install so that I can continue to use the tool I prefer to manipulate webpages on-the-fly, but the comparison above gave me a pretty clear reason to switch browsers.

(Image credit)

5 Comments

What it will take to get me to switch to Chrome

It’s no secret that I’m a big fan of Firefox. But, given Firefox’s slow start-time and Google’s Chrome browser’s recently announced support for extensions, I did a recent re-evaluation of my browser choice. Although I’ve chosen to stick with Firefox, the comparison of the two browsers is now much closer than its ever been before to the point where I think, if the pace of Chrome development continues, I could actually switch within a few months. What I would need are:

  • Full browser synchMozilla Weave is probably the most important extension in my Firefox install. Weave provides a secure and fast method for me to have the same set of bookmarks, browser history, passwords, and preferences between every copy of Firefox that I run (i.e. on my work computer vs. on my personal computer). This has made it easier for me to not only continue research between browser sessions, but also to quickly get up to productivity on any computer with a working Firefox installation. While Chrome now supports bookmark synchronization, the lack of a history or a secure password synch makes it harder for me to have the same degree of flexibility that I have with Firefox. What’s ironic, though, is that a few years ago, I was very reliant on Google’s Browser Synch Firefox extension to do the same thing, and found Firefox to be a lot less flexible when Google stopped updating it. But, this historical precedent means I’m relatively confident it should be easy for Google to introduce a similar feature for Chrome.
  • A Firebug-like web development tool – Chrome has a lot of useful web development tools but, up until now, I have yet to see a platform built into Chrome (or any other browser) which has the same level of sophistication and feature set as Firefox’s Firebug extension. For most people, this isn’t that relevant, but as someone who’s done a fair amount of web development in the past and expect to continue to do so in the future, the lack of something as versatile and easy-to-use as Firebug is a big downside to me. With the opening up of Chrome to extension developers, I’m hopeful that it will only be a matter of time until something comparable to Firebug is developed for Chrome
  • Extensions to replicate the Greasemonkey hacks I use -Another Firefox extension which I’ve come to rely heavily on is Greasemonkey. It’s a bit difficult to explain how Greasemonkey works to someone who’s never used it, but what it basically does is allow you to install little scripts which can add extra functions to your Firefox browsing experience. These scripts can be found on repositories like Userscripts. Some scripts I’ve become attached to include Google Image Relinker (which lets me go straight to an image from Google Images and skip the intermediary site), LongURL Mobile Expander (which lets me see where shortened URLs, like those from TinyURL or Bit.ly, are actually pointing), and Friendfeed Force Word Wrap (which forces word wrap on improperly formatted Friendfeed entries). Because most of these are pretty minor browser modifications, I am hopeful that these functions will emerge when Chrome’s extension developer community gets large enough.
  • Advanced web standard support – I think its pretty odd that despite being a major proponent of the HTML5 standard and new rich browser technologies like WebGL and Native Client, that Chrome has yet to truly distance itself from its browser peers in terms of support for these new standards. True, the technologies themselves are still under development and very few websites exist which support them, but a differentiated level of support for these new technologies would give me a whole set of reasons to pick Chrome over its browser peers, especially given the direction I expect the rich web to move.

Now, in the off chance someone from Mozilla is reading this, what could Mozilla do to keep me firmly in the Firefox camp?

  • Faster release cycle – It’s difficult to maintain a constant technological edge when your software is open source, but a faster release cycle will help prolong the advantages that the Mozilla ecosystem currently have like a strong extension and theme developer community, a large user base, and a rich set of experimental projects (like Weave and JetPack and Ubiquity).
  • Faster startup time – I appreciate that my startup speed issues with Firefox may be entirely due to the fact that I have hefty extensions like Greasemonkey and Weave installed, but given that my current build of Chrome has some 16 extensions (including the Chrome version of AdBlock and Google Gears) and still loads much faster than Firefox, I believe that significant opportunity for memory management and start-time improvement still exists within the Firefox code base.
  • Better web app integration – The Chrome browser was clearly designed to run web applications. It makes it easy to load individual applications in their own windows and to set up web applications as default handlers for specific file types and events. While Firefox has come a long way in terms of its advanced web technology support, I don’t feel that enough attention has been dedicated to making the web application experience nearly as seamless. Whether this means an overhaul of the Prism project or a new way of handling browser events, I’m not sure, but this is a direction where the gap between Chrome and Firefox can and should be closed.
  • Firefox everywhere – I have been painfully disappointed in the slow roll-out of the Fennec mobile Firefox project. In a world where Safari, Opera, and Internet Explorer all have fully functioning mobile browsers, there’s no reason Firefox should be behind in this arena. Fennec also makes the Firefox value proposition more compelling with Weave as a means of synchronizing settings and bookmarks between the two.
  • More progress on experimental UI – I have been an enormous fan of the innovations in browser use which I consider to be pioneered by Mozilla – tabbed browsing, extensions, browser skinning, the “awesome bar”, etc. One way for Mozilla to stay ahead of the curve, even if they are only “on par” along other dimensions with their peers, is to continue to push on progress in the Mozilla Labs research projects like Ubiquity and JetPack, or a smarter way to integrate Yahoo Pipes!, or something akin to Cooliris’s technology (to throw out a few random ideas).
  • Advanced web technology support – Ditto as with the Google Chrome comment above.

With all of this said, I’m actually fairly happy that there are so many aggressive development efforts underway by the browser makers of our era. It looks like the future of the web will be an interesting place!

(Image credit) (Image credit – Greasemonkey) (Image credit – Fennec)

8 Comments

Web 3.0

About a year ago, I met up with Teresa Wu (of My Mom is a Fob and My Dad is a Fob fame). It was our first “Tweetup”, a word used by social media types to refer to meet-up’s between people who had only previously been friends over Twitter. It was a very geeky conversation (and what else would you expect from people who referred to their first face-to-face meeting as a Tweetup?), and at one point the conversation turned to discuss our respective visions of “Web 3.0”, which we loosely defined as what would come after the current also-loosely-defined “Web 2.0” wave of today’s social media websites.

On some level, trying to describe “Web 3.0” is as meaningless as applying the “Web 2.0” label to websites like Twitter and Facebook. It’s not an official title, and there are no set rules or standards on what makes something “Web 2.0”. But, the fact that there are certain shared characteristics between popular websites today versus their counterparts from only a few years ago gives the “Web 2.0” moniker some credible intellectual weight; and the fact that there will be significant investment in a new generation of web companies lends special commercial weight as to why we need to come up with a good conception of “Web 2.0” and a good vision for what comes after (Web 3.0).

So, I thought I would get on my soapbox here and list out three drivers which I believe will define what “Web 3.0” will look like, and I’d love to hear if anyone else has any thoughts.

  1. A flight to quality as users start struggling with ways to organize and process all the information the “Web 2.0” revolution provided.
  2. The development of new web technologies/applications which can utilize the full power of the billions of internet-connected devices that will come online by 2015.
  3. Browser improvement will continue and enable new and more compelling web applications.

I. Quality over quantity

In my mind, the most striking change in the Web has been the evolution of its primary role. Whereas “Web 1.0” was oriented around providing information to users, generally speaking, “Web 2.0” has been centered around user empowerment, both in terms of content creation (blogs, Youtube) and information sharing (social networks). Now, you no longer have to be the editor of the New York Times to have a voice – you can edit a Wikipedia page or upload a YouTube video or post up your thoughts on a blog. Similarly, you no longer have to be at the right cocktail parties to have a powerful network, you can find like-minded individuals over Twitter or LinkedIn or Facebook.

The result of this has been a massive explosion of the amount of information and content available for people and companies to use. While I believe this has generally been a good thing, its led to a situation where more and more users are being overwhelmed with information. As with the evolution of most markets, the first stage of the Web was simply about getting more – more information, more connections, more users, and more speed. This is all well and good when most companies/users are starving for information and connections, but as the demand for pure quantity dries up, the attention will eventually focus on quality.
image
While there will always be people trying to set up the next Facebook or the next Twitter (and a small percentage of them will be successful), I strongly believe the smart money will be on the folks who can take the flood of information now available and milk that into something more useful, whether it be for targeting ads or simply with helping people who feel they are “drinking from a fire hose”. There’s a reason Google and Facebook invest so much in resources to build ads which are targeted at the user’s specific interests and needs. And, I feel that the next wave of Web startups will be more than simply tacking on “social” and “online” to an existing application. It will require developing applications that can actually process the wide array of information into manageable and useful chunks.

II. Mo’ devices, mo’ money

image A big difference between how the internet was used 10 years ago and how it is used today is the rise in the number of devices which can access the internet. This has been led by the rise of new smartphones, gaming consoles, and set-top-boxes. Even cameras have been released with the ability to access the internet (as evidenced by Sony’s Cybershot G3). While those of us in the US think of the internet as mainly a computer-driven phenomena, in much of the developing world and in places like Japan and Korea, computer access to the internet pales in comparison to access through mobile phones.

The result? Many of these interfaces to the internet are still somewhat clumsy, as they were built to mimic PC type access on a device which is definitely not the PC. While work by folks at Apple and at Google (with the iPhone and Android browsers) and at shops like Opera (with Opera Mini) and Skyfire have smoothed some of the rougher edges, there is only so far you can go with mimicking a computer experience on a device that lacks the memory/processing power limitations and screen size of a larger PC.

This isn’t to say that I think the web browsing experience on an iPhone or some other smartphone is bad – I actually am incredibly impressed by how well the PC browsing experience transferred to the mobile phone and believe that web developers should not be forced to make completely separate web pages for separate devices. But, I do believe that the real potential of these new internet-ready devices lies in what makes those individual devices unique. Instead of more attempts to copy the desktop browsing experience, I’d like to see more websites use the iPhone’s GPS to give location-specific content, or use the accelerometer to control a web game. I want to see social networking sites use a gaming console’s owner’s latest scores or screenshots. I want to see cameras use the web to overlay the latest Flickr comments on the pictures you’ve taken or to do augmented reality. I want to see set-top boxes seamlessly mix television content with information from the web. To me, the true potential of having 15 billion internet-connected devices is not 15 billion PC-like devices, but 15 billion devices each with its own features and capabilities.

III. Browser power

image
While the Facebooks and Twitters of the world get (and deserve) a lot of credit for driving the Web 2.0 wave of innovation, a lot of that credit actually belongs to the web standards/browser development pioneers who made these innovations possible. Web applications ranging from office staples like Gmail and Google Docs would have been impossible without new browser technologies like AJAX and more powerful Javascript engines like Chrome’s V8, Webkit’s JavascriptCore, and Mozilla’s SpiderMonkey. Applications like YouTube and Picnik and Photoshop.com depend greatly on Adobe’s Flash product working well with browsers, and so, in many ways, it is web browser technology that is the limiting factor in the development of new web applications.

Is it any wonder, then, that Google, who views web applications as a big piece of its quest for web domination, created a free browser (Chrome) and two web-capable operating systems (ChromeOS and Android), and is investigating ways for web applications to access the full processing power of the computer (Native Client)? The result of Google’s pushes as well as the internet ecosystem’s efforts has been a steady improvement in web browser capability and a strong push on the new HTML5 standard.

So, what does this all mean for the shape of “Web 3.0”? It means that, over the next few years, we are going to see web applications dramatically improve in quality and functionality, making them more and more credible as disruptive innovations to the software industry. While it would be a mistake to interpret this trend, as some zealots do, as a sign that “web applications will replace all desktop software”, it does mean that we should expect to see a dramatic boost in the number and types of web applications, as well as the number of users.

Conclusion

I’ll admit – I kind of cheated. Instead of giving a single coherent vision of what the next wave of Web innovation will look like, I hedged my bets by outlining where I see major technology trends will take the industry. But, in the same way that “Web 2.0” wasn’t a monolithic entity (Facebook, WordPress, and Gmail have some commonalities, but you’d be hard pressed to say they’re just different variants of the same thing), I don’t think “Web 3.0” will be either. Or, maybe all the innovations will be mobile-phone-specific, context-sensitive, super powerful web applications…

(Image credit) (Image credit – PhD comics) (Image credit – mobile phone) (Image credit – Browser wars)

2 Comments

The Blackberry’s Big O

imageI’m talking about Opera, the web browser.

Why speak of Opera when I’ve made it quite clear that I’m a big fan of Mozilla’s foxy open-source browser? The reason is that web browsers on mobile phones tend to suck.

  1. They suck because they are capable of very little. The little pages that you see on most mobile phone screens is stripped of animations, Flash, most Javascript effects, etc — neutering some websites and rendering all but the websites with custom mobile versions as hideous blobs of letters.
  2. They suck because they have horrible User Interfaces. An application does not have to have an intuitive interface like the one on iPhone to have a work-able user interface. The way that the user interface on the Blackberry browsers is designed, however, is the exact opposite of work-able. The clunky interface makes it very difficult to navigate larger web pages. The browser also makes no attempt to auto-rescale websites and sizes, or to auto-detect what user interface mode makes the most sense.
  3. They suck because they look and feel nothing like the browser on a computer. This may seem like a nit-picky point, but it lies at the heart of the problem with the mobile browser — it’s supposed to be modeled off software which we are all very familiar with, but it ends up falling short by not making a good effort to emulate, but by focusing more on the device’s limitations (limited screen-size and bandwidth) rather than the device’s potential (emulation to simulate most of the features from a desktop browser).

Opera Mini is Opera’s attempt to solve all three of these problems (hat tip: A. Ow). Opera Mini is a mini-browser Java app which speeds up the browsing experience by fetching all web-pages through a proxy server which performs on-the-fly calculations to rescale webpages and determine the best way for the user to start browsing the page. This is fed back to your phone, making the download faster and allowing the browsing experience to be smoother. Unlike the default mobile browser, Opera Mini attempts to strip down web pages as little as possible, oftentimes preserving the look and feel of the website (the Opera Mini demo shows what sites will look like in Opera Mini) including some Javascript and CSS.

I would strongly encourage people who either use the Internet on their Blackberries a lot or who want to but can’t stand the default Blackberry browser to download this.

On the part of Opera, this is quite a good business ploy — not only because this may mean they can one day capture the mobile browser market, but because I was so impressed with Opera Mini, I actually downloaded and tried the Opera browser for my laptop.

2 Comments