Opinions

How Windows Phone 8 & Windows 8 can share software

Overview

Microsoft just generated a huge amount of buzz in the press & developer community when Microsoft’s Paul Thurrott confirmed a leak that Windows Phone 8 (WP8) codename “Apollo” will use Windows 8 kernel.

This is a big deal, bigger than what most people realise, because it means that Microsoft can have a standard integrated development environment (IDE) to target Windows 8 (for Intel x86/64 – Wintel), Windows on Arm (WoA) & WP8 (now a WoA)!

So when a developer wrote an app for Windows 8, he can automatically target both Wintel, WoA & with some tweaks for screen dimension, WP8!

What’s the big deal anyway?

Let’s me start by saying I’ve been a software developer for many years since C++ & Visual Basic 6. Unlike many developers these days, I’m what was called a system programmer, meaning I do low-level, machine interface stuff, including Assembler on embedded systems. I stopped coding professionally 8 years ago but I still do some projects here & there. So I’m aware of the going on in the development of Wintel, WP7 world.

Software is created by writing code in a language not unlike English. In order for the code to be recognised, you need the other party to also speak the same language.

Unfortunately, Intel Core i7 or nVidia Tegra-3 or Qualcomm Snapdragon CPU doesn’t speak English, so you need an intermediary. A translator that converts the code into machine language which is just a bunch of ones & zeros. This is the job of the compiler.

There are 2 ways to accomplish this. You can compile code directly into machine language or you can send your code into a translator that converts these code in realtime into machine language.

The advantage of the first approach is speed. The problem is you need to rewrite (port) code from one platform to another.

The second is the interpreter approach. A middleman will translate the code during software running time into machine code for the CPU to execute, hence the term, “runtime”.

The advantage is the ease of porting code from one platform to another. It still takes efforts & time to customise for the environment but at least there are less mundane chore to do/debug. The major problem is speed because the middleman also uses CPU resource. Multicore CPU mask some of the time but there’s still lag.

SO, where does Windows 8 fit into all these CPU discussion anyway?

Windows 8 is an Operating System. It’s job is to manage resources in CPU, memory, storage, network, graphics, user input, etc. The part that manage the hardware is called the kernel, which is itself a special software. The part that you see on the screen is the GUI, which is also software. All the apps that you use must interact with the kernel & GUI.

IIRC, the kernel of Windows Phone 7 is based on Windows CE, which is itself a branch of Windows 95 or earlier. It’s a very mature & stable kernel but doesn’t support multi-core CPU or pre-emptive multi-threading which is why multi-tasking on PocketPC/Windows Mobile always seem to hang or slow the phone with no way to recover but a soft reset. Surprisingly, Android 2/3 seem to share the same problems! But is mitigated somewhat by having multicore CPU.

Windows Phone 7 bypass this limitation by following Apple’s iOS when it was initially launched. No app is allowed to run in the background, except for a few that strictly follows certain parameters. Task switching was minimum, restricted to 5 open screens, not 5 open apps. This severely limited many enterprise apps which required ongoing background processing.

Now unlike Apple, which keeps its iOS & Mac-OS separately. Microsoft seems to want to consolidate their OS as early as 2003 with the MinWin initiative. Windows 7 is based on the Windows NT kernel, which was super robust but very monolithic in that all the services were integrated into the kernel, making it big & hard to debug or extend. Performance was good though because all the services exist in the same memory space.

The problem was, every time a new service is needed, like IPv6, Microsoft had to change the kernel without affecting other components. The complexity gets too much to handle even for a software house as big as Microsoft. The only way was to compartmentalized the kernel. Performance suffered a bit but can be recovered when developers optimise the individual components that were separated from the kernel.

This initiative culminated in Windows 8 using just 600+MB of memory footprint compared to Windows 7 800+MB in a TabletPC configuration. The kernel itself is only tens of MB! Small enough to fit in the future 256MB of RAM on a Windows Phone 7.5.x upgrade called “Tango”.

