The music plays a big role. Anyone recognize it? - Is it unique to this advertisement? (I couldn't get Shazam to recognize it.)
Honestly, I wish it would.
Hear me out. I program almost exclusively in WPF, but one of the big drawbacks is XAML. It was part of Microsoft's, frankly, silly attempt to use XML everywhere. Now, that XML gets in the way everywhere.
A varienty of improvements can be had:
- I would much rather have a succinct syntax like QML.
- The UI code needs to be compile-time checked as much as possible. Data bindings would seriously improve. And there are too many instances where I have to run through my entire application debugging it just to find out I mistyped a resource reference.
- For that matter, get rid of BAML. Compile directly to IL and skip most of the runtime interpretation aspect.
- And for now this is last but certainly not least: ICommand. We need something better.
An X(A)ML editor could hide the surface syntax and present it differently. It might well look like your QML example in a yet-to-be-made editor. The core XML infoset should just be persisted. If nobody questions editing XML by dragging and dropping boxes onto a design surface, then this visual view should be fine for the same reason.
I don't subscribe that much to the human readability argument (and that it should necessarily drive syntax design) - editors have a role to play here.
You can knock up a XAML parser in an afternoon. It's just XML, and XML is easy to parse.
Parsing HTML into a DOM on the other hand is horrific. And I'm speaking as someone who actually wrote one.
And you say there are multiple implementations of HTML rendering. But the very fact that different major browsers render non-confiorming webpages very differently is proof beyond doubt that HTML parsing isn't as easy as you claim it is.
There is no normative way of taking a slightly nonconformant HTML string and turning it unambiguously into a DOM for rendering. And the fact that no browser objects when you give it something that isn't part of the HTML grammar, but rather different browsers take different guesses as to how the resulting DOM should look, means that debugging a slightly non-conformant page on different browsers becomes suddenly painful for developers, and writing a browser that is able to parse those nonconformant pages is suddenly both a huge engineering challenge, and completely necessary given the fact that most pages on the Internet are not well-formed.
Nobody on the Internet actually uses RDFa or microformats. And custom tags are about adding abstraction to HTML. Not about adding semantics. You get higher order semantic information because of the abstraction. Whereas if you add semantics without adding the abstraction (which is what HTML5 has done by adding tags that are just glorified DIVs, like OUTPUT, but without giving you anything close to templates or custom tags which are themselves constructed from base tags), you give developers no reason to use them.
Go and take a look at any real life webapp on the Internet. Like Gmail, or Google, or Bing, or Yahoo or Expensify, or this page, or frankly anything that isn't a demo site written by web-enthusiasts. A real site.
Now click view-source, or open up the DOM, and see what percentage of the tags that are there are semantic tags, and what percentage are actually semanticless SPANs, DIVs and IFRAMEs. The only semantic tags that people actually use are HEAD, BODY (out of necessity) and occasionally tags where the shorthand is quicker than the styled SPAN equivilent, such as UL, B, I and U. Nobody actually uses CITE for citations. Nobody actually uses OUTPUT for output. And why should they? These tags are more ambiguously styled in browsers and hence add app-compat risk to developers that use them, for the 0.0000001% of customers who are using a semantic browser rather than a web-browser.
If HTML5 had abstractions via templates rather than tags that are effort for web-developers to implement, but which developers have no real interest in ever using, then it would be more semantic for free.
Consider for example if you could do something like this:
<input name="template.name" onclick="openDateTimePicker(this)" placeholder="1st Jan 2013" class="datetime" />
<table> <tr><th>S</th><th>M</th><th>T</th> ... <th> etc </table>
When are you visiting our hotel? <input type="datetime" name="checkout" />
When are you checking out? <input type="datetime" name="checkin" />
These are the types of innovations that HTML is missing out on, and which XAML had a (admittedly fairly botched) attempt at fixing.
Your page should be constructed not of DIVs and SPANs, but of components which are composed.
HTML5 tried to add semantic content to the web, but it went about it the wrong way. Which is a shame, because otherwise it could have been much more powerful, much more rich, and much more robust than it currently is.
A templated language which allows abstraction, component composition and a strict syntax to allow for easy parsing would have gone a long way to eliminating the cross-browser failfest that is trying to get your website to work on more than one browser at a time.
If the HTML5 committee had focused a little harder on adding the features that the web needs (like abstractions, more robust security, and having an unambiguous, prescriptive and simple transition from HTML text to a valid DOM) rather than features that nobody cares about (like semantic tags), the web would be richer in semantic content, more secure, more upgradable, and more easy to develop for.
You mean something like Web Components?
With backwards compatible support via Polymer:
As for semantics, the new schema.org has an SGML/HTML-way of adding semantic types to markup:
There's a lot of mess but it looks like things are steadily getting better.
I believe you're right here. DRM is a publisher feature. I don't see any consumer having a need for DRM. If the initial momentum is weak, then this strategy to increase profits will perhaps prove to be a poisoned chalice.
unless the human brain has even more cpu power than all that hardware then the current approach to computers is way off course. I also think of the small scale, very small insects with very few neurons in their whole body are able to fly, to forage and to survive. they do a lot with very little cpu power.
I don't believe the computational capabilities of (non-artificial) neural networks are fully understood. Some state that there might even be computation within individual neurons.
Nice video. Here's Stephen Wolfram's take on Watson with a comparison to Wolfram|Alpha:
@SteveRichter: Search engines are also evolving, now scraping for knowledge and concepts (see http://schema.org/) (and probably trying to infer it a la PowerSet (absorbed by the collective) and Evi (formerly True Knowledge)).
Just for fun, I asked Evi and Wolfram|Alpha:
"What is the first name of the prime minister of Denmark?"
Evi gave the names of the last two. Wolfram|Alpha almost appeared to understand it but came up with an empty result set. It's pretty cool to expand and see Evi's chain of reasoning.
Yes it will be out just about a year after Visual Studio 2012.
No announcements from the C# Team or whether TypeScript will be a part of Visual Studio? What of Roslyn and the usual announcements for Client and Web based development stacks like WPF or ASP.NET? I feel things have changed direction at Microsoft in the last few months, but I can't quite figure out what it is.
The lack of news is not an indication of a change of direction. But sure, the only constant is change, to quote a cliche.
There's already a VS plug-in for TypeScript, so that's kind of a non-issue.
Roslyn must be a large undertaking and besides large language infrastructure developments, the development team also has to catch up with the latest C# and VB language developments, so patience is in order here.
Besides Roslyn, we know of a spin-off version of C# being used in an incubation project which appears to have significant scale - but is still under wraps. This might be a "change of direction" when or if it materializes, in terms of new API's using new language features. One wonders if this language is also bootstrapped and has a compiler written in itself a la Roslyn.
Some form of NIITL (Not Invented In This Language) is inevitable and probably even desirable insofar as the language has features that provide desirable properties.