So, we’ve heard a lot of news about Silverlight recently from Mix 09. Great to see the platform evolve — but what’s the future?
Personally, I’m skeptical. I think there are several main problem areas in my eyes when it comes to developing with/for Silverlight:
- There are things that Silverlight can’t do. In past versions, it was much easier to list the things that Silverlight can do, but this is fortunately changing.
Still, now Microsoft seems to use “business applications” as a guideline for the feature set. Well, for some definition of “business application”, that is. I think there’s still no printing support, and if my customer has the requirement of using a bar code scanner with my application, at the very least it’s going to be a PITA to make that work. If it’s possible at all.
I have heard somebody say recently that this is not a problem, because Silverlight covers the important core and whatever is missing isn’t hard to do yourself. I call BS on that. Why have we spent many years adding all this functionality to the .NET Framework, if we don’t need 90% of it? Even if it’s possible or even easy to do some stuff manually — we haven’t created this framework just to drop it now and reinvent it all the time.
In the end, my personal point of view is that there would have to be very compelling reasons for me to consider using a platform that restricts what I can do. Platforms with similar restrictions have been around for a very long time and I’ve always been hesitant to use them, because there’s a big lock-in effect associated with using such platforms.
There are even more things that Silverlight can’t do. I mean, different things. Have they put in the whole of the Color enum yet? Last I heard, there was a lot of stuff missing from Silverlight that would make development very painful — like enum values, method overloads and the like. I imagine it will be much like learning a new framework… whatever knowledge of the .NET framework you have already, you will stumble upon restrictions of this kind continuously.
Of course the idea behind this is sound — restrict the size of the framework, and the effort needed to port it, by reducing functionality in a clever way. But that approach is not compatible with making the resulting restricted framework the next silver bullet platform. Again, BS.
A Silverlight that is getting more full-featured in certain places (like data or graphics support) competes even more obviously with WPF. What an extremely stupid thing to do — the availability of two different platforms with so many similarities has been confusing enough to most people the way it was before Silverlight 3. For almost all use cases, a WPF application deployed as an XBAP has the exact same end user appearance that a Silverlight application would have — but of course it would take you much longer to create the Silverlight app, because WPF benefits from the complete framework.
Now some people are trying to resolve the chaos in their minds by saying WPF is dead. Once more, BS. Dead? How does that work? Visual Studio 2010, dead? Blend, dead? Ridiculous. The situation has just become more confused, that’s all. That’s what the world is like, deal with it.
The evolution of Silverlight is absolutely chaotic. We’re on the third version within two years, and please go compare Microsoft’s vision statements with current reality. I understand that these things happen, and I can even guess at some of the reasons, but at the same time, am I going to base my own projects’ future on a project like that? Hm…
Maybe Silverlight is going to evolve over time to be as full-featured as the standard .NET framework. If that’s the target though, why do the extra work in the first place? The .NET framework was supposed to get us out of DLL hell, now we’ve got two different .NET Frameworks. What’s good about that, please? Hm, let’s see, here are the advantages that Silverlight has:
- It is cross platform compatible. In other words, MS have taken the time to make it available on the Mac — you be the judge if that’s the same thing as saying it’s cross platform compatible.
That’s it. No, really. Now, is that important to you? Is that very important to you? Let’s summarize again.
- Runs on the Mac as well as Windows
- A PITA to write any code against, due to missing functionality wherever you look
- No support for certain very important use cases of business apps, only existing solution “do it yourself”. Of course some of the stuff that’s been announced at Mix 09 isn’t really there yet…
- No support, not even announced, for important use cases of non-business apps. File system access. Compatibility with your favorite database system. F%$#ing hell, last time I heard, you couldn’t control the fricking right mouse button!! (!!!!)
So — do I like Silverlight? You might be surprised, but I do kind of like the idea of Silverlight. But on the other hand I think that Microsoft is making some extremely weird decisions about it, and that the whole excitement about it is 99% marketing. In the past year or so I’ve become very much disillusioned with the Silverlight efforts — Microsoft want to compete with Adobe, and fuck the strategy, and everybody who’s building their business on the basis of MS technology, or the reliability of their statements and commitment to their technological inventions.
Here are some questions for you:
Do you like Silverlight?
Do you agree that the reason you like it is that it promises Mac compatibility? If not, please enlighten me what important reason I’m missing…
If Mac compatibility is so important to you, why haven’t you been using Mono for several years? Or have you? Why aren’t you still using Mono instead of contemplating Silverlight? Or are you?