For WoA, the memory footprint will probably be similar to Wintel because Windows Desktop will also appear in WoA. However, as mentioned, for any developer who needs speed in their desktop apps like Microsoft Office, they will have to port their code & recompile the entire app to work in WoA Desktop environment. Which is why Microsoft was very secretive about whether legacy Windows Apps can run on WoA. My answer is, No. (Unless MS includes VirtualPC on WoA.)

It’s very clear to me that since Microsoft wrote the compiler in Visual Studio IDE & can port the entire Windows to ARM, it’s no problem for them to port MS Office as well! However, legacy apps compiled for Intel CPU will not work on WoA. Developers need to port their code.

The good news is, the new Visual Studio will probably support compiling to both Intel x86/64 & ARM all in the same IDE! Devs may need to set certain parameters but they do not need to invest in another IDE or train/hire new developers. Visual Studio will handle the differences in platform like it handles the difference in Intel & AMD CPU.

This is excellent news for Enterprise customers because it simplifies managing their business by providing a single platform that can run on Intel PCs in the office & WoA laptops/tablets for their mobile workforce. Intel CPU is much more powerful but ARM CPU uses much less power so having Windows on both platform solves a dilemma that has dogged the industry for more than 10 years. This is the reason why the iPad is so successful because even though Bill Gates envisioned a tablet future, it was Steve Jobs who realised the vision!

However, Steve had to compromise on functionality on the iPad because Mac-OS wasn’t optimised for low-memory/CPU computing. On top of that, Mac-OS was compiled for Intel CPU & it will take them time to find a good compiler to recompile for ARM, plus all the engineering needed to port the OS.

What about WP8?

Most of the 60,000 apps on WP7 are written in Silverlight & XNA. Both are interpreted code which requires a Runtime. This Runtime is also an integral of Windows 8.

Now that we know WP8 Apollo uses the NT kernel, it automatically means that WP8 supports multicore CPU, full pre-emptive multi-threading, multi-GPU & multi-displays on-top of the other regular stuff you find on iPhones & Android phones.

Since Microsoft has to compile Silverlight/XNA to work on WoA & Windows Phone is actually an ARM computer with a small screen, it means that there is NO difference between WoA Silverlight/XNA & Silverlight/XNA on Windows Phone as well! Do I even need to mention Silverlight/XNA is already in Windows 8 for x86/64?

Ultimately, this means that developers can use Visual Studio to compile speedy Native apps like MS Office for Wintel, WoA & WP8. If the situation doesn’t require speed, they can more easily program in Silverlight/XNA & enjoy low power consumption for Wintel, WoA & WP8 as well. The only major work is to change the interface to fit the screen & that’s it!

Conclusion

Microsoft has announced a range of screen size for the next version of Windows 8/WP8 & the reason is very simple.

All Windows machines will share a common interface & work the same. After adjustment for screen size, Silverlight developers can also easily target WP8 & Windows 8.

Native App developers can also easily target Wintel or WoA allowing the new platforms to gain huge number of apps in a short time. Having tons of apps drive adoption which is what ensures the survival of the platform.

I can’t wait! 8)

Opinions

What a Windows 8 Tablet should be…

* Follow-up of this article here “OEMs can’t do it, so Microsoft DID IT!”*

This article is about what I think a Windows 8 Tablet should be like.

A bit of background… My first Tablet PC was an Acer TravelMate C110 running Windows XP Tablet Edition. My current is a Fujitsu Lifebook T4210 (upgraded with Bluetooth, 4GB RAM, T7200 CPU & Self-encrypting SSD). The current machine started life with WinXP Tablet as well & was dual-booted with Vista, & finally replaced with Windows 7 Pro 32bit. SO I have a total of 8 years+ of Tablet usage.

I’m looking for a new Windows Tablet because my current doesn’t have a Touchscreen & it’s not something I can upgrade.

Based on my years of using Tablets, I have come to several conclusions which I’ll share here.

The new Tablet OS, Windows 8

Windows 8 is a rethinking of how people will use Tablets to Create Content in the future, versus, Consuming Content on the iPad & Android tablets. It’s made to run special Windows 8 applications + run your good old MS Office & Photoshop, etc.

