The Imaginative Universal

Studies in Virtual Phenomenology -- by @jamesashley, Kinect MVP and author

Fus Ro Dada

FusRohDada

The Build up to BUILD

giantcrabs

I recently found out in a Louis Menand New Yorker review of The Yale Book of Quotations edited by Fred Shapiro (republished in The Best American Essays of 2008 edited by Adam Gopnik, another New Yorker contributor – was the fix in? – which I happened to come across while browsing at a going-out-of-business sale in the local Borders) that the phrase “Shit happens” first appeared in print in 1983 in a publication called UNC-CH Slang. For some reason, I thought the phrase antedated the year the Apple IIe was launched.

An argument can be made that the start of the build up to the BUILD conference is intimately tied to the rise of Apple, the on-again off-again relationship between Steve Jobs and Apple, the strange periods when Microsoft helped keep Apple afloat in order to maintain a legitimate competitor in the face of government investigations, and of course the release of a largish iPod Touch device known as the iPad which inaugurated the post-PC period.

Alternatively, we can say that the build up began during Bob Muglia’s interview with Mary Jo Foley at PDC 2010 (to which BUILD is the successor conference) and his fateful comment concerning Silverlight:

“… our strategy has shifted …”

The quite vociferous Silverlight community loudly denounced Bob Muglia, questioning his authority to declaim on the matter (he was in fact the President of the Microsoft Server and Tools Division at the time), as well as Mary Jo Foley for reporting it.  The genie was only put back in the bottle when John Papa, a Microsoft Silverlight evangelist, quickly threw together the Silverlight 4 Firestarter to explain the Silverlight roadmap and Pete Brown, another Silverlight and WPF evangelist, started a more even-keeled and civil dialog about the matter on his blog.

Approximately a year later we find ourselves in the same position.  As Bob Muglia indicated in last year’s interview, Silverlight continues to be an important platform for Windows Phone development and will have niches in video streaming and line-of-business applications.  Silverlight 5 is still slated for release sometime in 2011.  Overall, however, announcements from the Windows Team indicate that a greater emphasis will be placed on HTML5, JQuery and CSS 3 as tools for developing on the new Windows 8 OS while the role of .NET going forward has been more muted.  All eyes are on the upcoming BUILD conference on September 13th to find out not only what the Windows 8 \ Tablet strategy from Microsoft will be, but tangentially what the future of Silverlight and .NET in general will be.

(A question can profitably be raised here concerning why the uproar from the Silverlight community was so loud when the WPF community, arguably much larger, effectively rolled over at rumors and signs that the vision for WPF was being curtailed and amid proclamations that WPF was dead.  Certainly part of the reason was that WPF developers could generally also see themselves as Silverlight developers and at the time, due to the superior branding of the Silverlight platform, many were in fact trying to do that on their resumes.  But where does one go from Silverlight?  As interesting as Silverlight for Windows Phone is, it still doesn’t carry the technical gravitas that being a Silverlight developer did.  Jupiter/DirectUI might be that next technology, but it would have been reassuring had Steven Sinofsky and his team said a bit more about it.   At the same time, many developers who stuck with WPF looked upon the Silverlight developers with a distinct lack of pity and a certain amount of schadenfreude as their world appeared to be crumbling around them.)

Instead of revealing the developer story on the official Windows 8 blog, Microsoft has mostly been mum about the contents of the BUILD conference.  The official agenda has been left blank since it was first posted, while unofficial information about Windows 8 has mostly come from sites like WinRumors and Mary Jo Foley’s articles on ZDNet , information like Windows 8 is being built for ARM chips allowing it to be deployed on a greater variety of devices (though apparently not on phones since Windows Phone continues to be developed on its own branch),  that it may not support CD Rom drives (really?), that it has a new optional Metro-themed shell for navigation, and that it supports native development in HTML as well as some future XAML-based platform called either Jupiter or DirectUI.

The official blog, in the meantime, has mostly dribbled out pieces on an Office-like interface for Windows Explorer and a new look for copy/paste.  They are apparently taking a page out of Steve Jobs’ book and attempting to create mounting excitement by saving all the good stuff up for one big reveal.  One can envision a reception similar to the original introduction of the iPhone, though skeptics might also call to mind the mayhem and setting of theater seats on fire that accompanied the premier of Jean Renoir’s The Rules of the Game (privately I hope for this sort of response to an announcement so innovative that it simultaneously creates both fawning fans as well as fulminating foes seething with rage).  In either case, the fact that Microsoft is taking this theatrical approach seems to indicate that they have something they believe is going to turn heads.

