When Tim Berners-Lee originally conceived the web, he imagined a document publishing layer for the internet. Anyone would be able to create documents in a standard format (HTML) and share it with anyone else, and everyone would be on a level playing field. He also imagined that web-browsers would not only be viewers, but also editors, and true to this goal the W3C web-browser Amaya maintains this functionality today.
The only plugin which enjoyed any success is the Macromedia / Adobe Flash plugin, and this mainly due to that fact that all computers shipped with it enabled
The state of the web today is very much that web-browsers are viewing/rendering programs to allow you to see content that is available on the web and if you wish to publish content you must use another program such as Dreamweaver, GoLive or a good old text editor. Recently wiki's have become a powerful community built sites, where you can add and edit content through your web-browser (Wikipedia is a prime example) which harks back to Tim Berners-Lee's original vision. The current internet paradigm is that web-browsers are information viewers, and more importantly define what you can view by the core rendering engine and the Adobe Flash-plugin. This is where the next paradigm shift will come in web-based technologies.
In a recent reflections article I considered where the current generation of web-browser will be going next in the short term. But what will happen in the longer term? Consider the medium term view of the web-browser rather than the long term view (which perhaps is for a future reflections article). Recently there has been a lot of talk about how web-browsers are not keeping up with the specifications which are released by the W3C and other standards groups. This is an understandable state of affairs as new standards are released fairly quickly due to the fast pace nature of online life and complex software such as a web-browsers take a long time to develop. A good example is the newly released Opera 9 browser which provides improved standards support, but not complete by a long shot.
So where do we turn from here? Web-surfers and developers want the latest and greatest as quickly as possible, while the browser makers can't provide it using the current model. To find a solution to large complex software, we turn to plugins.
There I said it. Plugins. There will be a lot of web-developers who won't even consider this line of thought (or read beyond this point), but consider it carefully. A framework for plugin support is the solution used by many software developers as it provides small, easily update-able and maintainable software. However it is not used browser makers.
On September 18, 1995 Netscape released version 2.0 of their venerable browser with support for plugins. To this day web-browser plugins are still advertised as Netscape compatible, although the browser's market share has all but disappeared. Plugins at the time were seen as a way of expanding the core of the web-browser, which was fully capable of displaying the majority of web content. There was a time on the web where installing a new plugin was very awkward for the end user, and the practice was very much discouraged. Indeed the only plugin which really enjoyed any success is the Macromedia/Adobe Flash plugin, and this mainly due to that fact that all computers shipped with it enabled. Suggest developing a site which requires anything outside the core functionality of the web-browser or Flash and the web-developer will have a fit on the spot.
In a plugin based web-browser HTML rendering would be proved by a plugin which would be advertised as W3C compatible, likewise SVG and MathML.
Installing plugins for a web-browser is now a breeze for the end user. One click and that's it done. No browser restart required, no finding a folder hidden ten levels down in your system directory and no lengthy download times. So the answer to the problem is simple. Rather than developing a web-browser with extensive core functionality, develop an application framework which relies on plugins to deal with the data to be displayed.
A good example of where plugins have been shown to work in the web arena is the extensions available for Firefox. While not content plugins, Firefox extensions are effectively plugins to the main program which expand its functionality. This is good programming technique and one of the reason Firefox has become as popular as it has. Perhaps if the Firefox extensions were actually named plugins they wouldn't have been as popular due to the phobia surrounding plugins on the web.
In a plugin based web-browser HTML rendering would be proved by a plugin which would be advertised as W3C compatible, likewise SVG and MathML. W3C compatible suites would be available, using different core rendering techniques (WebKit, KHTML, Mozilla etc.). Other common formats such as Flash would be supported through plugins as well of course. PDF could be integrated more tightly with HTML based pages and developers could innovate with new plugins and design formats. Support for new specifications could be developed faster and deployed very easily requiring a user to install a plugin to view the complete site.
The obvious problem with this is that a huge number of plugins will be developed and the worry is that end users will have to install plugins on every second site they visit. This is where Mr. Darwin comes into play with 'survival of the fittest'. Good technologies and plugins will quickly be adopted by developers and their use will spread. Bad technologies and plugins on the other hand will not be used and decline into irrelevance. Therefore a situation where 90% of the web can be viewed with a standard suite of plugins can be imagined. Security would also be a concern when it is so easy to download a plugin from an unknown company and install it on your computer. To this end an organisation like the W3C could recommend plugins which are secure and the browser application framework only accept plugins such as those.
Medium to long term views of where technology will be going are always controversial, so please send me feed-back with your view on the idea's I've laid-out out here. The ideas of course need work and refining and I'm not suggesting this be done straight away, but rather considered as one of the roads we go down as an industry over the medium to long term. I'd be interested to know what people's thoughts are.