By supporting 2 different mindsets, Content Consumption + Creation, Microsoft is trying to allow people who like iPads to enjoy ease-of-use & good battery life anywhere anytime. They are also trying to appeal to the office worker who wants a fast, stable & productive platform to get on with work to make the money to enjoy life. There is actually a 3rd mindset which isn’t well-defined yet, that of the gamer/home entertainment with XBox Live integration so we should have to wait to see how that works out.

Microsoft new vision is this. While on the move or onthe sofa, you’d be carrying a light-weight tablet that runs low-power content consumption apps from Microsoft Store & enjoy long battery life. When in the Office, you can plug it into a dock that’s connected to your Keyboard/Mouse/20″ monitor to work & run your old MS Office & Photoshop, etc.

After you’re done, you can bring the tablet home & plug it into your Home Entertainment center where you can play your games or watch streaming video on your 55″ 3D LED TV. That’s the vision Microsoft is pushing for Windows 8. Can it work? Yes! All the technology needed are there, WiDi, DLNA, 4G, HDMI…

Now Windows 8 Beta is coming out soon & should be almost feature complete. It should be interesting for people who has Touchscreen Tablets/Slate because they get to experience this vision first-hand. Some of the suggestions from Developers have been adopted in the Beta & it’ll be interesting to see how far MS goes to satisfy End-users when the Release Candidate comes out by mid-2012.

Hardware, the physical tablet must feel good & look good!

Many manufacturers have also pledged to launch Win8 Slates in H2 2012 after their Android Tablets fail to make a dent in iPad sales. If these new Slates are less than SGD$1000, it will attract buyers (with enough advertising & education.)

The current batch of Windows tablets (in Singapore), Acer W500, Asus B121 & Fujitsu Q550 all have fatal flaws that makes them unattractive to buyers. Chief among them is Windows 7 of course. There’re too much bad press about Windows 7 being a lousy tablet OS. Some of the complaints are true but many the reviewers don’t know what they’re talking about. Let me say again, Windows 7 is a competent Tablet OS when configured right.

It’s easy to configure Windows 7 to be easy to navigate using Touch. All the settings are inside the Control Panel (bigger icons/text & space in between/super large themes). StartBar can be docked to the side & gesture controls can be used to navigate the interface.

The problem, of course, is these things should be pre-configured by the Tablet makers themselves, not the end-users. Slapping a custom layer over Windows 7 desktop isn’t the answer as well! Therefore, the fault lies in these makers, Acer, Asus & even Fujitsu who just slap Windows 7 in as if they’re selling Desktops. No customisations whatsoever!

On top of that, these tablets are either too heavy or too bland or too slow. Take a look at the new Nokia Lumia 800 & 900. People naturally gravitate towards the better looking device even if the specs aren’t as fantastic as a dull looking but super-fast one! Early iPhones & iPads are the BEST examples!

The brains behind the operations, the CPU

The other flaw is CPU. Intel Atom CPU + motherboard + chipset was too expensive for its performance. Being single-core with low bus speed + a GPU that’s slower than molasses. It can’t even play a decent 720p video without dropping most of the frames.

The coming generation of Dual-core Atom CPU (Cedar Trail) should finally solve the problem unless Intel screws up somehow. Dual-core, higher bus speed, support for 4GB RAM + a PowerVR GPU should allow 720p video playback (clear enough for a 10-12″ screen or a 55″ TV). A typical person using this tablet for media consumption & business usage should have no complains about lag. Gamers wouldn’t be interested in Atom CPU of course but home entertainment is definitely doable!

Makers of tablet (Asus) also shouldn’t be using Core i5 in their Tablets. It adds weight & $ cost for heat dissipation & reduce battery life, or they have to use a bigger battery thus increasing weight. Considering Core i5 + chipset uses >30W while Atom + chipset uses <10W. A 4-cell battery powering an Atom N2800 should last >4 hours of actual usage with WiFi on & screen at half-brightness.

SSD prices have come down by a lot on the lower-end, 32-64GB. If storage is not enough, a 32GB SDcard or MicroSD is also dirt cheap. With all these drop in prices, I do not see why a Win8 Slate should be more than $1000.

Let’s guesstimate the costs of the perfect Windows 8 tablet…

