The race for the multi-touch input devices has begun, unfortunately as of today, the prices are unaffordable for the regular consumers and developers that are tied to project budgets.
We all remember the GUI from Minority Report and the attempts CSI Miami* is making nowadays to show these input devices as regular, day to day available hardware.
Most of us, developers, know it will take a while till the hardware becomes available/affordable in enterprise or end consumer applications.
But the time might be around the corner.
Hopefully it will be like the IBM PC and the PC-clones stories, third party companies were able to clone the IBM PC’s hardware and lower PC prices. That along with MS-DOS being distributed as a separate product, made the PCs widely affordable. No more architectures based on Zilog Z80 or Motorola 6508 (my highschool classmates played with Z80/8085 assembler back in the 80s), Intel 8085 quickly became the processor of choice, then the 16 bits 8088, 32 bits 80386 and 486 and all AMD clones.
Anyway, my point is, let the hardware be cloned, lower the prices and sell the WPF, XNA, Surface.Core APIs as a separate products. **
I just came from a Metro Toronto User group presentation about Microsoft Surface and played tetris with a few other group members. The presenter gave a great introduction to multi-touch devices and how to start programming for the MS Surface using WPF.
Unfortunately for me, I would have to email my hello world app to Dubai for debugging purposes.
It seems the price range of the Surface is about 15 to 20K. It is now used in a Casino in Vegas, some banks in Switzerland and widely spread in Malls in Dubai.
Another multi-touch/multi-user device is the incredible Perceptive Pixel Wall with range prices in the order of 100K. I wish I could get a hold of the development platform for this 100K device :-p What the heck are they using?
So far all of these technologies are under a pretty lip tight policy…It’s proprietary, can’t touch this. As a difference b/w the MS Surface and PerceptivePixel is the pressure perception. MS Surface being based on infrared rays and an arrays of cameras cannot perceive pressure.
IPhones from Apple, even though they are not multi-user, do recognize a few types of touches and are more affordable, if you don’t sign up with Rogers. I believe they use the Objective-C Cocoa framework as development API which would be pretty hard to kick off for a Java or .NET developer coming from a managed environment. I remember the alloc and mallocs from C and get chicken skin…what’s wrong with being spoiled with Garbage Collection?
Enough about random thoughts, I wish I could have played Tetris for longer…
* I’m not a regular of the show, but my mom asked me once if I developed apps like that on my workplace…Not mom, not quite yet.
**Let’s see if they listen :-p
Objective-C 2.0 (as implemented in Mac OS X v10.5) does support garbage collection, but if Objective-C is definitely not your cup of tea then you can “link” to Cocoa through another language (Python or Ruby would be my choices) using a bridge like PyObjC or RubyCocoa. You can also use C# through Mono and NObjective… but no matter your language choice, you still need a Mac as a development platform.
Do I? Could I just use a PC with Ubuntu instead? I saw this cute little Acers that fit on my purse for only 299 🙂
Strictly speaking, I’m afraid you are. Cocoa is a native API, it doesn’t run outside OS X and AFAIK it has not been ported to any other OS. The closest thing would be GNUstep, an open source implementation of NeXT’s OpenStep (Cocoa is basically the continuation of OpenStep, when Apple acquired NeXT) Your Cocoa code could run on GNUstep, but it would probably need some tweaking and praying (Some of those issues are explained here.) I have no clue if GNUstep supports multi-touch input devices though.
Good luck typing in that Acer Aspire One 😉
Then nay, I’m a spoiled windows developer, so I guess I’ll bet for WPF and Surface.Core for the next UIs…and wait till the HP tablets reduce size.
I have a colleague that bought one (Acer Aspire) with Ubuntu to do his Java programming, but he attaches a kb and monitor while he’s at home. Last time I used a Mac was in 2002 with Tiger maybe? Designers loved it but I found it to be too constraining…
What development framework this pixel people use, hrmmm?