I have been using Windows 8 Developer Preview (32-bit build) for more than a month now, and must say that I am impressed. The first thing I did was test my own software to see how well Windows 8 supports programs that can run on Windows XP, Vista and Windows 7. So far the tests look good, and I only found one thing that did not work correctly (didn't handle a layered window properly).
I played with some of the supplied Metro applications, and they are quite interesting. At first, Metro totally confused me -- and I am a programmer! For example, you can't terminate a Metro application like you can a desktop application. Coming from the desktop experience, Metro may confuse some users. That said, I need to get some more information about Metro and how it works. Whether you are a programmer or not, I strongly recommend watching the Microsoft Build video about creating (and using) Metro applications, which you can find here.
The video is quite long, but worth your time if interested in how Metro works. Even non-programmers will understand most of the information presented. Now I appreciate more what Metro is all about and I like many of the concepts. I won't go into any details, since the video does a better job than I could.
From everything I have read, ARM-based tablets will only support Metro applications, while x86 (Intel/AMD CPU's)-based tablets will support both Metro and desktop applications. Desktop is how Microsoft describes the current-style applications we are used on Windows XP, Vista and Windows 7.
Questions, Questions
The biggest complaint I've seen: The old Start menu will be replaced by a Start screen that would better be called a "Switch" menu. The big question: What will Microsoft do to improve the current Start menu for those who will work as much on the desktop as with Metro (see the insightful "Building Windows 8" blog for more on Start). I don't know about the average Windows user, but I currently have a Start menu (on Windows XP) that has over 125 items on it (yes, that many applications). My desktop has over 100 icons on it as well (many icons are for stuff not on the Start menu). Microsoft really needs to put more thought into how those who use desktop applications can access those applications (and files) that used to be available from the Start menu.
From a programmer's point of view, I am concerned about how well Windows 8 will support many the new features when it comes to desktop applications. Metro has some really exciting new features, like contracts, which I really wish was supported with desktop applications as well.
It is not enough for Windows 8 to support both Metro and Desktop applications, but the two need to be more seamlessly integrated. So far everything points to the Metro world being closely controlled (e.g. only source for applications will be Microsoft app store), while the desktop world will be "open and free" as in the past. I spent some time trying to find the location of the Metro apps on the hard drive; what a chore. I just wanted to examine some of the files of those Metro applications to see how they were written.
Another very important concern about Windows 8 is the effect on programmers who do not use a Microsoft product to write applications. Some very good software is written today using non-Microsoft tools. Desktop applications shouldn't be a problem, but Metro applications is another story. Will we be able to build Metro applications with non-Microsoft tools?
Metro works well and provides some great new features. The Desktop appears to work like it has in the past. The real question: How well will the two can blend? As a developer, I would like to see more overlap between the two. They need to be melded together so they become one operating system, rather than two uniquely different operating systems simply glued together.
So will Microsoft provide some new API's for developers of desktop applications so they can better blend the desktop with Metro? Will they make such features available for those who write native code applications? Also, will programmers be locked into using Microsoft programming tools when they want to create Metro applications?
What About Hardware?
There also is the question about the hardware necessary to run Windows 8 effectively. The Samsung tablet PC provided at BUILD was a bit more powerful than the average Windows 7 tablet PC of today. If the latest experience in the tablet market has shown anything, price will be a big issue for x86-based tablets. Sure ARM-based Windows 8 tablets may be cheaper to build, but for those of us who want the full Windows experience at a price we can afford, Windows 8 needs to be able to run well on very low-end hardware.
So will we see any very low-cost, mass-market, tablet PCs running Windows 8? We have seen some current netbooks sold at Walmart for as low as $228, but will there be Windows 8 tablet PCss in that price bracket?
You know what would be amazing? If when Windows 8 is officially released, I could go down to Walmart and purchase a x86 based tablet PC running the OS for $250.
I am not interested in iPad, even if it sold for only $250. I want a real Windows tablet that can run my desktop software. For $250 such a tablet would sell better than netbooks have, I think.
They only need a 32GB SSD instead of a hard drive. I have Windows 8 (32-bit) installed on a 20GB hard drive right now and there is plenty of room left. Also since there is a lot of emphasis today on using online services for data storage (aka. the cloud), users can store a lot of stuff using that. Programmers can (and should) be able to write efficient software that requires minimal space (and memory) on PCs, so such a tablet would suffice.
Now if Microsoft wants to make a big splash when Windows 8 releases, let's see if they can (with their partners) produce a $250 tablet PC running x86 Windows 8. In my opinion it can be done, but will they?
Chris Boss is an advanced Windows API programmer and developer of 10 year-old EZGUI, which is now version 5. He owns The Computer Workshop, which opened for businesses in the late 1980s. He originally developed custom software for local businesses. Now he develops programming tools for use with the PowerBasic compiler.