MS Windows 8 Home OEM license – $130
Intel Atom N2800 CPU – USD47
4GB DDR2/3-800 SODIMM RAM – $50
Kingston SSDNow Self-encrypting 32GB – $100
IPS 10″ LED screen – est. $150
Li-ion 4-cell battery – est. $100
Motherboard + WiFi + Bluetooth – est. $80
Chassis + Gorilla glass + Touchscreen + Active Digitizer – est. $120

Total around $800 including box + packaging! Maybe I’m optimistic but I think $1000 for this Tablet is entirely possible! If you include branding/advertising, it’s still an additional $100 at most. Still near to the price of a White iPad 2 32GB. Tablet makers can even throw in a 32GB SDcard to act like a secondary storage & only add another $20 to BOM cost.

We can see from the Android camp that users are demanding higher & higher performance by using Quad-core CPUs & integrated high-performance GPU to save power & improve Android’s laggy nature. The irony is, Windows 7 is super optimised already & Intel is simply lagging behind on the low-power front. Nobody I know liked their Netbook due to the many (artificial) limitations that Intel put on the Atom CPU. The only decent Atom is the Cedar Trail CPU that I just mentioned but the price is not low either.

Intel should watch out since Windows 8 will be able to run on some ARM-based platform like Nvidia Tegra & Qualcomm Snapdragon S4. I’m not mentioning ARM-based Windows 8 because older Wintel apps like MS Office cannot run on ARM-based Windows 8 unless Microsoft emulate x86 platform on ARM which will be a major engineering undertaking, not to mention the high licensing fees they have to pay Intel. I may be wrong but I’m pretty sure MS will not do this for many years to come.

Conclusions

So the question is, why aren’t PC makers chunning out great tablets? Maybe it’s because there wasn’t a strong enough vision until Apple launched the iPad or Microsoft was so pre-occupied with the Anti-Trust lawsuits that they didn’t listen to customer demands for the past 10 years. Or even maybe because Bill Gates has left the building.

We have been pushing for lighter tablets with better battery life for the longest time but while Sony & Lenovo have 1KG laptops with >8 hour battery, they didn’t translate these to the Tablet form factor. It has been extremely fustrating for Tablet users like me for the longest time, but finally it seems that our prayers are being answered with Windows 8.

In conclusion, 4 things must come together for the Windows 8 Tablet to be successful or better yet, be desirable.

1. Windows 8 is already super efficient in terms of CPU/Memory performance. It’s the Interface that’s the biggest bet for Microsoft. So far the Metro design language seems to be winning praise from Press & developers. Windows 8 has 2 interfaces, Metro for media consumption & traditional for media creation. If Microsoft listens to End-users during the Beta & makes the necessary adjustment, Windows 8 Metro could be wildly successful. Many people are already praising the Metro interface on the Xbox 360 & Windows Phone 7 Mango, so chances are good.

2. Hardware makers MUST make their tablet shine! Nokia has shown that with a beautiful device like the Lumia 800 & 900 + enough advertising, people will WANT to get it! Apple basically made a name for themselves around simple beautiful design with tons of advertising. That’s why there are calls for Nokia to make a Win8 tablet based on that polycarbonate shell! I certainly would love a Lumia tablet but that HP Slate is cool as well!

3. Intel must support Windows 8 by making a CPU/chipset that’s fast enough & cheap enough. So far the Intel Atom CPU has been a joke in the market. More than anything, users were not satisfied with Netbook due to lag. It’s ok for the processing to be slow but it’s NOT ok for the mouse to stop working after clicking something. This is the problem with a single-core CPU on a desktop OS.

4. Price. Fujitsu Stylistic has been the pinnacle of TabletPC in the Slate format for many years, but few companies & even fewer individuals can afford the $5000-6000 price tag. So long as manufacturers stick to Intel Atom Cedar Trail, they can afford to use cheaper components. These few years has battled the economy of many countries. Having a fast enough tablet at an affordable price will be a major factor in determining how many buyers they can attract which will further drive adoption rates.

To say that I’m excited about new Win8 product launches later this year is an understatement, especially with all the cool Ultrabooks that these same makers can make. If they (Microsoft/Intel/Manufacturers) get the above 4 points right, we could get a iPad killer. Until then, we can wish & pray.