Monday, August 27, 2007

Media Center Markup Language -- why?

This story starts off two nights ago, when I spent a considerable amount of time trying to get my Xbox 360 re-connected to Vista.

That's the thing about Microsoft products. They offer more verticality, if that's even a real word outside of software marketing buzzspeak, than any other solutions on the planet -- IF you can get them to work in the first place.

My 360 and Vista work together really great -- except for the last couple of weeks. Foolishly, I had tried to use Internet Connection Sharing to hook up a second computer without a wireless card to my Vista computer, which is on Wi-Fi. This Redmondesque booby trap prevented the 360 and Vista from communicating with each other... even though I could see the 360 in the Network panel. Really, how do you write software that can have a bug like that and not be otherwise completely broken? It's pretty remarkable sometimes what Microsoft is able to ship and have work for most customers.

After turning off ICS -- by the way, you have re-enable the second connection to get the Sharing panel to show back up to disable ICS; that's another gem hidden in Vista -- I was able to watch my Amazon Unboxed movie and everything was swell.

That's not where this ends though. That was just some random sniping at Microsoft for what follows.

In the process of methodical Googling to find out what the problem was, I came across info about the Media Center SDK. I was intrigued. Being a chronic adopter of all technology meant I had to take a look at it to see what it was about.

Booby trap.

I have a lot of respect for Media Center. I think they've done a great job with it and it's awesome that it basically ships with all mainstream consumer versions of Vista. That said, how did this group come to think that what the world needed was another brand-new markup schema for describing UIs?

That's right. MCML -- Media Center Markup Language. It's like XAML... except it's not at all like XAML. My spidey-sense tells me MCML is on its own island within Microsoft. No UI designer, sparse documentation and no other applications that use it. It's also pretty arcane for what it is. As an outsider, it seems the MCE team had a slight case of "not invented here" syndrome when they decided to take this on.

Why do this?

Well, I can see the tech requirement that led to this kind of thing. They wanted a generic markup language that would work across Media Center extenders like the Xbox 360. They didn't want to have to mess around with unproven technology like XAML.

Of course, there's a little markup language called HTML that can be scripted with Javascript that seems to work for a lot of applications. And hey, I think Microsoft has a pretty good engine just sitting around for that exact pair.

That's not to say the MCE team doesn't tell you how to use XAML or even HTML if you want to. You can do it, but they have a fraction of the documentation and it can't be used on Xbox 360 with any performance.

I have no problem with a custom markup language when it doesn't require ripping up all precedent and can still work with tools you already use. A great example is Facebook's API. Their FBML is comprised of simple extensions to HTML. Plus, it is the only API they offer, so devs won't be very worried about its future with respect to Facebook.

That last bit pretty much surmises how I feel about all Microsoft development that isn't in the mainstream at Microsoft: fear of losing long term support. Something like MCML has the potential to leave third party devs out in the cold when the SDK/project gets canned. An astute MCE developer should concerned that this is the only project at Microsoft putting its weight behind this solution -- and this project isn't exactly a raging success.

The funny thing is that all of the alternatives web people are talking about are Silverlight or XAML based. Newsflash: developing on top of Silverlight doesn't help your chances of longevity (In fact, it probably reduces it. I'd hazard a guess that SL gets canned before MCML).

In any case, can someone please explain why Javascript and HTML wouldn't have worked? What great advantage am I missing that MCML provides?

This harkens back to my JavaFX vs. Silverlight vs. Flash vs. DHTML/AJAX post. The only real players in the next 5 years will be DHTML and Flash -- especially after ECMAScript 4 allegedly merges Javascript and Actionscript.

No comments: