It's never really been a question of one or the other for us and that is largely because we are already a Microsoft shop. So if you are already a Microsoft shop, and there are lots of them, and we have both designers and developers on staff, and some individually might have experience with Flash, Flex or ActionScript, as a whole, as a company we just do the Microsoft platform. Which has been great because without Silverlight we could be left out in the cold. We are able to do great things with Silverlight because we already have people that know C# and the other tools and platforms around it.
We are asked a lot about the benefits of Silverlight and why one might choose, because here is the thing: two years ago, there's no choice - there's Flash. So this becomes a choice. Now, before Flash people may have used AJAX, or things like that, so now at least we have options. So we are using it (a) like I said before because we are already doing .Net programming so we know it, but it goes beyond just simply a language -- it's the whole platform. To us it's less about the user experience (which is very important), but you can have a great user experience that's very hollow, where there's nothing underneath -- in other words it's not connected to any kind of meaningful business application for example.
And so knowing the .Net platform gives us the depth to go and talk to databases or connect with other systems. Really, it gets us to a point where we are very comfortable, as well, and connecting with systems that we might not be able to as easily do that with Flash, for example. So that's some of the benefits we get. There are a couple of features within Silverlight that are unique - number one you've got Deep Zoom, which is a great feature that allows you to do the things that we did for the Hard Rock project, so http://memo.hardrock.com is the website for that. It has great industry-supported VC1 - VC1 is a video codec for high def and it also supports DRM, so for studios or other broadcasters that have already made a commitment on Windows Media, that stuff just works. Now there are newer video features like adaptive streaming, which we use for the Democratic National Convention, so I think that URL is just http://demconvention.com, but you can see Obama's acceptance speech using the new adaptive streaming technology video from Microsoft. There's other great features but those are some of the ones that we really like.
Yes, it does. The paradigm, let's look at it from two perspectives. From the engineer's perspective, you can use any language that is supported by the CLR. So you can use IronRuby, Python, you can use C# -- which is what we use - VB.Net... So the language becomes really less of an issue. But you still have to know the platform itself and that's where ultimately everybody has to talk to, but from the designer's perspective, our designers are coming to the table already with an experience of Adobe tools so they can still use Illustrator as long as you are generating vector art. If you are generating bitmaps, that's fine, we prefer vector assets because they are scalable, skinnable, they are programmable essentially.
But in between you can skip Adobe Illustrator and use the Expression suite of tools, so there is a tool called Expression Design, that is Microsoft's vector art tool so we tend to start our projects today using Expression Design, so you come in from one end from the programming prospective, the other end from design vector assets, they come together in a tool called Expression Blend, which is a great name because you are blending these tools together where you can add motion graphics and interactivity to what would normally be static assets. A good example I showed in my session -- we had an Etch-a-sketch that my engineer wrote and it is just a couple of buttons that just simply move the cursor around the screen with a static simple red background with white buttons. That application worked completely by itself, it just didn't look like an Etch-a-sketch. So he finished it, showed it to the employees.
Literally that night, one of our designers took the code with him home on his laptop and even though he is not programming, he was able to open up this XML code that contains the UI layout and skin it. And it looks like a shiny, brand-new Etch-a-sketch, it's very cool. So now it's almost like a reverse waterfall, you build the app and then you design it. Usually we are working together, but even if it's design first and then build it doesn't matter, the designer/developer workflow is what really makes this platform work well. We're not getting JPEGs, we are starting with source vector art - it's really good.
4. What future changes to Silverlight would you believe would solidify it as an RIA platform?
So future changes, well there has been a few that have been announced. Microsoft is improving some of the rough edges that are there. They've been working on Silverlight 2 for a while, but there are some basic features that we want that they are going to be there around data binding. They are integrating the toolset better -- right now our designers have to have Visual Studio installed to check out files and it's kind of a pain. That will be unified, when Visual Studio 10 comes out, between Blend and Visual Studio. There's H264 video support announced, because they are only two players: there's VC1 and H264.
Between those two codecs, if you have a platform that works with both you are in business. Adaptive streaming will be out as well, which is another great video support. But the features for building more business-oriented applications, those are there today, you can do that now. They are just going to continue, just like Microsoft has been improving WPF, we expect to see new collections of controls. Just two weeks ago at PDC Microsoft announced a toolkit for Silverlight, so there are controls that you can download that are more appropriate probably for your traditional business application.
The ultimate deliverable for Silverlight is a binary file, the extension is XAP -- you call it a zap file -- but that is just the result of a compilation. The source images, it's XML. So ultimately the designers and developers are working on ASCII, it's an XML file, to describe the UI. The end result though is compiled and packaged into a binary which is more efficient to download, but we don't mess with that, we don't version control the binaries, we just version control the XML file. It makes it very easy for the developers and designers to work together. Think about how CSS in a div-driven table-less design kind of allowed the developers and designers to separate, we can do that as well.
And they come together around the XML file. It's called resource dictionaries which can contain a list of "this is what this button should look like and how it should behave", there's another feature called the Visual State Manager, and this is really cool, I just figured it out myself, it's for Silverlight and allows a designer to design the state of an object, like a button. So you think about a button -- you have the normal state, the mouseover state, the pressed state and the disabled state. So you can design what it looks like for each one of those. And then in Blend you can tell, you can describe... First of all you start with the default normal state and then for the pressed state you might take a few layers and push them over and down closer to the shadow because that's how buttons in 2D space look like they are being pressed and you might take a highlight and make it look like it's shiny when you mouse over it.
So it is very easy to describe that visually, without code, and then you can set the transitions between states, so if I mouse over I am telling it in Blend to go from this normal state to mouseover but only in 0.2 seconds, in two tens of a second. It'll do all that animation storyboard in between, and you don't have to code any of that, it's really nice. And the whole time you can be doing this, and the programmer just knows it's a button, and the programmer can still disable it and it'll pick up the ambient state for it. So there's a really nice blend, so to speak, of the two worlds.
6. Did you notice a large uptake or a large change in Silverlight adoption around the Olympics?
Around the uptake, that's obviously a key important factor because we are in this transition state, because there are people who don't have it. Turns out one in four computers connected to the Internet has Silverlight, which is big. Remember, Silverlight didn't even exist two years ago so they have made incredible inroads in a short amount of time. When Silverlight 2 launched in October, they got a hundred million downloads in four weeks. These are numbers they have released, we know there were sixty million viewers of the Olympics alone, so that probably contributed a lot to the Silverlight pick up.
We have contributed in our own part through the Democratic Convention, through Hard Rock and sites like that, so Microsoft is continuing to make investments in big consumer plays or helping companies like Netflix. Just two weeks ago again they announced an instant launch support - so if you're a Netflix subscriber, you can watch some of the movies right away on the web. AOL has a mail client, so all the AOL users, if they are using this new RIA client, are going to be using Silverlight. The uptake is there, it's definitely happening.
I kind of neglected to mention, I forgot to say that Silverlight works fantastically well across multiple platforms. Basically between Windows and Vista... Windows XP, Vista and the Mac OS X, Leopard. You need an Intel Mac, basically. And then you have Firefox, IE, Opera, what am I missing? Safari! So you've got the major browsers, and then different versions within each one, so Firefox 2, Firefox 3, IE 7, IE 8. In terms of browser compatibility it's far better... I don't know if it's better than anything, it's good enough for our clients, put it that way.
8. Where do you see Rich Internet Applications in general heading in the next few years?
I think we are going to see more ads. I don't know, that's a good question, I mean clearly the social applications continue to blossom to a point where it's getting difficult to track. I think what we are going to see are the traditional ISVs like the Quickens for example, or we'll see like the Office suite of tools, we'll start to have, the lines will be blurred between Windows only, Mac only, whatever, to pure HTML/CSS/Ajax web apps, to something in between.
Then as long as there's a way to make this stuff work offline, or to have state stored somewhere in the cloud... Now you start to get into things like Microsoft Live Mesh and Azure, which I still don't fully understand the implications of that, I think it's big. But I think there are going to be some great opportunities for businesses that have, what we call the traditional software ISV, to have a new offering and a new line of business because they can offer a really good experience that is connected to the web, versus a standalone experience offline.
9. So how do you see cloud computing interoperating with client computing?
So the intersection of cloud computing and client, well... And when I think of client I think of Vista or OS X or XP, versus a web application. The reason why clients are still here, they are not going anywhere, is that you have an incredible amount of processing power, you have your local state, you have devices that are connected and frankly you have applications that will take years and years to move to the cloud so you have to have a home base in which to operate from.
But what the cloud concepts are giving us are a place to park our data, a place to synchronize, a place to socialize, and frankly a place for us to distribute this new kind of hybrid application that works well on the web, but may take advantage of the client processing power. So I think we are going to see... I don't know what the killer app is for it, but we are going to see really good stuff coming soon.
10. What are your hopes for Silverlight 3? As a user, what would you like to see from it?
One of the areas that really interests me is the mashup of 3D... What we see in gaming, and the support you get from DirectX 3D, into web applications; which doesn't seem possible but I know something like that is coming in Silverlight 3. I had a glimpse of it because WPF today allows you to write code, essentially shader libraries, but manipulate them as a high-level component in WPF.
So I can write code that takes advantage, that actually runs on GPU, which I have never done before until today. Previously everything we have built runs on the CPU. I am not a game programmer but there are aspects of gaming technology that we can apply in regular business apps, things like transitions and motion graphics and video support. That kind of functionality, we are going to see that on the web, it's going to make web applications that much better. So that I have a big hope, I think it's really going to push the bar on what's possible in Silverlight 3.
One of the things that we see from our clients today, they are coming to us wanting to build software, but they want to start from a design perspective first. Where five years ago it was very technology-focused, now it's user-focused. I think what is happening is that the world of consumer... Even informed by the XBox console or the iPhone, the kind of consumer touch that we have in technology, they are expecting that in the traditional, stodgy business applications.
And there are reasons for it: (a) you can differentiate yourself from your competitor if your graphics look better than your competitor's, but (b) I think it really has the ability to enhance usability by showing subtle transitions, or just a certain amount of polish to an application. Because business applications tend to be pretty boring, but they don't have to be. And if there is a way to allow people to gain insight into data they are working with rather than just entering data, I mean that's boring, it's a really poor use of computers to simply be a funnel for catching data, it's better to use computers as a way to surface up a novel, unique user experience to allow humans to infer and make decisions about the data which ultimately that's what we are pretty good at.