The Future is Now!

Minority ReportIf you want to build the kind of science fiction, futuristic GUIs that only exist in TV and movies (think: Minority Report) then you want to be looking at Windows Presentation Foundation (WPF).

WPF is Microsoft’s next generation API for developing applications and it’s possibilities really start to shine through when you look at Microsoft Surface, which was developed entirely with WPF and the .NET Framework.

The idea behind Surface is that any surface – vertical or horizontal – can be made so that you can interact with it in a very direct and natural way.

“We used to say a computer on every desktop and now we say every desktop will be a computer” — Bill Gates

Microsoft SurfaceThis notion of interfacing with a computer through touch and gestures rather than mice and keyboards is all part of the next generation of user interfaces – termed “Natural User Interfaces” or NUIs for short (pronounced New-eee, like GUI with an “N”). The idea is Microsoft Surfacethat we began with Command Line Interfaces (okay, we began with blinkin’ lights, toggle switches, and punch cards – but…), progressed to Graphical User Interfaces, and we are now entering the next stage of this evolution.

“The last 30 years of computing have been about people learning the language of computers. The next 30 years are going to be about computers learning the language of people.”
— Daniel Makoski, Interaction Design Manager, Microsoft Surface

There is this notion that content is the interface. That you can just walk up and interact with it. And even if you don’t have a $10,000 touch screen wall, WPF provides a whole new way of designing user interfaces on today’s PCs that allows you to break free from the old paradigms.

Microsoft Surface» Screens are rendered with a Painter’s Algorithm, which you can think of as a canvas upon which any element in your application can draw. Any shape is allowed, so say goodbye to yesterday’s rectangular windows and controls. And any element can add to the layers beneath it, allowing you to render 3D scenes on a 2D surface.

Imagine if photos didn’t have to be stuck in an unnatural row of perfectly spaced rectangles. You could scatter them across the “table”, spin them around, group them so they overlap one another just as if you were handling the physical versions.

» All types of content – text, images, video, audio, 3D graphics, documents, etc. – are treated as 1st class citizens within a WPF application. They can respond to user input and issue commands, moving us away from PC constructs like buttons and menus, and towards the more natural model where content is the interface. WPF intrinsically supports things like 3D objects as “buttons” (imagine a spinning globe you can navigate and zoom in to find your destination).

» All content is rendered as 3D. This means you can apply transformations and animations to any object, allowing objects to respond to users just as real world objects do. Imagine a 3-Dimensional object moving just slightly when you touch it. It suddenly becomes more tangible than a static 2D image.

» WPF is vector-based, meaning that all drawing is done through mathematical algorithms rather than dots per inch, providing us with perfect scalability of our content (obviously, bitmaps not withstanding) as we zoom in and out.

This allows us to present information in an entirely new way. Imagine how we work with documents in the real world. If your desk is like mine, you’ve got papers scattered across it and stacked up in piles that others might call messy, but, of course, we like it because we know where everything is. Now, imagine a “project” on your computer that’s made up of text, spreadsheet data, images, audio and video where you can seamlessly navigate between all of the different components, zooming in on the areas you want to focus on, then zooming back out to a view that allows you to see what else is in the project. Just like you could do with the papers on your desk, but with the technological perks of rich media, in place editing, and whatever other nifty tweaks us developers can think of.

So, okay, maybe the future is still tomorrow, but I think we’ve got some very exciting things that we can do today to move us in that direction. And, if nothing else, there is the hope that…

“One day, your computer will be a big ass tableSarcastic Gamer.

Check it out:
» Microsoft Surface – check out their videos to see it in action
» Microsoft Surface Parody by Sarcastic Gamer – because we still love making fun of Microsoft
» WPF Bootcamp – Learn WPF with Microsoft’s bootcamp: 3 days of training videos and hands-on labs. Awesome stuff!
Bootcamp ’08 Video of the 2008 training. Highly recommended, but the labs aren’t on-line yet.
Bootcamp ’07 – Includes hands-on labs from the 2007 bootcamp you can use to augment ’08 training.


7 responses to “The Future is Now!”

  1. I got an ipod touch and I love the acceleration effect, where i have a list or a part of a page and i can fling it up or down.

    Have you read Neal Stephenson’s In the Beginning…was the Command Line? I imagine it’s a bit dated now, but it’s a long essay on similar lines.

    Do you subscribe to TED? You should watch this video:

    Ok. Enough telling you what to do!

  2. Abby Fichtner Avatar
    Abby Fichtner

    Huh, bizarely, I’m actually currently reading a book by Stephenson… The Big U. Mostly because I’m not very smart and so haven’t yet learned that words like “early writing” and “re-issued after years out of print” are phrases that should cause me to run and hide.

    Meanwhile… In the Beginning was the Command Line is probably a perfectly good book (still in print, after all) that is for some reason sitting on one of my bookshelves unread. I should really go read that.

    I did see that video on TED. I do not subscribe, it seemed a little overwhelming – I was trying to find a way to subscribe to individual categories, but it looks like an all or nothing.

    (okay, I’m going on and on here because my alternative is dealing with ClearCase which, please, just shoot me now. Is it 5:00 yet?!)

  3. Abby-

    I’ve written a few apps in WPF, its funny how every time I make something, parts of it end up looking like a video game before I am finished.

    Is it because I’m a bad designer, or colorblind? Not really, I do non-standard UIs in WPF because I’m no longer constrained by the rigid windows-forms api. Our clients have been trained by people like us to expect a certain standard, and I find that they love it when I challenge those expectations, and make something a little more “natural”.

    by the way, I like your blog, your point of view shows all the rare traits of someone with uncanny talent. you give “hacker” a good name.

  4. Abby Fichtner Avatar
    Abby Fichtner

    ahh, the other person up in north country writing WPF apps. I was happy to find your blog, most of the people around where I am now can’t be bothered with these new fangled computer things. 😉

    I’ve written a few apps in WPF, its funny how every time I make something, parts of it end up looking like a video game before I am finished.

    I think that’s awesome! That’s what so excites me about WPF – the fact that we can break away from these models that only make sense in the world of computers. Who says software needs to look like that?

    You should post some pix if you can on your blog – would be very cool to see what others are doing with it.

    you give “hacker” a good name.

    hah! Thank you. That’s what I’m here for. 😉

  5. Its fairly crazy.. some of those multi touch screens are really advancing.. soon snow crash or neuromancer vr will be a thing of the past.

Leave a Reply

Your email address will not be published. Required fields are marked *