Silverlight for Linux . . . and a diatribe on RIA in general

Microsoft releases Silverlight 1.0, announces Linux support

I applaud Microsoft, and the guys actually doing the work - Miguel de Icaza, Novell, and others - for this. Supporting Silverlight on Linux makes sense for many reasons (it's supposed to be a "cross-browser cross-platform" solution for starters). And, it is only natural that the Gnome/Mono team would pick it up.

Yet we have to keep this in context. This points out, I think, one of the big problems with the "plugin" style architecture for RIA apps. It isn't native, so it requires a port to each platform and browser. This works in many instances, and is very successful, I am not disputing that. Flash is the most prominent example, and, one could argue that the Java VM is in the same camp (but then again Java is usually not making any serious claim to be browser based - Applets aside, but that is sort of a sad tangent). Yet, along with merely needing to be ported and supported on n platforms each with n browsers, the fact remains that these type solutions do not "feel" native to a browser. And, there are also security concerns with plugins that are more pronounced than with native apps (is the browser responsible, or is the plugin?).

So while many of these type products are admittedly successful, I cannot help but ask, why are they web based to begin with? Why pretend to be browser based, why not just have a link on a web page and install a native desktop app? These lines are blurring with with projects like Apollo/AIR, but why the pretense in the first place?

Sure we all want to take advantage of the distribution model the web creates, but that can still be done with modern desktop apps, even to the point of utilizing HTTP for data or updates.

I personally believe that Ajax apps are a better approach. Keep it native to the browser, really, HTML and JavaScript - with async calls to any server resource needed. With the more sophisticated Ajax toolkits capable of the fancy stuff, sliders, transitions, drag and drop, progress bars, entire client side model and state, and more, that seems like the way to go. The only drawback to Ajax stuff is complexity, but toolkits are helping to minimize that.

I have never been a JavaScript fan, and am even less of a fan of having to cope with all the differences in browser implementations manually, this is something that plugins fix by just bypassing, but again Ajax toolkits are making headway. Write it once, a single code base, and the toolkit can compile the various mutations needed. This is a much better way, IMO, to keep up with changes in platforms and browsers, that it is to port another version of plugin X.