Tuesday, 22 of July of 2014

Just waiting for a 7 inch Intel based Windows 8 tablet !

Not only do I think a 7 inch Windows 8 tablet possible, but I look forward to seeing such a device. The real question though is, is it possible ?

The problem with Windows tablets in the past has been poor CPU power. Actually, the problem isn’t really poor CPU power, but poor software which simply runs poorly on a less powerful CPU. So what is the problem ?

Having been a native coder for the last ten years (WIN32 API), rather than using managed languages (aka. dot.net), I find that Windows software lacks performance because of how it is developed today and not because the CPU’s are not powerful enough. You have to appreciate that I have been writing software since the days of CPM (and earlier) and the CPU’s which were the powerhouses of the day had 1/50th the power of a modern low end CPU (or less). We learned how to tap into the power of a CPU by writing software with compilers which didn’t waste a CPU cycle. Fast machine code.

The problem today is that we have lost that art of writing small, compact software. There is too much overhead in our software. Partly due to the overuse of object oriented programming and partly due do bloated frameworks which require too many resources. Simply put, we as programmers have gotten lazy because when our software ran poorly, we simply upped the minimum requirements needed to run the software. Let’s be honest here. How many programmers today would be willing to use as their primary development PC, a computer with only an Atom CPU (single core), onboard graphics and 1 gig or less memory ? Well, I would and have. For a major portion of those ten years writing software (I wrote tools for programmers), I was using an old Windows XP computer with 768 meg ram (for a good while only 256 meg) and a lowly Celeron CPU which was no better than todays lowest Atom CPU. My harddrive was a wopping 40 gig, which was plenty of space for me, since my entire development system was about 20 meg in size, which allows me to maintain multiple versions of that system over the years, likely not amounting to much more than 800 meg over the years and that is with a lot of old, old stuff staying around.  That included a lot of source code versions over the years for five generations of my commercial software, plus a bunch of other stuff.

The reason I was able to work with such minimal hardware was that I am a native coder, meaning I write software using a fast compiler geared to native coding (WIN32 API) which produces small and compact applications (or libraries). No heavy duty GUI frameworks needed. No large studio development environments. Other than the compiler, I create my own development tools from a drag and drop visual designer/code generator to my own libraries.

You have to appreciate that my first 32 bit Windows computer (Windows 95) has only 8 meg ram and a 486 class CPU in the 25 to 33 mhz range. Not much power when you think about it. When I started writing native WIN32 code I, Windows XP was the current version of Windows, I wasn’t even developing on an XP machine (even though I had one). I coded on a souped up Windows 95 machine with a 233 mhz CPU and 256 ram (a lot for Windoes 95). My peers were using Windows XP with Pentium 4′s with a good bit more memory than I was using. Actually, the development system I current use would still run fine on that old Windows 95 machine, but now Windows XP is the legacy system now so no need to go that far back. Even my current development PC (my XP PC crashed a few too many times for my taste and needed to be superceded) is my good old Vista machine which I also souped up by adding more ram and a new CPU, so it has 2 gig memory and a 3.2 ghz Pentium D CPU, but still nothing compared to the typical development PC.

To appreciate the kind of hardware I have been developing on, check the following benchmark web site and see how your computers CPU rates:

http://www.cpubenchmark.net/cpu_list.php

The typical core I3 CPU (which is lowly by most programmers standards) rates above 2000 on this scale. My current Vista PC rates only 715 and my previous XP computer which I used for a major portion of the last 10 years doing native coding only rates about 251. Thats lower than most of the older Atom CPU’s and a good bit less than current Atom CPU’s.

The key to building software with a small footprint and minimal hardware requirements is getting every last cycle out of a CPU. To appreciate why native coding using a compiler which produces a lean application is so important, watch this video on Channel 9 by Herb Sutter (Microsofts C++ expert) about writing software for performance. While I do not code in C (or C++ or C#), I do agree with his sentiments in his talk.

http://channel9.msdn.com/posts/C-and-Beyond-2011-Herb-Sutter-Why-C

So what does all of this have to do with a 7 inch Windows 8 tablet ?

To be able to squeeze the necessary hardware into a small form factor like a 7 inch tablet requires using components which use less power and take up less space, like the Atom CPU. Guess what happens though when you do this ? A lot of Windows software will likely run very poorly on such a PC. Just not enough horsepower, for many developers that is. But not a problem for native coders who know how to tap into the Windows API and how to get every cycle out of a CPU. How we write software for Windows 8, could determine whether a 7 inch tablet is viable or not. A 7 inch tablet, prices right, would be a great tool for schools, for businesses as well as consumers in general. And a native coder who knows how to tap into the power of the WIN32 APIs doesn’t even need Metro (aka. Windows Store apps) to do this. All that we need has been here even since Windows 7 (touch support).  A native coder can also write software which is transportable. What is that ? Transportable software does not require any bloated GUi frameworks (no need to update to the latest dot.net runtimes), does not require any components be registered with the operating system and can simply be copied and run. Copy a few files to a jump drive or SD card (or micro SD) and run. Transportable ! Yes, small form factors like a 7 inch tablet benefit from transportable software which need no installation. Transportable software means a small footprint so little space is required on the native drive and the app can be loaded in the smallest sizes of memory cards.

Don’t think that this is possible ? Native coders can do it.

Now not only would a 7 inch Windows 8 tablet be a fantastic idea, but imagine if a Windows 8 tablet that small was as thin as some of our current ebooks. I don’t see why it would not be possible. Such tablets wouldn’t be running quad core CPU’s with huge amounts of memory, but that doesn’t worry me. You see, I am a native coder and that is what we do, write software with a tiny footprint which needs minimal hardware. So, I am just waiting for the first Windows 8 small footprint tablet, 7 inch screen and so thin and lite it just weighs nothing in my hands.