posted on Wednesday, February 01, 2006 11:38 PM by chrisdonnan

Musings on Xaml, Expressions, Virtual Machines, OS's, Computing Resources

Some free form thoughts:

For a long time - I have thought that the web browser was interesting. It is a fairly primitive set of UI components that you can declaratively ask to be rendered - via HTML/ CSS (for the most part). You also have the option of interactively programming to the browser's API - mostly in JavaScript. The powerful part was/ is that you are sending text across the wire from 1 machine to the next - declaring to the browser what to do.....

So - the issue is/ has been that the browser experience is not as 'rich' as a desktop application ... AJAX - SchmaeJax - I know... but it is not as rich - period. Oh sure - there have been valiant efforts - Flash, Mozilla's XUL, etc - but in essence, but still - we are declaring our intent to a web browser - an application of limited scope - inside a much more complete operating system....

The next step is to do the much same thing - send declarative intent - over the wire - BUT:

1) To a richer rendering engine (the web browser in browser era)
2) With a richer programmable API (the DOM API / browser API in browser era)
3) With more robust programming language possibilities (JavaScript in browser era)

So - we send declarative intent to - the OS. This is accomplished with an extensible markup language that can reach into more domains than HTML did/ can. HTML is a limited domain markup language. One XML document can contain multiple over-layed namespaces of information that can be consumed in differently by different aspects of the interpreting application.

If the browser is just a subset of the computer's (OS's) functionality that can have it's behavior invoked/ declared, the end of that chain of logic is that the OS should just allow it directly - the superset of functionality. With XAML - Microsoft brings some of this to the table.

1) richer rendering engine (the OS - WPF, Expressions stuff, GDI, etc. in the post-browser era)
2) richer programmable API (.Net framework in the post-browser era)
3) robust programming language possibilities (C#, Vb.Net, etc.)

Granted - security will need to be of central importance in this scenario - where the OS can be so controlled- but that aside - this is the logical step. I do not question this progression happening the question is - what other vendor(s), OS's, etc. will support this type of idea? Maybe something like:

1) richer rendering engine (Linux with some core rendering engine .... SVG based perhaps)
2) richer programmable API (KDE, QT, more abstraction of the raw Linux functionality from elsewhere)
3) robust programming language possibilities (Java, Ruby, Something else...)

Interesting - I admit - these are fairly off the cuff thoughts, you never know what will happen.

What Microsoft is doing with Expressions and that realm of stuff is also part of the next generation of application development – breaking away from the classic looking application. Flash is a beautiful looking thing in browser world. It is still limited. An application with the full power of your computer looking like a flash application could – will be a lovely thing. Making 3d user interfaces will become real soon. Making really animated – lush applications will be real soon. In this space – an SVG player may come into play.

A Windows Virtual Machine?? I wonder if at some point – computing resources (hard drives, memory, etc) will be so commoditized that all OS's will basically be able to simply access a sort of grid of resources.... Then all “OS's” will be something like a virtual machine atop generic resources. They are then just set of APIs for accessing truly common resources and abstracting functionality into a software computer. The resources are the same – the abstraction on top of them – the software is what is worthy to developers. Java was a better abstraction of the computer resources than C APIs (in my way of thinking) for non-primitive operations. C# is even a slightly better set of abstractions (delegates, events, etc are really better than Java – I am sorry. I DO love Java – I am just being honest). Anyhow - it is really not too far fetched to envision Windows or something from MS as being a portable Virtual Machine that could run like a JVM etc.... anyhow.........

Anyhow – I have rambled..
-Chris

Comments