Those of you that follow me on Twitter will no doubt have been witness to some interesting (and sometimes tedious) discussions between myself, other Flash Platform enthusiasts and Scott Barnes of Microsoft. Scott was an ardent supporter of Flex before his move to Microsoft which makes his perspective all the more interesting.
Thought it was worth asking him to answer a few questions about the latest Silverlight developments. As you might imagine I don't fully agree and sometimes strongly disagree with some of the points he makes, but its an interesting read nonetheless.
Thanks for your time Scott, can you introduce yourself and explain a little about your role at Microsoft?
Sure. I’m a Rich Platforms Product Manager, which is a great title to confuse many with. I’m simply part of the WPF & Silverlight team. I used to be the first RIA Evangelist for Microsoft, so it does in part derive from this previous role.
My role varies from month to month as simply due to my background, and I have a wide degree of interaction with not just the WPF & Silverlight teams but other teams within Microsoft. Overall, my main focus is ensuring we’re putting the right features into Silverlight & WPF whilst ensuring we keep a balanced view between designer and developer needs. I’m currently focused on a complete upgrade of our website experiences.
I also spend a great deal of time monitoring and interacting the online/offline developer and designer communities, as I’m constantly searching for evidence on how we can better meet our customers’ needs.
We've seen some exciting announcements around Silverlight 3 at MIX09, can you list us some of your favorite new features
Easy. Out of browser, Pixel Shaders & Effects.
Out of browser
This for me is one of the more interesting features we announced. It’s essentially a new canvas to paint from, and that startup entrepreneur in me has sparked a new level of interest in how far one can go with this concept.
I’ve listened to a lot of ideas on how this will change customers’ business directions and—more to the point—how it will impact the concept of what we know as RIAs today. Now comes a new wave of interest in Silverlight which in turn will grow our developer/designer audience further; thus new creations will be born. That ultimately is the proving ground for why this feature will be so compelling. Best part is, no additional installs are required.
I like to think that if you take this new feature and combine it with our recent addition to C# called LINQ (Language Integrated Query), you’ve also got what I foresee as starting a great essential offline storage story. LINQ is an addition to C# and enables developers to write SQL-like syntax against any data; whether they be lists, dictionaries or even object properties. The idea behind this came from one of my personal geek heroes, Anders Hejlsberg, Chief Architect of C# and one of the founding architects of Borland Delphi (My first Windows based GUI language/tool of choice) – currently a Technical Fellow at Microsoft.
Pixel Shaders & Effects
When I first joined the Silverlight team, the first thing I investigated was why we didn’t have drop shadow and blur baked into the runtime. Turns out this entire concept has been sitting in the to-do pile since 2007, so for me it was great to see this finally come out. I’m excited to see that folks who previously put Silverlight in the “not ready” pile have, in the last week or so, asked me to hook them up with tooling so they can get started. For me, this tells me we’re on the right track.
I think pixel shaders and effects—and other features like 3D and ClearType—will signal to the design audience how serious we are about enabling better design with our platforms, whilst at the same time continuing to help them work more closely with developers.
“With great power, comes great responsibility” however: please Silverlighters, let’s avoid propagating the dreaded water ripple effect from the old Java Applet days…It’s in the anti-design pattern catalogue now. ;)
What direction do you see Silverlight going, is further mobile and devices support on the roadmap? With Silverlight announced to be getting ported to S60 devices, can you imagine it ever coming to lets say Apple's iPhone?
Absolutely—we’ve shown Silverlight running on mobile devices in the past and we’re excited about this growth area for Silverlight. Even better, I know the development teams in the Silverlight runtime have worked extremely hard to ensure that we don’t differ in development experience from desktop to device, so that for me is signs of a healthy future. That, and I’ve seen Silverlight run on my old Black Jack II using Windows Mobile personally..
But sorry, no inside gossip from me on this one beyond that J
How should we see Silverlight Out of Browser? Is this simply a feature to bring Silverlight web applications to the desktop for basic offline use or should we expect it to get a full API stack and become more like what we see with Adobe AIR?
I’ll answer that question in two parts, first being the Adobe AIR & Silverlight comparisons.
It’s funny; I’ve read a few posts already debating how Silverlight and Adobe AIR compare. Having been a part of some of the early out of browser discussions here, it’s funny to me because the actual DNA for this feature derived from Smart Client wish lists (2002 – No Touch Deployment).
This is important to remember, as Microsoft had both the Smart Client strategy and also the WPF (XBF) years before Apollo / Adobe AIR came to market (I remember asking Macromedia/Adobe staffers if it was copy back then before I joined Microsoft), so it’s not really a “me too” feature. Instead it’s a lot of the old coming through to the new and sure, we’re not ignorant of Adobe AIR presence, but we simply feel the two are flowing on separate trajectories.
Second answer to your question is more on expectations of Silverlight Out of browser.
Out of browser is really focused on ensuring Silverlight experiences don’t lose momentum the moment the network cable is disconnected and that ultimately is the real secret here. Microsoft has learned a lot of lessons over the years regarding security and we think that you have to be very careful when mixing the metaphors of web and desktop apps. Anything less and you’re asking for trouble. Silverlight applications running out of the browser are still web RIAs and have the same type of safe sandbox. A Silverlight app isn’t going to wipe your desktop clean or allow someone to create an invisible window over your desktop and intercept your passwords. We are extremely cautious with our sandbox and will continue to open up areas of the feature where it suits customer needs the most whilst ensuring we protect the end users.
For a more robust, tightly integrated desktop application, you’re in luck—WPF is a much better fit for your needs. WPF has a much deeper continuum to Silverlight and the best part is you’re able to re-use a lot of your skills and assets inside WPF, something I think no other solution on the market today provides. I mentioned earlier LINQ and how great it is; well one thing I’ve found is that you can use LINQ universally across both platforms whilst at the same time having a natural amount of extra native access within WPF.
You yourself have come from a Flash/Flex background yourself, do you see Silverlight as a competing technology across the board or do they each have their own use case? Are there cases where you would recommend Flash Platform solutions over Silverlight?
It’s going to sound silly, but I honestly don’t think Flex & Silverlight compete with one another full on. The reason I say this is that folks in the Microsoft customer base didn’t adopt Flex prior to Silverlight and last time we checked, haven’t since. I’m also not seeing a dramatic increase in Flex developers since I left that community, but have seen an explosion of developers (4:1 ratio on Flex) in the Silverlight community – especially since it started from 0 only a couple of years ago.
I mention this as I personally think, having worked in both spaces, that Flex requires more effort to pitch into the enterprise than a native .NET solution; given Microsoft already has healthy growth there – and I’m speaking from experience here, as I’ve sold Flex back when it was 15k per CPU. Instead, it’s really about ready-made solutions vs. starting from scratch, and I’m not convinced the two products will be isolated as being a choice. Companies, given the current economic climate, are more focused on choosing a platform rather than a runtime with a framework. To compare Silverlight with just Flex doesn’t do either products justice, instead it’s really about Microsoft .NET vs Adobe Open Screen Project.
I mostly get comparison questions between Adobe and Microsoft from developers themselves or folks looking to prove some point. I never get these questions when it comes to large accounts or customers in general: To them it’s both runtimes are simply just a bullet point in the overall discussion, as they are more focused on how they can build an entire solution end to end, servers, tools, etc. all play a role. Not majority of the time which runtime has the better feature matrix?
The only time I would concede Flash over Silverlight is when we simply don’t have an offering that fits. This can vary in discussion, sometimes it’s a case of the person in front of me has already heavily invested in Adobe technology or they’ve asked specifically for a feature that we don’t have, resulting in their product evolution becoming brain-dead without the said feature.
In the early days the feature vs. feature discussions were hard ( I hated every minute of it), I will admit, but today, I’m finding it easy given I think we’ve got not only parity with Flash in terms of core features and a differentiated offering and a great deal to offer our customers.
In closing Pete, I honestly think both Microsoft and Adobe are solving similar problems but with a different set of tools, and so we are both just going to co-exist. I don’t think you have to be one or the other and companies like Cynergy Systems for example get this, where they are being successful on both platforms.