It’s been several months since the demise of the standard public opinion of the Microsoft UI platform developers. That was a ridiculous statement I just started with, but it’s grounded in a lot of truth, what with all the perpetual noise from naysayers regarding Windows 8’s open-arms acceptance of HTML5 as a UI development strategy. All of it has me scratching my head in confusion, not about Microsoft’s decision-making, but about the wisdom of those whom I’ve been coding alongside all these years. (I myself don’t do much with XAML but I do develop on the Microsoft stack and I consider XAML developers my “compatriots”.)
Microsoft has always been a copy-cat, a late-to-the-party fat kid who shows up, rolls around, shoves his muddy butt up in your face, and then comes waddling over in an out-of-breath huff to the next party. There’s nothing new going on here with Windows 8. When Microsoft created Windows in the days of DOS, and recreated it again in Windows 95, and recreated it again in Windows NT, they were just playing along with what the cool boys were already doing. The Macintosh pretty much defined the whole market and everyone has been playing along with its notions ever since. With the advent of the iPhone and its iOS touch-oriented platform, a reimagineering of the Windows Mobile platform was an absolute necessity—people say that Windows Phone 7 was too little too late, and I can only agree with the “too late” part. The “too little” part goes away over time, since no major software manufacturer can come up with everything in one shot.
Apple has always led, as have people who rely heavily on the Mac platform where their focus on creativity is not shoved aside by some unnecessary technical feature set. Microsoft’s leadership skills are on occasion a little bit embarrassing. Remember Windows Live Spaces blogs? Remember when Microsoft was trying to compete with Wordpress.com? That was funny. The editor was sloppy; even after porting my sister’s blog over from Windows Live Spaces archives to a WordPress account I am still cleaning up the Microsoft Office pasted stylizing mishmash crap that Spaces emitted all over my sister’s content. Yes, it was so sickening it was funny. But what was funnier was when Microsoft handed everyone on their Live Spaces servers over to WordPress.com. “You not only win, you can have our customers’ blogs, here you go.” Hilarious.
That was a bit of a tangent since WordPress is not Apple. Nonetheless, when it comes to platform delivery, Steve Jobs is usually right. It doesn’t matter that Objective-C is one monster of a strange-looking language, that didn’t stop the many developers from making the iOS platform one of the most successful new operating system platforms to be adopted in the history of computers, measured according to successfully adopted software applications. Ironically, however, it was not Objective-C native applications that Apple started its folks off with. It was Webkit and Mobile Safari solutions.
With Microsoft, you have a similar story, although parts of it are a little backwards. Microsoft had their “native-esque” programming experience with the Silverlight and XNA SDKs for the Windows Phone 7, but that wasn’t enough, and eventually, finally, Microsoft acknowledged that they need to meet the initial if difficult requirement for a lowest common denominator—the Webkit equivalent of the Internet Explorer Mobile Edition Marketed Version Nine for Windows Phone Seven Super Edition Service Pack 1 Episode Three Ninth Season 2011 Squared. At least, I’m hoping that they made this acknowledgement, because when I tried building out some prototype Silverlight apps on the Windows Phone 7 platform and I used the Internet Explorer mobile control I found myself quickly missing Webkit’s and Chrome’s reliability in adherence to standard and extended APIs.
Regardless of Windows Phone 7—which Microsoft has certainly used as a testbed for future evolution of the Windows desktop platform, much as Apple has done with iOS and OS X—it seems obvious to me that the Internet Explorer team has lately been given the go-ahead and adequate funding to make their platform adequately competitive with the rapid advances of the web platform that has been commonly referred to—incorrectly, I might add—as “HTML5”. Internet Explorer 9 is a good web browser. It’s not shabby. It’s no match for the likes of Chrome and even Firefox but it’s still a good browser, right in there with Opera, I think, which has almost as many quirks despite its other advancements. Meanwhile, Internet Explorer 10, as well as Microsoft Windows’s amazing advancements on the ARM processor chipset, really prove to me that Microsoft is well aware of what they are up against in this highly competitive market.
People tend to pooh-pooh the power of HTML5 but they need to spend a few hours (in Chrome) scouring some of the more powerful HTML5-based software applications that are available right now and that look absolutely spectacular on modern hardware. It’s been referenced on my tech blog many times but http://www.chromeexperiments.com/ is still a great site to check out and see the power and flexibility of the HTML5 platform.
Is Microsoft wrong for embracing a well-adopted programming and screen layout standard? Of course not. Should Microsoft be ashamed for trying hard (even if not quite their hardest) to make sure that their platform is the best platform to experience applications that target this common programming and screen layout standard? NO!! So what is all the fuss about? Microsoft has a limited staff and limited budget to keep fostering the marketing and market growth of the Silverlight and WPF platforms when the most current area of focus is something else entirely. That does not mean that they have abandoned Silverlight or WPF, nor for that matter does it mean that WPF and Silverlight are going away. All it means is that Microsoft has “seen the light,” that they cannot keep pretending that the world around them doesn’t exist. They have finally stopped holding their hands up to their ears shouting “I can’t hear you, I can’t hear you, blahathathahthatahta”, they’re paying attention to changing trends, they’re adapting, and they might even be going through an internal overhaul to support the necessary changes that are taking place for a constantly evolving software marketplace.
Do I hope that native and managed-code development comes back to tantalize Windows developers? Absolutely, and I think that it’s inevitable that it’ll all return really soon, even within the next year. They’ll have to because outside of Adobe there are no serious development tools that foster native-like HTML5-on-the-desktop experience development like WPF and Silverlight have, and until that changes—and it will, I promise—we are stuck with the XAML-based tools that we have, so stop complaining and keep enjoying them.
Windows is a do-it-all platform. Most people don’t know it, but Windows 7 is even UNIX-compatible, just turn on the UNIX-compatibility feature and you instantly get the ability to compile to UNIX. You even get a C-Shell. (This may be going away with Windows 8, though, sadly, perhaps because no one knew about it and Microsoft probably didn’t want to support it if they did. For that matter, Cygwin and MinGW were arguably better anyway.) Windows has never been good at minimalistic, pretty software, for that go to Mac. If you want purely utility software, fire up an old distro of Linux. But Microsoft has made Windows excel so well at retaining such a huge market share on the desktop by being the platform that is least likely to fail when you grab some software off the shelf and forget to read the label—or I guess in 21st century terms, when you click the Download link and find the first download option.
Windows won’t run Obj-C/Cocoa Touch software, but at least Windows can fire up and run software that was built for the “any-platform” platform that runs on Mac and iOS, too, and that in my opinion is a rock-solid first goal for a new OS version since it most readily embraces non-Microsoft developers who have been developing on “all platforms”. Once Microsoft gets past this hurdle, let them go back to making the platform proprietary and unique again. But dang it I don’t want to be using a desktop operating system that is great for proprietary-built software but crap for running software that was built for the common application stack. I like to know that Microsoft knows a few things about being on top—on top as in king of the hill—of what everyone else is into. Right now that means the HTML5 programming stack. Get in the game or get off the train and find a job selling sushi.