While many companies have been trying to jump onto the Smart Phone bandwagon over the years, Windows devices seem to have had a troubled path there. Rather than try to figure out the pros and cons of Windows on a Smart Phone, this developer would like to see a new breed of mobile devices, let’s call them a “Smart PC”.
Rather than start from the perspective of a phone, why not try the reverse, start from the perspective of a PC. Forget the phone for a moment. But isn’t that called a tablet ?
Not exactly. Tablets, despite how much we like them are still unwieldy. We add a nice case to the tablet to protect it and now it weighs quite a bit. The tablet is not quite a PC, but not really a mobile device because of its size.
Let’s look at the smart phone. What one feature of a smart phone (other than the phone part) do PC users dream of ? Something so small it can fit in our pocket. Now don’t we have that with PC on a Stick ? No, because the PC on a Stick requires a TV to display something (and it isn’t touch enabled), requires an external mouse or keyboard to enter input.
What we need is a tiny PC, which is tablet like, but the size of a Smart Phone. But, wasn’t this tried back in the days of UMPC (Ultra Mobile PC) ?
First, UMPC failed because the hardware was not there yet. The devices were clunky, very limited in power and battery life was terrible. Interestingly, later came the Netbook, which was for a time a big success. Small laptop, inexpensive and far more portable than the typical laptop. But in time netbooks disappeared, likely because Smart Phones were replacing computers and tablets were even lighter.
So, we are back to tablets, right ?
Time to rethink the PC
The key aspect of why someone uses a PC is that it is a work tool. Smart Phones and tablets have replaced most of the common consumer uses for a PC. But where are PC’s used the most now ? In business ! In education ! For the creative (graphic design, music, writing) ! Consumers who still use a PC, use them for some kind of work or task, not well suited to a typical Smart Phone or tablet. Businesses use PC’s all the time.
So why a mobile (or Smart) PC ? For when the task required needs to be done on the go, but when one wants the full power of a PC to do it.
How many businesses would love to have a real PC literally in their hand (like their phone) and not require two hands to hold it (like tablets require) ? How about when doing a job where it would be nearly impossible to drag around a tablet, but a phone sized device would not hinder their work ? Just consider a construction site, with all sorts ot tradesmen working and in the instances where they need some computing power they slip out of their pocket or workbelt a real PC the size of a Smart Phone. But can’t a Smart Phone do instead ?
Why Windows is so important to getting work done
Like many people, I have an Android tablet and an Android Smart Phone (many use IOS, I know). I love using them, but for what they are best suited for (consuming content). But when I want to get some real work done, like most I fall back to my PC. What I like about the PC is it is an open system. I have full access to the file system. I can move files around at will. As a programmer, if I don’t have the software to accomplish a task, then I can write it knowing I don’t have to limit myself to a sandboxed system that comes with most Smart Phones. Sandboxing a system was developed to protect the consumer, the user. PC users tend to want more freedom and are willing to accept the risks.
Windows is the operating system of choice when it comes to getting work done. But the problem in the past with UMPC devices was that we (software developers) tried to package them as if they were just tiny PC’s and use the same software we use on our big PC’s. We can learn something from the Smart Phone. Software on a small device needs to have different rules and be designed for the device (its size, touch, etc.). Smart PC’s would require the same. Yes, they would be real PC’s, with real (x86) Windows running on them, but designing the software would be the key to their success.
How would Smart PC software differ ?
The software needs to be designed for a Smart PC device. Screen resolutions should be defined so there are not too many choices to decrease scaling problems. A Smart PC is not meant to replace your desktop or laptop, so don’t expect to run desktop software on a Smart PC. The best way to design software for a device is actually on the device itself, so define a standard for some kind of desktop hub which you can just plug your Smart PC into it and it would be connected to a monitor and keyboard. Design the software on the device itself in real time. You will quickly see how well it works.
If there is one thing many PC users expect it is performance. Rather than worry about cross platform considerations (there aren’t any Android or IOS Smart PC’s yet), write software for the best possible performance and that means native code. I would even forget dot.net. Write to the core operating system, the core WIN32. Apps would be tiny in comparison, would likely outperform any non-native code software and would not have the bloat of dot.net. This would change the hardware requirements for the devices. Existing SOC’s would be super powerful on such devices. Hardware resources would be minimal.
Don’t try to do what you can do on a big PC. A Smart PC would not be a PC replacement. It would simply provide a useful tool for computing when mobility is the key. Imagine a technician climbing a tall ladder to repair something important and he needs for a moment access to a powerful computing app written specifically for his trade. That Smart PC is so small it is safe to carry with him. Maybe he even has it roped to his belt so if he drops it , it won’t fall. The device is inexpensive, so he does not worry about the rare case where it may get damaged. The software was designed just for this situation he is in. In this case, mobility is what is important.
What about a phone ?
Not all Smart PC’s would require a phone, so design the Smart PC for tasks it would handle best. In the case a phone is added to a Smart PC, don’t sandbox the entire PC, but sandbox the phone, so no outside software can cause problems for it. Smart PC’s could also access the internet, but it would be best not to confuse them with a typical tablet which is a consumption device. A Smart PC would not be the choice for typical web browsing, but it could generate a new web presense of websites specifically designed for a Smart PC. Imagine a carpenter, who can browse a web site of a vendor of house windows or roofing materials and they have a specific web page for browing products just for Smart PC’s. As Smart PC’s become popular, more and more companies might provide Smart PC specific material. As far as the software, a unique generation of web browsers for Smart PC’s might sprout, where the browsers are designed specifically for the needs of a Smart PC and they could be sandboxed to protect the PC.
Unlimited variations possible
The basic concept here could be modified for a variety of tasks, specific markets. There could be a Smart PC for carpenters. A Smart PC for electricians. A Smart PC for doctors or nurses. Windows software development would have to have some rules defined so developers could more easily write software, such as how resolution is handled, maybe limiting user scaling, etc. So forget about the Windows Smart Phone, but how about the Windows (x86) Smart PC. I would would buy one !
Chris Boss is the owner (and programmer) of a small software development business in rural Virginia, called the Computer Workshop. For the last ten years or so he has been developing tools for use by Powerbasic programmers (see: http://powerbasic.com ). His main product called EZGUI (Easy GUI) is a high level GUI engine with Visual Designer and code generator. It is in its fifth generation now. He is an experienced Windows API programmer (more low level) and has experience in writing GUI engines (forms/controls), drag and drop Visual Designers, Graphics engines (printing and to the screen) and one of his favorites is a Sprite engine (2D animated movable images). His current project is version 5.0 of his main product EZGUI, adding such features as multi-monitor support, component engine, custom control engine, superclass engine and the latest project a 3D OpenGL based custom control. One of the goals he has is to push the limits of Windows software development, while making it easy, fast execution speed, small footprint (size of executables) and code reusability while providing a more graphic experience in user interfaces, while still being able to write software which can fit on a floppy disk (small footprint), use minimal amount of memory and able to run on multiple versions of Windows from 95 to Win8.