Glad You're Ready. Let's Get Started!

Let us know how we can contact you.

Thank you!

We'll respond shortly.

Write Once, Run Anywhere

In response to some recent web browser related debates:

The web has long since tried to help developers realize the [perhaps misguided] promise that you can write software once and run it anywhere without modification. This might have even seemed feasible when the only real consumer web-enabled device was a desktop or laptop PC with a fairly standard monitor resolution, keyboard, mouse – predictable. You could even bank on IE probably being the browser of choice at one point, like Netscape before it.

But then we started getting choices. Your screen might be 17″, it might be 27″. You might be using a keyboard and tabbing around, or you might only have a finger for input. Both hardware and software have been bringing their A games. Meanwhile web developers cried out for standards adherence in an attempt to create the One Ring to rule them all (but with less fiery eyeballs and dead hobbits).

Then phones made us wake up. The iPhone made the first strong compelling argument to target your web app for a specific resolution, input mechanism, and browser. Now we had two views for our website, the iPhone, and the ‘everything else bucket’.

The ‘everything else bucket’ is probably as good for the web as the No Child Left Behind program is for public education. Sure it has merits, like getting stuff out the door, but for tailored user experience, you’d need a lot more teachers and class rooms, or in our case developers.

Subsequently, yeah iPhone, iPad, Android, WebOS apps rock for UX when you do ’em up right, but only because a business has placed value in that UX. Conversely, they’ve said that the UX between Firefox and Safari on a desktop is “pretty much the same” and there’s not a lot of value in differentiation.

What I would be curious to see is how much MVC the Rails Way has paid off in this time of many platforms. My guess is that it hasn’t been nearly as helpful as having an easily consumable API. Yes, there’s overlap in those two areas, but picture an API written without knowledge of the MVC pattern and a well structured MVC web site where you now want to add specific view code for PlatformX. I think nine times out of ten you’ll see the API gets more mileage because the views aren’t one-for-one on different platforms.

What might be a separate menu on a phone, could also be part of a side be on a desktop-like presentation. Now you find yourself writing new controllers, so all you’ve really saved on is the model code, which Rails writes most of that for you – you are only slightly better off than if you decided to write the thing from scratch.

It’s easy to argue for this implementation, or that, or ‘…if you rearrange things, then you can…’, but the problem is that there is a cost associated with catering to any specific platform. Developers have to know the nuances of those systems and be able to test in that specific environment. Then you have to balance that cost with the user base you can expect to gain. Until it becomes so cheap to know all the differences and simulate the all combinations of environments, targeted UX will continue to be a low priority for businesses.

Since I know we aren’t all holding our breath for that day, let me pose what may sound like an even more ridiculous solution: What if you could only get to certain parts of the web using a certain browser? Just like some software isn’t written for the Mac, or Windows, or Linux today, what if you could change the expectation that I can surf to any web site with any browser? What if we went to and it said “Sorry, please use Chrome” would that be so awful? Or I went to and it said “This site requires Firefox.” Would you do it if the user experience was amazing?

The two expectations, ‘I can go anywhere’, and ‘I can run my software anywhere’ are what cause us developers to beat our heads against the wall when a new browser comes out, or one deviates from the standard. I think if you can find a way to manage those expectations you can get down to brass tax with your users.

  1. peter hessler says:

    Uhh, even today in 2010 I *still* run into websites that require IE. Most of them are private, “business” oriented, but they won’t work with !IE. Not even Firefox on Windows.

    Not to mention the abomination that is flash, which makes anyone not running a standard platform screwed. I support Apple with killing off flash.

    Leave HTML as the markup language, and do all of the design in CSS. It is possible to intelligently design (pardon the pun) pages that look well in all types of browsers, you just need to think about groups instead of specifics. Why bother prioritizing for iPhone, when all you have to do is create a “portable device” template, which will work great on all of these small systems.

  2. prashanth says:

    “Would you do it if the user experience was amazing?” – I had stock portfolio on a website which was working initially on Firefox, then they changed it just IE. I have stopped visiting that site and now looking for application which can work on any browser!!

    As a guy who uses Mac and Linux in Office and Windows in Home i would love more standard cross platform applications.

  3. Will Read says:

    @peter hessler your IE specific apps are a great example of targeting a desktop platform. MS gets all kinds of cool integration points between the web and its Office suite. If I know the people coming to my site also have Excel or Word, then I don’t need to duplicate that functionality in my application, and I don’t have to push that over the wire to the client.

    @prashanth “As a guy who uses Mac and Linux in Office and Windows in Home i would love more standard cross platform applications.” You might be the exception, not the rule. I also feel strongly that most people would forgo “standard cross platform” for “great application that does exactly what I need” even if you have two totally separate apps for home & office use.

  4. Davis W. Frank says:

    The browser, the standards it supports, and the penetration of a discoverable minimum feature set has been essential to the explosive growth of the web. But thankfully, the web is not just the browser.

    What’s happening in mobile – where the use cases are far different than sitting at a desk – is that the web is being used more as a transport for APIs. The result is “applications” – sometimes downloadable, sometimes browser-hosted – for targeted experiences. People are playing games, tweeting, and even ordering burritos as they walk around their life.

    So I ask a slightly different question: what if the desktop were more like mobile?

    As a site developer, what if you had the ability to make a desktop application that gave your users a significantly better experience? Assume that you could do this on Windows, MacOS, and even Linux with only an incremental cost to your web development team?

    As a user, if a site offerred you a significantly better experience by downloading an application just to use that site, would you do it?

    I think the answer to both of the above is yes if the features are compelling enough and these apps were discoverable much in the same way websites are today.

  5. phessler says:

    >As a user, if a site offerred you a significantly better experience by downloading >an application just to use that site, would you do it?

    Yes, but *only* if I already liked the site. If I have to use the app to get any value out of the site, I’m quitting already.

    I do so for Twitter (Gravity for Symbian phones), but is still usable.

Post a Comment

Your Information (Name required. Email address will not be displayed with comment.)

* Copy This Password *

* Type Or Paste Password Here *