Posted September 9, 2009 at 6:25 am
I have fond memories of the days when I was in elementary school and the internet was just starting to make its way into our homes and workplaces. Some fifteen years later I am still amazed at the technological revolution that probably wasn't even on the average person's radar a mere two decades ago. If you take a minute to remove yourself from the present, and you look back on how computer technology has transitioned over just the last ten years, you may notice how the concept of the internet has transitioned from a "web" of computer networks to a "web" of independent platforms. This is starting to cause a problem.
Being a software developer and having experience developing applications for many different platforms, I have acquired an appreciation for open standards. Open standards make it possible for thousands of companies and individual developers to create products and devices that can work together with relative ease. While this is amazing unto itself, there is still an extremely large amount of overhead involved in developing applications, not just for the internet as it is browsed on desktops and laptops, but for the many mobile devices on the market.
I am normally not a fan of Java, but the idea behind virtualization is quite ingenious, and Java is a great example of how it is possible to develop applications in one language and run your code on many devices with relatively little effort. Another great example is Adobe Flash. Not only is Flash portable, but its use of vector graphics lets you view the content in multiple screen formats and resolutions with little graphical degradation.
If we want our multimedia and informational revolution to continue for years to come, we will need to agree on a universal standard that makes it possible to develop an application or website one time, and then that application will be portable to all computing devices.
You could argue that the internet already accomplishes this through regular web standards. As long as you have a web browser on your device, most websites will be readily accessible to you. But how do you deal with the change in screen resolution or orientation? Do all websites have to develop a separate, mobile version? Every time Facebook releases an update to their iPhone application, the internet community erupts in applause for the "new" functionality that's now available on their phones. Why can't that functionality be made available as soon as it's added to the Facebook website?
We need to develop an open web standard that makes it possible to specify the general structures of a website or application while also denoting a hierarchical structure relative to the importance of the content available on the website. What does this mean?
If you haven't been to YouTube in a while, wander on over:
www.youtube.com . The site is organized into the three primary categories of "Videos," "Channels," and "Shows." Clicking on these links will bring up the relative subpages, featured content, etc. If you have any experience with HTML, you can think of the structure much like the header tags H1, H2, H3. These tags can be used to denote the relative importance of titles on a page.
For any website or application that has been designed with the user in mind, the most important functionality is usually highlighted on the main page, or the relevant information is easily accessible. Sure, if you want to navigate deeper you will have that option, but you normally don't have to go three levels deep to find the sign in button. The web standard must be able take this into account, and the content visible to you at any given time will be tailored to your device's screen resolution, viewing settings, and preferences.
A great example of such functionality can be found in any Microsoft application that takes advantage of the new ribbon interface. If you have a window maximized, most of the options will be available to you. If you resize the window and make it smaller, the less important options will disappear from the screen. The options are still accessible, but the program takes into account the relative importance of a function and your available screen real estate.
The standard would also have to consider development environment. Would a "virtual machine" be used to let programmers develop apps in their language of choice, or would the standard include its own language? What about developing this functionality through already-existing technology and standards, such as XHTML, CSS, and JavaScript? The primary bottleneck would then be browser support.
With a truly universal standard, developers would be able to focus more of their time developing truly innovative technologies as opposed to getting the same application working on multiple devices and platforms. It makes sense for businesses, which could streamline their operations and achieve a quicker turnaround on new products. Money is to be saved, people are to be happy, and life is to be made easier, but is such a standard even possible?