Nov 21

In a recent article in The Register http://www.theregister.co.uk/2009/11/20/silverlight_4_windows_bias/ they make the case that COM support in Silverlight 4 has “crossed a threshold” that will make Silverlight less appealing to developers that want to do cross platform development.

Yes it is true that now there is a feature in Silverlight that is Windows only, but it is still a Beta and not a released product so it is possible that some Mac native integration will come as well. Clearly it would have to be different since Mac doesn’t support COM, but hopefully if added it would be done in such a way that the interfaces on native APIs on both platforms from Silverlight would be similar.

Adobe AIR 2 is also adding native API support, and I don’t have the details on how it all works, but clearly once you start making native calls there are going to be differences in how they are called because no two platforms are identical. One of the top feature requests for AIR 1.0 was native API integration, so this is definitely something people want.

The key point in my opinion is whether COM support makes it harder for someone to develop a cross platform application in Silverlight. I feel the answer is clearly “no”, simply avoid the COM APIs if you want a cross platform application.

You’re not forced to use the COM APIs, but if you want to provide extra functionality on Windows the COM interfaces can come in very handy for things like integration to Microsoft Office, and I look forward to seeing what people come up with using this new feature. There was, by the way, a Windows 7 only feature in Silverlight 3, the ability to use multitouch. And similarly, if you wanted to write a cross platform Silverlight app you would just avoid the multitouch library.

One of the complaints I always has about Java’s “write once run anywhere” approach was that it never took advantage of the strengths of the platform, so it felt like a second class citizen everywhere. I’m pleased to see COM support in Silverlight 4 and hope to see some Mac integration as well. So is Silverlight moving away from cross platform? I don’t think so, and they would be crazy if they did. I’m sure there were a lot of internal discussions on whether to provide this feature and they came to the conclusion that the benefits outweighed any backlash they might get.

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

9 Responses to “Is Silverlight 4 moving away from cross platform?”

  1. Art Says:

    I agree that COM support does not take anything away from the cross-platform nature of SL. I make data driven business apps and in my case I was being forced to WPF solution because of some specialized hardware devices our software can use (but not essential to most users). So COM support in SL means I can now off 99.9% of my app's functionality to Mac users and give Windows users the 100%. The alternative is 0% to Mac.

  2. John Says:

    Although I don't care much about this issue, I have to point out that this is not the issue. The issue is that, once you start providing extra features on one specific platform (esp. one as widespread as Windows), then it becomes too tempting to build apps only for Windows.

    I love Silverlight, and I wish it could become the Web 4.0, but that requires strict cross platform support. Don't ask me how, but I wish they will find a way to support COM's equivalent for Mac & Linux (transparently).

    Otherwise, I can already see some killer apps coming to Silverlight 4 and getting heavily criticized for only working on Windows.

  3. Tom Says:

    Mono is doing this today. Kind of.
    P/Invoke: http://www.mono-project.com/Interop_with_Native_L…
    COM Interop: http://www.mono-project.com/COM_Interop

  4. Axel Says:

    >Otherwise, I can already see some killer apps coming to Silverlight 4 and getting heavily criticized for only working on Windows

    No app was *ever* heavily criticized for only working on Windows, on what planet are you living? COM access from Silverlight is a good thing, and developers seeking cross-platform compatibility can simply avoid using it, and/or provide alternatives on other platforms, it's that simple. I wish SL offered full plaftorm access, not only COM access.

  5. Steve Says:

    Adding COM support to me is a major step backwards. Open standards are the best direction for Microsoft to take.

  6. Art Says:

    I think solving real business problems is the right direction and COM support does this. Most applications are not web facing — most are software is developed for in house consumption or serves vertical market where the reach of HTML standards is not critical. Now SL can do both. If you want to target Mac + Windows, you can. If you want to target Windows only, you can.

  7. billreiss Says:

    For the commenters that are against the new COM interface in Silverlight 4, would you be less against it if there was an AppleScript interface as well? On a conference call today I asked Scott Guthrie about Mac native API integration and he said that they're looking at AppleScript and other integration techniques for the Mac platform. So would it still be bad because it's different on both platforms or does offering similar functionality on other platforms make it better?

  8. Kyle Says:

    Silverlight is turning into a crippled .NET framework (where the hell is System.Diagnostics.Stopwatch?). If I want Windows-only support, I will use the much more complete .NET framework thank you very much. This was a stupid addition.

  9. billreiss Says:

    I don't see any requests for Stopwatch on http://silverlight.uservoice.com so you should probably request it if it's important to you. If you're saying that they're focusing on the wrong things then you can make your voice heard. Office integration was a big request from business customers and this was how they decided to provide it.

preload preload preload