Hawkeye on Silverlight

While I was crusing the zoo with the family on Monday, everyone else was focused on the big announcement coming out of MIX. Short version of the press release: the next version of Silverlight contains a small, cross platform CLR. As you might imagine, this is somewhat significant. Check out reaction from TechCrunch, Sam Gentile and Scott Hanselman.

A year ago, I wrote “Where else should the CLR live?” At the time, I was talking about XNA (which had just been announced) though I was aware of the plans around what I think is now officially called CoreCLR (got the name from Scott’s post). The first time I heard about this, it literally floored me. Part of me is surprised that in the year since then the news didn’t leak and no one figured it out. I mean, doesn’t it seem sorta obvious, in retrospect, that a Silverlight should run on CLR? I mean, if we can shrink the CLR down to fit on a watch, getting it into the browser seems like a no-brainer. On the other hand, it’s such a huge departure from “Windows, Windows, Windows” that I wonder if most people had (have?) a hard time wrapping their mind around it.

(Actually, in searching for CoreCLR, I discovered this post from last summer basically confirming “the CoreCLR team working on the Macintosh version of the MiniCLR that’s going into WPF/E”. So it did leak, but it seems to have been met with significant skepticism and didn’t make much news. )

Now that you know all about Silverlight and CoreCLR, go back and re-read my Virtuous Cycle of Virtual Platforms post. Especially the last paragraph (complete with the bad grammar):

If the end user isn’t committed to a virtual platform like Flash, then who is? The developers who build software for that virtual platform. This is Virtuous Cycle of Virtual Platforms between the platform and developers instead of the platform and users. In the old model, developers go where the users are. In the new model, users go to where developers are. And developers go where they can be most effective.

Silverlight vs Flash looks to me like the next big platform war competition. It’s just getting started, so you can’t say with any certainty which platform will be “most effective”. But early Silverlight reviews are pretty impressive. TechCrunch’s Michael Arrington wrote that Silverlight “makes Flash/Flex look like an absolute toy”. That doesn’t erase Flash Player’s head start in the RIA space, but it certainly makes catching and surpassing Flash sound feasible. I suspect most people didn’t think that sounded at all feasible last week.

Of course, while catching Flash may sound feasible, Microsoft is a long way from achieving that goal. While the point of my earlier post is that that market penetration doesn’t provide much advantage in the virtual platform market, Adobe does derive significant advantage from shipping nine versions of Flash while we haven’t quite shipped the first version of Silverlight yet. Also, while I’m fairly sure the number of .NET developers far exceeds the number of Flash developers (anyone have hard numbers?), I would also expect that the number designers using Flash far exceeds the number of designers using Expression (given that MSFT only just shipped Expression on this week). I believe an important facet to the Silverlight / Flash platform competition will be a race to woo the competitor’s core constituency. Can Microsoft woo more designers with Expression than Adobe can woo developers with Flex? We’ll see.

I’m also curious to see how people’s perspective of Adobe’s Apollo project changes in the wake of the Silverlight/CoreCLR announcement. From my perspective, both Microsoft and Adobe are trying to unify web and desktop development. Not surprisingly, each is trying to unify around the model where they’re stronger: Apollo takes the web development paradigm (Flash, HTML, AJAX and JavaScript) to the desktop while Silverlight takes desktop development paradigm (WPF, CLR) to the web. I’m sure you can guess which paradigm I think will be more successful, but how will the market react? Again, we’ll see.

Hawkeye on XBL Video Marketplace

As per Major Nelson’s blog, the XBL Video Marketplace went live yesterday. Being off work yesterday (vacation time: use it or lose it), I fired up the ol’ 360 to have a look see for myself. V for Vendetta in HD? Cool. 6GB? Not so cool. Guess I’ll have to blow away some of the demos that I’m not playing in order to make space.

The amount of HD space needed for HD movies begs the question, why isn’t Video Marketplace available for PC? My 20GB of Xbox HD space is taken up with game demos and downloads. But my home PC(s) can spare that kind of space. I’d much rather download the content to my PC then stream it across my home network to the 360 when I want to watch it. Not sure how DRM (I assume the content uses WM DRM) impacts network streaming, but I would guess that’s a solvable problem.

While I’m talking about DRM, why do I have to pay to download DRMed rental content? Shouldn’t I pay when it’s time to actually watch the content? I understand having a time limit (24 hours) to finish watching content I rented, but why is there a time limit (14 days) to start watching it? Once it’s downloaded it, I’m no longer using XBL resources, so why put any limit on it at all?

The pricing model seems pretty much in line with iTunes and/or Blockbuster. $2 to own a TV show, $3 to rent a “classic” movie, $4 to rent a new release movie, with a 50% markup for HD content ($3/$4.50/$6). While these prices are pretty typical, where’s the all-you-can-watch subscription plan? The all-you-can-listen model is one of the key values of Zune or PlaysForSure services like Napster and Urge not to mention NetFlix. I’d probably scrap my premium channel cable plan if I could get an unlimited subscription to XBL Video Marketplace.

I’d also like to see more content pricing tiers. Owning a 45 minute CSI for $2 seems pretty fair. But $2 for an 11 minute Space Ghost Coast to Coast seems overpriced. And while I’m making requests, how about making it easy to buy an entire season of a given show – both from a pricing perspective (i.e. a discount for buying an entire season) as well as a user experience perspective (i.e. one click to buy the whole season).

So all in all, a pretty cool service with some room for improvement. The availability of significant amounts of good HD content is a MAJOR winner for this service and a great foundation to build on. Like all things XBL related, I assume Video Marketplace will evolve over time. Can’t wait to see how it goes.

HawkEye on Entity Data Model Announcement

My pal Tim dropped me an email last week to let me know they (the ADO.NET team) were publishing their vNext vision around entities. Of course, they picked the week when I’m in San Diego! So I didn’t get a chance to look at it until today. In a nutshell, they are raising the level of abstraction for databases. Regular DevHawk readers know I talk about abstraction a lot around here. In fact, one of my earliest posts on this blog – 1 house, 2 kids and 5 jobs ago – was on Disruptive Programming Language Technologies. So this is a topic near and dear to my heart.

This is an amazingly good thing. Think of the impact VB had on the development industry, but bigger. The abstraction level of databases hasn’t been raised in decades. It’s about freaking time we did.

My only problem with the article is that it’s pretty obtuse. Referring to this as “Making the Conceptual Level Real” makes it sound much less exciting than it really is. Nobody refers to C# as a “conceptual” programming language. But if you use the terminology from the vision article, that’s exactly what it is. Machine code is the physical level, IL is the logical layer and C# would then be the conceptual layer. But lets say you build a compiler that compiles C# directly to machine code. Would it suddenly become the logical layer? Who knows? Who cares? Let’s just raise the level of abstraction and not get all caught up naming the level we’re currently at.

VB was introduced 15 years ago in 1991. Most developers in the industry are aware and remember the impact VB had (if you don’t, check out Billy HollisHistory of BASIC). The relational model was introduced 36 years ago, The first RDBMS was introduced in 28 years ago. I’d bet the majority of developers in the industry today don’t remember a time before databases. Hell, I was introduced 36 years old myself. (I’m sure my dad remembers programming before databases, but he doesn’t code much these days.)

As I said, this is going to be big and it’s about freaking time. So hats off to the ADO.NET team. Can’t wait to see this running. According to this, first CTP drop is August, so you don’t even have to wait too long.