The challenge and expectations for Windows 8 resembles a sea of giant crabs: prickly and coming from all sides.  The new operating system needs to present a broad new vision.  It must at the same time be familiar enough that it doesn’t alienate either our grandmothers or the heads of our IT departments.  It must work on a tablet (oh yes, it must!) as well as a desktop, while at the same time it must not sacrifice performance.  It must sport a new consumer facing look and live up to expanded consumer expectations while at the same time support the slew of legacy applications we have individually and corporately invested in.

In my small corner of the development world, it should also attract the broad range of web developers and designers that have for years avoided anything having to do with Microsoft while also placating the many Microsoft-based developers that have been so loyal to Microsoft over the past decade (though, admittedly, they had their reasons and did quite well for themselves by playing in Microsoft’s stack).

This last point is often overlooked in the debates about how unfortunate Windows 8 might be for Silverlight developers.  Attracting the sets of skills and non-Microsoft thinking available in the traditionally non-Microsoft community would be the most revolutionary thing Microsoft has done in a long time.  In general, these are people who not only know how to work well with designers but, in smaller shops, are expected to be developer-designer hybrids.  It’s a way of looking at the world that the Microsoft community greatly needs in order to reinvigorate the way we do development as we are increasingly expected to build not only secure and stable applications, but also experiences that look as good as the ones people are seeing on their consumer devices – even as the clean separation we’ve always understood to exist between UIs for games and UIs for apps continues to evaporate.  Bringing these developers into the Microsoft fold would be a huge treasure drop for Microsoft and certainly worth upsetting a few developers to accomplish.  It is also oh … so … difficult, as we found out with the Expression tools over the past few years.

So what will the new Windows 8 be?  Here are three possibilities going from the least revolutionary to the most, all of which will undoubtedly be wrong.

1. A New Shell: Son of Gadget

There is an official video available showing off a new look for Windows that ZDNet reports is called the MoSH or Modern Shell that people can opt out of if they prefer a “classic” look.  It may also be called “Mosaic” – another code name floating around.  It is Metro based and supports multi-touch, resembling the Metro look of Windows Phone in many ways including the tile based design.  This was actually an idea publicly proposed around the time Windows Phone was first revealed.  Why not simply build a Metro shell on top of Windows 7 and release it as a tablet solution? 

Underneath the shell will be a typical next generation Windows supporting Silverlight, WPF, a ribbon bar, and all the legacy technologies and apps we have grown comfortable with.  This would be a distinctly old wine into new skins strategy.  This is easily doable and Microsoft has experience with it from the “gadgets” concept introduced with Vista and extended in Windows 7.  Like gadgets, MoSH components can be developed in a variety of technologies – which would explain some of the discussion around HTML5 vs Jupiter as rival development platforms for Win 8.

2. Web Based Apps: Everything 365

Microsoft has been building the technology around web-based solutions with their Office 365 cloud services, allowing users to employ either web-based versions of office or native apps.  Extending this more generally to consumers would allow light weight software on tablets while making full versions of the apps available to desktop users.  It would also explain the emphasis on HTML5 as lots of legacy apps would have to be ported to the web in order to make them work on lower-end hardware.  On the other hand, we know that even sophisticated applications like Photoshop, for instance, can work over the web. 

Why not everything else?

3. Virtual OS: Legacy Mode

This is my fantasy scenario.  With Windows 7, Microsoft introduced something called XP Mode, which would allow users to run legacy apps on a virtual machine behind the scenes but have it look like you were running apps in the host OS.  Could this concept be extended?  One of the things we currently know officially about Windows 8 is it has hyper-V 3 integration of some sort.  What if the Jupiter/HTML5 piece really is the biggest part of the new OS (a truly new game changing and light-weight OS) while XP Mode type functionality will be used to support legacy apps transparently for our grandmothers and IT managers. 

This would be a remarkable sleight-of-hand, reminding me of a Penn & Teller routine where they go through several layers of misdirection to create the illusion of a man standing by a light pole smoking a cigarette when neither the cigarette or the light pole or the man are real. 

What if this could be combined with the Microsoft cloud computing strategy to host VHD’s in the cloud so a person could access their cloud-based OS from any device – a truly Web OS?  VMWare, after all, just recently introduced in a similar concept for something they are calling Project AppBlast.  It wouldn’t be a huge stretch to believe that Microsoft is thinking along the same lines – especially if it provides an automagical solution for the backwards compatibility conundrum.

