New Microsoft Silverlight Features Have Windows Bias
An anonymous reader writes with this quote from a story at El Reg about an early look at the Silverlight 4 beta:
"There are ... major changes to Silverlight's out-of-browser functionality, a loose equivalent to Adobe Systems' AIR runtime for Flash. Even when fully sandboxed, which means having the same permissions that would apply to a browser-hosted Silverlight applet, out-of-browser applications get an HTML control, custom window settings, and the ability to fire pop-up notifications. ... Unfortunately, some of these features are not what they first appear. The HTML control in Silverlight 4 is not a new embedded browser from Microsoft, but uses components from Internet Explorer on Windows, or Safari on the Mac, which means that the same content might render differently. The HTML control only works out-of-browser, and simply displays a blank space if browser-hosted. Clipboard support is text-only in the Silverlight 4 beta, though this could change for the full release. More seriously, COM automation is a Windows-only feature, introducing differentiation between the Mac and Windows implementations."
For those not up to speed on the windows acronyms, COM automation is just another word for ActiveX. It's exactly the same thing. http://en.wikipedia.org/wiki/OLE_Automation#cite_ref-5
Anybody who didn't see this coming when MS came out hard about the "amazing cross compatibility besting Adobe!" a few years ago is insane. This is the same old shit they have pulled time and time again. At least they let the cat out of the bag before this needless plug-in gained any real traction. And no I'm no Flash fan. Adobe treats us like dogs too.
Pope discovered to be Catholic
Bears recorded shitting in woods.
I really want to run Silverlight in Ubuntu! Well, no that was sarcasm, but Linux should be mentioned when one talks about cross comparability. We should not allow the meme to emerge that the only options are Mac or windows.
...thank God.
Only Microsoft has the peculiar genius that allows them to take a relatively straightforward concept (reference counting/smart pointers) add a totally over-the-top, incomprehensible library that was designed around the limitations of the broken template support in VC6 (ATL), then totally abandon it for "teh new shiny" because you lost a court case against Sun (.net).
I have written a *lot* of code in ATL, and I regret practically every moment of it; I liked the idea of COM/ActiveX, it's actually a really cool concept, and it even seemed to have an awesome future (all these COM objects that could talk to each other...Excel could control my toaster via my custom ActiveX dll) but suddenly it became all about the web and the era of a component-laden operating system ended before it really ever began. So for that I slogged through a bunch of ATL books, got to the point where I thought I knew how it all worked, and then all Microsoft wanted talk about was C# and .net.
Obviously this is some kind of mistake. Miguel assured all us Linux users that Microsoft was a changed company, they would NEVER do something like this! Surely Moonlight would be 100% compatible with Silverlight and Linux would be considered a tier 1 platform!
He wouldn't have lied, would he?
Each time I read about silverlight I get angry. Why won't Microsoft invest time and energy making IE html5 compliant instead of promoting this f*** product that nobody wants anyway. I mean, look at the competition for god sake. IE is stuck with Javascript 1.5 since November 2000. Man we are now 9 years since Ms has updated its Javascript engine. Firefox, Chrome, Safari, name it, all have javascript support almost if not ready for ECMAScript 5.
What is comforting in a way is the low deployment of silverlight. Google can give us a slight idea : http://www.google.com/insights/search/#q=adobe%20flash%2Cmicrosoft%20silverlight&date=today%2012-m&cmpt=q
I know at least that it is not deployed at work : 20,000 less pcs for Microsoft + the 2 mine at home.
Microsoft today announced the release of version 4.0 of its world-beating Silverlight multimedia platform for the Web. As a replacement for Adobe’s Flash, it is widely considered utterly superfluous and of no interest to anyone who could be found.
“We have a fabulous selection of content partners for Silverlight,” announced Microsoft marketer Scott Guthrie on his blog today. “NBC for the Olympics, which delivered millions of new users to BitTorrent. The Democrat National Convention, which is fine because those Linux users are all Ron Paul weirdos anyway. It comes with rich frameworks, rich controls, rich networking support, a rich base class library, rich media support, oh God kill me now. My options are underwater, my resumé’s a car crash, Google won’t call me back. My life is an exercise in futility. I’m the walking dead, man. The walking dead.”
Silverlight was created by Microsoft to leverage its desktop monopoly on Windows, to work off the tremendous sales and popularity of Vista. Flash is present on a pathetic 96% of all computers connected to the Internet, whereas Silverlight downloads are into the triple figures.
“But it’s got DRM!” cried Guthrie. “Netflix loved it! And web developers love us too, after all we did for them with IE 6. Wait, come back! We’ll put porn on it! Free porn!”
Similar Microsoft initiatives include its XPS replacement for Adobe PDF, its HD Photo replacement for JPEG photographs and its earlier Liquid Motion attempt to replace Flash. Also, that CD-ROM format Vista defaults to which no other computers can read.
In a Microsoft internal security sweep, Guthrie’s own desktop was found to still be running Windows XP.
http://rocknerd.co.uk
From TFA:
Unfortunately, some of these features are not what they first appear. The HTML control in Silverlight 4 is not a new embedded browser from Microsoft, but uses components from Internet Explorer on Windows, or Safari on the Mac, which means that the same content might render differently. The HTML control only works out-of-browser, and simply displays a blank space if browser-hosted.
The difference in rendering between IE on Windows and Safari on Macosx is a reality, whether silverlight is involved or not. The purpose of the HTML Control is to allow scenarios dependent on the HTML Bridge, the part of silverlight that blurs the lines and allows communication between the html dom + javascript and C# code, to run correctly when the app is hosted out of the browser. It's essentially a crutch to allow developers that want to use siverlight a way to leverage existing investments in web application development.
More seriously, COM automation is a Windows-only feature, introducing differentiation between the Mac and Windows implementations. Since cross-platform Mac and Windows is a key Silverlight feature, it is curious that Microsoft has now decided to make it platform-specific in such an important respect. Microsoft Office and parts of the Windows API have a COM interface, so access to COM makes Silverlight a much more capable client.
This is a fairly obscure feature, and I'm fairly surprised that it was included at all, but doubt it'll be of use to the vast majority of current and future silverlight developers out there. Like the html control, it's a crutch, to allow developers that want to use silverlight a way to leverage existing investments. The mantra I've heard out of the silverlight team is to focus on unblocking customer scenarios (scenarios they cannot unblock themselves) without compromising the overall feature goals (like keeping the runtime download small).
Nevertheless, Silverlight has crossed a threshold. It is now a runtime that has extended functionality only on Windows. That will not help Microsoft win developers from Adobe AIR, which has the same features on both Mac and Windows.
I don't think it'll matter. Any developer that is seriously considering using silverlight over Adobe AIR, but is then persuaded not to because Silverlight's Trusted Out-Of-Browser scenario has COM support on Windows and not on Mac is "Doing It Wrong". It's an edge case feature that doesn't affect Silverlight's over all "Cross-Platforminess".
Flame On.
So far, the only feature in TFS that I can see as having "Windows bias" is ActiveX support. Which is kinda not surprising (I mean, who doesn't know that ActiveX is "that evil Windows thing" - even people who don't even understand what it is and how it works?). Qt also has an ActiveX support module, and it doesn't make it any less cross-platform - no-one forces you to use it. Same applies here.
The full .Net framework has a lot of hacks to support COM. Your STA running managed code can get preempted at any time to Release COM objects behind RCWs that get garbage collected. This can cause interesting stress bugs. It gets even worse when an RCW around an STA gets finalized on the finalizer thread. That blocks the finalizer thread, because it waits for .Net to Release the COM object on the original STA thread. If the STA thread is in a wait state, you can hang the finalizer thread. Another big issue is around supplying alternative credentials for DCOM. .Net has no exposure of the CoCreateInstanceEx API that allows you to specify alternative credentials. Even if you wrap it yourself, you have to make sure you call CoSetProxyBlanket before you do any calls - and .Net does QueryInterface under the hood for you, and you have to make sure CoSetProxyBlanket is called again, then the simple programming interface of .Net becomes more of a hindrance than a help.
They were supposed to get away from COM in the Silverlight versions. Now the waters are even muddier, because WPF is still supported on the Full version of the CLR.