I am big advocate of Open Web, that is the form of the Web that has evolved from the base W3C standards and that has allowed a great deal of application consistency to be delivered to Internet users. As a Ui/Ux person and developer that is looking at solutions for customers I am constantly worrying about what is the best approach and technology used to build solutions.
I have watched Microsoft effectively let Internet Explorer 6.0 stagnate and become the browser of choice in the enterprise. The issue is that it is not competitive or fit for purpose for all these new RIA solutions using OpenWeb and Ajax. I have watched as Adobe and Microsoft then expand their position of ubiquity to turn Flex into a full blown programming model and leverage the OS and Browser dominance to push Silverlight onto peoples desktops.
If customers start heading down the route of building full end to end solutions around these proprietary programming models and runtimes they are effetely walking away from the base principles of what the OpenWeb was created for. So let me confess, I love pixels and sexy UI’s and Flex and Silverlight allow me to do some really cool stuff and I wish that the W3C would get their act together and work with the browser vendors to deliver the same flexibility through open standards but that is not going to happen soon.
So what can you do to manage this ? I have been thinking that at the moment there are some cool things that Flex/Silverlight do very well. Video, Interactive Updating, Charting, Modelling Diagram Editors etc.
There are some component standards starting to arrive, we have had JSR 168 for a while and this has been expanded to JSR286, We are starting to see iWidget spec start to deliver for the Mashup requirements. Within Desktop RCP with iView has enabled a layer of control to be added around content within tools and runtimes.
So if we start to think of our applications as true components brought together around component standards and allow the outer shell of an application to still be delivered by OpenWeb we can start to take advantange of Flex/Silverlight to fix some of the interesting Ui problems like Charting/Diagrams but keep them inside the box of a component. This will protect you for change in the future and still enable the User Experience you want to delivered.
If you let the full shell to be replaced then you are heading down a path that we moved away from in the 90′s lock into a set of Client Server style standards controlled by a single vendors and not open.
Next time you are building a solution have a think about breaking it into components and then using the right technology to delivery that component wether it be OpenWeb, Dojo, Ajax, Flex or Silverlight. If we support the component standards the Open Web will mature to compete head on with what Flex and Silverlight and you will not be stuck with a lot of code written to an out of favour web ui runtime.