The market wanted it...so MS delivered it...The result? Wegot three skins...Blue and Silver and Green...And a whole bunch of weird scenarios – Start instead of Stop, Application’s whose frames were themed, and some of their controls, but not all, etc.In addition to this bizarre world, another serious problem crept up.The world wasn’t standing still: larger screens, bigger graphics cards became cheap, etc. The result is that things started to look too small.And MS had to issue all its icons in 16,32, 48 pixel sizes. Something radically new had to replace this. A new rendering system based not on Images, but on Vectors...that could be resized to any size without pixelation, etc.THAT became WPF...but let’s hold off on talking about it.
Got 15 years of extra game time...Although to be fair CSS did a wonderful job of dressing mutton as lamb...
It waits for no one, But it’s currently doing the same exact thing that MS realized couldn’t go on forever.
Buttons<br />A small unit of Input+Functionality+Design<br />That turns out to be pretty important to get right...<br />
Then it all became Cheesy(We began to use Mice rather than Keyboards...)<br />
These Buttons are all an illusion, of course...<br />
That code is still down thereunder the hood, even in Windows7<br />
And then Skinning came in Vogue...(circa 2000?)<br />Unintuitive interfaces (a lot of them just reacted to hotspots, and didn’t take the time to implement alternate images for mouse over, clicked, selected, etc... <br />A good attempt...but spotty results...<br />
So the OS’s implemented it... <br />First some Linux branch used skinning... <br />Then Apple copied them...<br />Then MS followed suit... <br />... but sometimes copying just doesn’t come off as well as you thought it should have...<br />Dev costs shot through the roof: win controls got chromed, custom ones didn’t, etc.<br />In addition 16, 32, 48 px icons was only a stopgap<br />
Skinning... explains how the HTML <Input type=“Button”...><br />Got 15 years of extra game time, while not improving<br />Styling, Functionality, or Behavior.<br />
The (payed for) Web waits for no one... <br />Web developers tired of waiting...<br />So now we ‘make’ buttons out of:<br /> images + Anchor Tags + AJAX, <br />JScript to short circuit the spec’s HREF functionality... and replace it with custom functionality...<br />More images for Hover, Clicked, effects... <br />Creative, yes...but adds up to lots of added dev and QA testing time, swearing, and costs.<br />In addition: we’re not using the Specs.Why? Because the specs are not keeping up to the times.<br />
It’s all going to get better, right?<br />Nothing addressing this in the HTML 5 specs.<br />Admittedly, could be added before 2022, which is when HTML5 is due.<br />Yup. 2022. <br />
An exaggeration?A little HTML History...(Historically, Too Much LagTime)<br />When Dinosaurs roamed: SGML<br />1989: Tim Berners-Lee/Cauillau develop HTML in CERN’s basement.<br />That was Cool. <br />Unfortunately, right after that:<br />IETF meetings, blah, blah, blah, bickering: everything slows down<br />1992: HTML 2.2 <br />1995: HTML 3.0 proposed, but dies on the vine.<br />3.2 was unofficial....“included extensions to control stylistic aspects of documents, contrary to the "belief [of the academic engineering community] that such things as text color, background texture, font size and font face were definitely outside the scope of a language when their only intent was to specify how a document would be organized.“<br />1997: HTML 4.0<br />1999: HTML 4.1<br />2000: XHTML 1.0<br />2001: XHTML 1.1<br />2008: HTML 5 (18 years later!) proposed as a working draft<br />
Late, but still, CANVAS is coming, right?Get real. Reality is HTML5 Canvas is...graphically challenged...<br />HTML 5 Specs for the famous Canvas look more paltry than Silverlight version 1.0 (and really miles behind Silverlight 4.0 features)<br />
The problems are not limited to Buttons...<br />Or Controls:<br />No AutoComplete combo, etc.<br /><Input type=“StillNoDateControlAfter18Years”.../><br /><input type=“NoSliderEither”.../><br />No new controls being added (Grid, Trees, TreeGrids, Accordion, etc)<br />Or layout:<br />No opacity, no zoom, no rotation...<br />No drop shadow, no blur, no reflection...<br />And woohooo -- you can have Tables...or CSS pretending to be Tables...but you can’t go further (circular, triangle, perspective).<br />Or distribution architecture:<br />Spare parts flying in close formation (No packaging, no versioning system). <br />A slew of languages/ frameworks (Jack of all trades, master of none).<br />No unit testing of whole swaths of functionality (Unit Tests of Jscript?!?)<br />Not keeping up with the Jones (iPhone, Android, Mobile 7, TV ads...)<br />Wow. We can have Video. Just not in a format anybody uses yet...<br />No solution to dealing with different hardware specs<br />Multiple DPI’s (higher and higher resolutions)<br />Hence Icons now are 16x16,32x32,64x64...before they woke up...<br />
Developers are creative...<br />It’s just that it’s maybe not the best use of their intellects to solve artificial problems...<br />
If things are broken...Let’s rethink things...<br />
Or a totally new Button...Same Functionality. Just Done my way...<br />
20<br />XAML: UI EventsTriggering StoryboardsAgControl62.xaml<br />One use for UI Events is to Launch or Stop Storyboards of Animations.<br />Again, Storyboards are defined as Resources Dictionary Items<br />So we know how to get at them (with their keyName)<br />And re-Type them to a StoryBoard<br />And Begin() them!<br />
So what’s the answer?Horses for Courses.<br />HTML is fantastic for Text. That’s what it was designed for... <br />Canvas...in 2022... will be great. If you are doing movies, it will be very useful.<br />If doing apps though, use something appropriate:<br />better framework, <br />better patterns, <br />better controls, etc.<br />