That would certainly be something to see as well as something that solves the problem of having a modern consumer look while preserving the power and functionality of traditional and legacy applications.  In a scenario like this, all of our current development skills would still be relevant, from Silverlight and WPF to Visual Basic 6 and FoxPro.  They would only be second class citizens on the OS to the extent that they are now virtual, rather than native, skills.

But I’m sure the reality will manage to be both more as well as less exciting than any of these suggestions … and the big reveal is only a few weeks away at this point.  If I had to give a summary judgment of whether Microsoft’s wait-and-see strategy around Windows 8 has worked, I would have to say yes, absolutely. 

As frustrating as the wait has been, the feints, misdirections and long silences have only wetted my appetite to find out what Windows 8 is hiding under the hood.

Nerd Psychology

Charles_Garnier_architect

At the beginning of this month I was invited to give a keynote at the MadExpo conference opposite Jeff Prosise, who gave an amazing Thursday keynote address.  This was heady stuff and more due to the subject matter I proposed, “What Recent Breakthroughs in Nerd Psychology Can Teach Us About Software Development”, than my abilities as a public speaker.

The keynote attempted to address several intractable problems in software development using current psychological and neurological research:

    1. Why hasn’t the proliferation of software frameworks and tools made software development go any faster?
    2. Why does the obsolete technology we abandoned five years ago always eventually reappear as something new and trendy?
    3. Why do developers find it impossible to predict how long a task will take until it is completed?
    4. How much should a developer be paid for a mythical-man-month of work?
    5. What is this fear of “coupling” that all software architects seem to exhibit?

In the process, I also tried to solve another set of interesting problems:

    • Whether the brain can be hacked
    • The secret of the Mona Lisa’s smile
    • Why multi-tasking is a myth
    • Why nerds like puns
    • Why the Turing Test is a red herring

The crux of the talk revolved around what is coming to be known as the Autistic Spectrum of Disorders, which includes: Autism, Asperger Syndrome and PDD-NOS (a catch all for disorders that do not meet the requirements for Asperger but approaches it).

Various research has connected these disorders with what is commonly known as “the nerd”.  The two papers I cited in the talk were Ioan James’s Autism and Mathematical Talent and Nicholas Putnam’s  Revenge or tragedy: Do nerds suffer from a mild pervasive developmental disorder? which was published in Adolescent psychiatry: Developmental and clinical studies, Vol. 17.

Asperger Syndrome and PDD-NOS are interesting here for the qualities these disorders share with what we would think of as a high functioning software developer.  Though a bit laudatory, here is a quote from the pediatrician Hans Asperger on the disorder that bears his name:

It seems that for success in science or art a dash of autism is essential. For success the necessary ingredient may be an ability to turn away from the everyday world, from the simple practical, an ability to rethink a subject with originality so as to create in new untrodden ways …

Research on a neurological structure called mirror neurons, which were discovered in the late 80’s, are now believed to be associated with language acquisition and social aptitude.  Some researchers identify a flaw in the functioning of mirror neurons with disorders like autism.  If this is true, then it provides the clue as to why some people will turn away from social interactions and, in turn, have a large reservoir of concentration and obsessiveness which are turned to other, more mechanical, pursuits.

Pulling this talk together was deeply fascinating and I am indebted to my wife Tamara, a therapist as well as a highly accomplished hypno-therapist, for her help.

I also drew on several popular books for additional material.  They are all very readable and fascinating:

The Tell-Tale Brain – V. S. Ramachandran

Sleights of Mind: What the Neuroscience of Magic Reveals About Our Everyday Perceptions -- Stephen L. Macknik, Susana Martinez-Conde, Sandra Blakeslee

NurtureShock: New Thinking about Children – Po Bronson, Ashley Merryman

The Invisible Gorilla -- Christopher Chabris, Daniel Simons

How We Decide – Johah Lehrer

The Language Instinct – Steven Pinker

… and while not directly used in this talk, a clear inspiration for myself and the other authors in this brief bibliography is the book which inaugurated the “everything you know is wrong” genre of non-fiction books:

Freakonomics – Steven D. Levitt, Stephen J. Dubner

The slides for this talk (which includes the Nerd-Geek-Dork Venn Diagram by Matthew Mason) can be found on my skydrive.

[For reference: a quick indicator of whether you are a nerd or a geek is this: if you can pull of horn-rimmed glasses, you are a geek.  if you cannot pull off sunglasses, you are a nerd.  I personally have trouble with sunglasses but, for some reason, keep trying.]