Looking forward to this. Hope MS follows the pro-standardization direction that Herb Sutter has been trying to set.
@dot_tom: I agree - a standard, source-format, portable XML library is very much needed. (And a JSON library, a TCP/IP library, and an HTTP library. Likely all built on an async task/futures-based runtime.)
Who knows? If this keeps up, maybe I can switch from C# to C++ a few years sooner than I planned! (I'm not going to get my hopes up just yet, though.)
Right, sorry Charles. Rob Manson's comment in the video about how native apps cause fragmentation was what triggered some of my comments, but it was definitely just a side remark of his. Allow me to try again, if that's okay.
The big question underlying the video is just how to address - and prevent - that very fragmentation of native/platform-specific apps. In other words, in the world of ambient computing - where a proliferation of devices with ever-changing form factors and ever-increasing interconnectivity is the norm - how do you really manage to "write once, run anywhere"?
In that respect, Java was the champion in the late 90s but failed to deliver (for whatever reason, I blame UI mostly but I'm not familiar enough with the history of Java). .NET came along as Microsoft's take on portability (MSIL), and the idea of WPF/E had us all cheering for a long time. But because Silverlight/XAML stayed a (mostly) closed platform, it was never really adopted universally on the Web, so now HTML5 is the dominant option for a "write once, run anywhere" de facto standard. And it will stay that way.
Hence my worries when the Web becomes fragmented with vendor-specific extensions that have no plans for standardization (whether Metro, Chrome, or anything else). I love taking advantage of close operating system integration, don't get me wrong, but the only way to make that profitable in the long term (in the absence of an OS monopoly) is to keep pushing cross-OS (e.g., Web) standards.
A classic example of this is GDI vs. HTML5 Canvas. Both (more or less) neatly express the need to draw free-form graphics across myriad devices - in ever-changing form factors - in a portable way. When Windows was universal, GDI was the de facto answer for doing graphics. But with the arrival of more devices that didn't run Windows, another approach was needed and evolved from Apple's custom Canvas tag into an HTML5 standard. As browser implementations then "caught up" with the standard (in other words, as Canvas became a standard way to do free-form graphics), we developers were suddenly able to use hardware-accelerated rendering - across any device that implemented theCanvastag! Canvas thus subsumed GDI in a more portable way because the market reality changed.
Sure, taking advantage of the latest and greatest (whether hardware-accelerated rendering in the 2000s or touch in the 2010s) will always require non-standard extensions (or even platforms) for early adopters, and there's a great first-mover advantage to doing so (that's why, for example, I keep specializing in Windows rather than trying to learn all the intricacies of Linux, Mac OS X/iOS, or Android - when I need close OS integration I can only afford to do it with one OS). But in the long term, for those technologies to become commodities, we need a standardized way to use them.
So the more I think about it, maybe IE10 isn't so bad after all. To reword what I said to aL_, as an engineering professional I should respect standards unless there is a compelling reason to go vendor-specific, and even then I need to keep pushing for the standards to catch up.
It's about COM interop, true (MS definitely did that well), but it's also about pushing a proprietary API with a proprietary app store that generates a vendor lock-in for Microsoft. It's the Win32 API war all over again.
I agree, users don't know the difference between a proprietary Internet (e.g., the route that is being taken by Apple iDevices, Google Chromebooks, Microsoft IE10) and an open Internet. Don't you think it's our responsibility as engineering professionals to make the decisions for them?
The web stack is able to do incredible things - think Google Wave, Google Docs, or Prezi.
@aL_: I was thinking about this "too slow" progress of standards bodies today, actually from the point of view of gaming (something I hadn't seriously looked at in a while). Sparked by this article about a presentation by Forrester CEO George Colony on the end of the web, I was thinking about the question of whether HTML5+ and technologies like WebGL can keep pace with consumer (or business) demand, or whether native apps really are the future (as they were the past).
Standards are almost as fundamental as analytical models and the laws of physics for most engineering disciplines. My respect for standards has grown significantly over the last few years as I've learned more about them, and I shudder to think what a future forever dominated by fragmented native "apps" will look like. I hope Microsoft and others will be agile enough in their business models to embrace standards (and I don't mean the embrace-extend-extinguish kind!).
What worries me now is that Google/Chrome is starting to neglect the standards, and so is Microsoft/IE10. Lock-in and fragmentation of the market with native "extensions" (specifically apart from any goal of standardizing them, e.g. IE10's WRT API has no standards ambitions) is certainly one business strategy, and it has short-term benefits for the companies that employ it. I would love to see Microsoft, Google, Apple, and others fully embrace a standards-driven Internet and allow open competition on a level playing field (and adjust their business models accordingly), but I'm just being idealistic when I hope for that.
Follow the money.
Bottom line: technology isn't going to be the death of the web, corporate strategy is. The standard web just doesn't yield sufficient profit margins for Microsoft, Apple, or even Google. (The standard web used to be a goldmine for Google when it was the best offering on every browser, but ironically Google is probably pursuing custom extensions today primarily as a result of competition from Bing/Yahoo.)
You could easily prove me wrong - if you could find a way for one of those three companies to grow its shareholder value without resorting to custom extensions to help them win the battle. Good luck.
SQL Azure Data Sync is a great tool; even though it's only at a CTP stage, the experience is already quite polished and it's a pleasure to use. I've used it to export a database (schema and all) from an Azure subscription to my local machine; I needed to take my services offline for a longer period of time and had to create a full backup. (Perhaps this wasn't the ideal way to do that. But it was fun! )
On that note, it would be nice if Windows/SQL Azure subscriptions would support "deactivating" a service or database, respectively. I would like to be able to store these things (perhaps in my Azure storage account) with the ability to bring them back online at a later date. (Added to the linked UserVoice site: Allow taking a database offline to prevent charges to my account. (http://uservoice.com/a/jFr6r))
Enjoying the series! (Especially the dependency injection w/ Entity Framework - I wasn't sure if that was possible, and it's the biggest reason I've held off on using EF until now.)
Nitpicker's Corner: Your media download links for this post are not in the standard order, so I ended up (almost) downloading the MP3 or the MP4 instead of the WMV version. C9 devs, you've gotta get that fixed or I'm going to suffer motor memory loss.