Anyone who knows me is very aware of the fact that I am a big Linux fan and have no doubt sat in despair as I have bawled on and on about how great it is, which it is. I can certainly remember sitting working on a website with a colleague using ASP and VB6 COM components asking ourselves how it was our employers had missed such technology as PHP and plumped for the inadequate Microsoft offerings.
Lets get one thing straight here, in my humble opinion, Linux is and always will be a much better hosting environment for web sites. It’s less resource hungry (who needs a UI when the server’s primary job is to serve web pages), is in wider use and is free, ticks all my boxes that’s for sure. Not one day goes by where I don’t clap eyes on an email that says something along the lines of “Is anyone on server blah blah blah, I need to get on and all the connections are used up”, two connections! TWO! I mean c’mon, the last time I checked a b’gillion people can log on to a *nix server!
Rant over, what I was going to say before I got on my pedestal, was that WPF and Silverlight are actually in reflection (after using them for a while) a pretty sweet offering, for the job they were intended. I use WPF and C# for all of my work in multi-touch applications, I now wouldn’t dream of trying anything else, the language just fits and the tools albeit very visually focused are really good. I love using Expression Blend, it makes designing interfaces an absolute breeze and some intelligent individual (martin fowler?) came up with a great pattern (MVVM) based on MVC for binding visual objects to data, brilliant!
That said, if I want to build a visually rich interface for a web application that I can’t acheive using HTML and jQuery then I might go for Silverlight. Yes, there is loads of stuff in WPF that you don’t get in Silverlight but you can work around all that pretty easily. This leaves one problem, hosting, I wouldn’t touch let alone pay for Windows Server. So, I want to be able to build a Rails application and come up with some easy way of making it play nicely with a Silverlight front end. Here is what I have planned;
1) I build my skeletal rails application generating scaffolds for all of my data entities.
2) I write a rake task that generates (and maybe compiles in mono) a Data Repository style interface to all the RESTful resources generated by rails
3) Import this in to my Silverlight app and away I build, binding visual shit to de-serialised objects from Rails.
4) Deploy on to Linux and laugh about the very thought of using Windows as an application server.
What do you think, genius or complete waste of my time?
P.S – Read this book, it’s bad ass!