We've been recently following the whole Microsoft Silverlight
and Novell Moonlight projects and have been amused. We haven't
gotten into it enough to be impressed, but we think its definitely a technology to keep an eye on for anyone wanting to create slick web-based
GUI interfaces that tie nicely with web services.
Martin Davis has a couple of things to say about Flash/FLEX vs. Silverlight in his Flex vs Silverlight another shot in the war blog entry.
Now for a little background of what these 3 terms above mean and how they tie together.
Silverlight is a Microsoft Technology that is a companion to the .NET framework. Some general bullet points about it
- It is basically a stripped down .NET which currently fits in about 4MB download as opposed to the 30 MB .NET 3.0 framework.
- It is designed to run in a browser similar to Flash/FLEX frameworks and interact with webservers and other services via the web (both .NET and non .NET webservices will work).
- It is designed to host any .NET language on the client side such as C#, VB.NET, IronPython, IronRuby among others. So unlike the Flash and Flex frameworks it stands out by allowing one to program in a very similar language to what you do on the server.
- Unlike the regular .NET Framework, Silverlight is founded on Dynamic Language Runtime (DLR) and CoreCLR (a stripped down CLR) rather than Common Language Runtime (CLR) which I think means all those goody languages can be used as scripting languages and play with Javascript.
- Its presentation format is Extensible Application Markup Language (XAML) which is also used by Windows Presentation Framework (WPF) - check out Bill Dollins post on SharpMap and WPF for a usecase example of GIS and WPF. If you have ever looked at XAML, it resembles Scalar Vector Graphics (SVG) in numerous ways which many have argued why didn't Microsoft just use SVG? If you want more details on this format and how it is different from SVG check out XAML.
Currently Silverlight 1.1 is in Alpha and runs on Windows and Mac and IE and Firefox browsers (I presume Safari too), but not Linux/Unix. Here is a good primer 10 things you need to know about Silverlight
and also provides some rebuttal from Anti-Silverlightians.
In comes Moonlight. Major parts of the core of Silverlight (the DLR, IronPython, IronRuby are released under Microsoft's Permissive License which is similar to BSD and MIT licenses).
Moonlight is a Novell Opensource initiative and a Silverlight implementation which is targeting the Linux and MacOSX space which will allow SilverLight apps to run on Linux unchanged and enhancements to their MonoDevelop will allow development of SilverLight apps on Linux/MacOSX as well.
I'm pretty impressed that the Moonlight crew has been keeping heal to heal with the Silverlight group. Moonlight has Silverlight 1.1. support already as well. In fact my favorite demo of Silverlight, the flight itinerary, now runs on Moonlight and they've got pretty slick looking Desklets for Linux. You should check out Miguel De Icaza's blog if you want to get the low-down on Moonlight and the general Silverlight Framework.
I guess the 2 things that turn me on about the whole Silverlight and Moonlight space is - VB.NET/C# etc. running in a browser and
the fact that XAML is plain text XML which means we can autogenerate it fairly easily and type it out. I just hate looking at html and XML in a WYSIWIG Editor and feel more comfortable editing the XML directly mostly because I hate excess bulk added by WYSIWIG Editors.
I saw this Smalltalk article of Smalltalk on the DLR and it brought back such fond memories of when we were Smalltalk programmers. Smalltalk is one of those great languages that you wish hadn't come out as early as it did, because it was a language too advanced for its time.
I was never impressed with Flash because it seemed like to do anything impressive you needed to use activescript and the underlying presentation could not be easily autogenerated.
Also all those web designers running about creating annoying front pages for sites really irritated me (although I guess this may be eventually said about Silver/MoonLight as well). Those views are of course from a person who never took the time to learn Flash so take my opinions with a grain of salt here.
Its interesting to note that one of the showcase demos of Silverlight is a Flight Itinerary map called Silverlight Airlines. The code is downloadable from the aforementioned link as well. This is one of the reasons why we are so interested in this technology.
One of the larger projects our company, Paragon, is working on is a Flight Operations Management system.
Basically how best to schedule numerous fleets of aircraft given known desires of trips and known fuel stops among other contingencies. Pretty fun stuff from a database and Operations Research perspective.
AJAX is just not quite doing it for us anymore.
We are reaching the limits of what we can do with AJAX. We have taken AJAX to places it should never have gone.
Another thought that comes to mind is that PostGIS has all these functions such as AsGML, AsKML, AsSVG and perhaps eventually an AsJSON.
I'm just curious if an AsXAML would make sense, what would that look like, how would it compare in speed and usefulness to the aforementioned, and can it be easily integrated into a Silverlight application via a XAML dispensing webservice?