Tuesday, 18 of June of 2013

Tag » small footprint

Small footprint desktop applications for Windows 8

One of the problems in producing low cost Windows 8 devices is that the hardware required often brings the cost of the device too high. Why this problem ? Because a good bit of software does not run well unless you have a good bit of horsepower in the computer. It really should not be so and let me explain why.

The typical developer PC

The mainstream development tools (aka. Visual Studio) require so much horsepower that the typical software developer has a far above average PC. I downloaded Visual Studio Express and it took a good 2 1/2 gigabytes of diskspace just to install it. I doubt very much the average developer could use an Atom powered PC with just 2 gig ram for their primary development PC. Now if the development tools need so much power, what about the software created with it ? Do developers even fully appreciate how limited the average consumer PC is compared to what they develop on ? It is a valid question.

PowerBasic and EZGUI, tiny by comparison

I used the PowerBasic compiler to build my GUI tools. My current development PC is a Vista Home PC, which I upgraded to a Pentium D CPU and 2 gigabytes ram. The only reason I am still not using my Windows XP PC for development is that it crashed a couple of times and was not reliable any more, so I switched PC’s. My Vista computer was upgraded not for the benefit of my development tools, but because I used it for some early testing of Windows 8 (swapped out the harddrive and installed Windows 8 Build Preview on it). I am back to Vista now though.

When working on my XP computer I only had a Intel Celeron CPU with an upgrade to 768 megabytes ram. I actually worked on that PC for some years with only 256 meg ram. Before that I actually was developing on a Windows 95 (yes, 95) PC which I souped up to big 256 meg ram (a lot for 95).

My current development tools, the PowerBasic compiler and my GUI engine (EZGUI 5.0) only require about 20 megabytes of disk space. Imagine developing on a PC and only needing 20 megabytes to install the development tools and only needing 256 megabytes of ram to work with it. I could run my development tools on any PC from Windows XP to Windows 8.

The entire GUI engine (DLL’s) I built is only about 1 megabyte in size. The Visual Designer I created with it for as a RAD development tool only requies about another 1 megabyte of space. The rest is documentation and sample code.

Compile time when using the PowerBasic compiler is only a few seconds for the largest source code file I need to compile. The EZGUI runtime is only about 45,000 lines of code, not counting all the Windows API headers required to compile it.

Add to this, when an application uses the WIN32 API, it does not need any dot.net runtimes. For 3D, I use OpenGL and it is supported even on legacy PC’s. No large operating system frameworks required.

So this is why I work with the WIN32 API and use PowerBasic. Small footprint applications means they run on even the most minimal of hardware. If more software was like this, then Windows 8 devices (PC’s, tablets) could be less expensive requiring less powerful hardware.

 

For more information about PowerBasic see:   http://www.powerbasic.com

 

For more information about EZGUI 5.0 Professional see:   http://cwsof.com/ezgui5promain.html


Comments Off

The leading edge is not always cost effective !

It has been interesting reading much of the news about things like “the Post PC world” and “Windows 8 not selling well” and the like. I am just as interested about where the computer world is headed as the next guy, but with one difference.

In a tough economy, we have to count are pennies !

An old saying I often like to repeat is “a penny saved is a penny earned”. For years when I helped local businesses computerize that was often a key goal in how I approached their needs. I didn’t want a customer to spend money he didn’t have to.

You can also see this in my own choices when I buy computer hardware and software for my own needs.  Programmers are notorious for wanting the leading edge in computer hardware. Myself though, I prefer to spend as little as possible on new computers (and software) which means learning how to get the most out of minimal hardware. Maybe others are learning this lesson too, since you just can’t seem to get some businesses to get rid of their old Windows XP computers (and for good reason). You know the old saying “if it isn’t broken, why fix it”.

By saving the old, you have more to spend on the new when it makes sense.

Personally I have nothing against a business wanting to get some of the latest computer hardware. Even if you are using Windows XP and like it, there are some benefits from getting a new Windows device (ie. more mobile and rouch friendly). They key though is to spend your money wisely. For example, rather than upgrade a bunch of computers from Windows XP to new Windows 7 (or 8) PC’s just for the sake of upgrading, why not find ways to extend the life of existing computers as long as possible and then use the saved funds to purchase newer and better computers when it really would make a difference, rather than enmass. Also consider when a low cost solution would suffice (ie. netbooks or low cost laptops) and then use saved funds to only buy more powerful hardware when it really would make a big difference (ie. where performance would significantly increase productivity).

Small footprint, minimal resources ! Software that makes a difference.

Do you realize that when I mention things like building software with a small footprint, which requires minimal resources, that I at times get laughed at by my own peers (other programmers) ? It is my experience that programmers tend to have a different mindset than the average person. It is so easy for a programmer to just say to end users “if the software runs poorly, you really need to buy a better computer”. Well, I have a different opinion. Having worked with small “mom and pop” local businesses over the years, I have tried to appreciate how hard they work for their money and that it is the programmers job to help them make their computers last as long as possible. So maybe we should expect programmers to be more concerned about help end users get more out of their existing computers rather than expect them to always have the leading edge stuff.

EZGUI, was designed with this in mind.

If you haven’t checked out my web site yet ( http://cwsof.com ) , please do and you will quickly notice that my primary product called EZGUI 5.0 Professional, was designed just for this purpose. I designed EZGUI so it would run very well on older versions of Windows with minimal hardware. When most programmers were developing their software on a Windows XP computer, I was developing on an older Windows 95 computer just to make sure it would run well on a legacy PC.  Today while most programmers are developing on Windows 7 or 8, I have been developing my software on Windows XP until just recently I switched to Windows Vista Home Basic because my XP computer died. I do have more modern computers, with Windows 7 and Windows 8 (and even a tablet), but I do most of my work on an older PC, because I want to make sure my software runs well on legacy computers first and then I test it on a newer one.

One can use EZGUI today, to build apps which run even on computers as old as a Windows 95/98 PC. Yet, it was designed to tap into the newer features of Windows Vista, Windows 7 and 8 when available. An even if you have a newer operating system, the kind of hardware you run it on may be minimal, like the recent netbooks which were popular. The Intel Atom CPU is no powerhouse, but yet well designed software can run very fast even on the minimal hardware like this. EZGUI was designed with CPU’s like the Atom in mind. Minimal memory is required as well.

By combining the power of the PowerBasic compiler with a GUI engine like EZGUI 5.0 Pro one can build applications with a minimal footprint which can even get the most out of legacy PC’s. You can even build applications which are truly portable. Just copy to a jump drive and your app can run on an computer with a USB port. No need for special frameworks (iel dot.net). No need to have components registered with the operating system. Just copy and run. EZGUI apps are also so small in size, you can even use very small jump drives for the apps.

This means that using EZGUI can be cost effective for software development. Imagine building apps which run just as well on a ten year old Windows XP computer as it does on the latest Windows 8 computer.

 


Comments Off

Windows and low cost tablets

Interesting news recently about Acer developing a low cost Windows 8 (x86 version, not RT) tablet. In my opinion that is what Windows 8 really needs right now. The problem though is that most Windows tablets are designed with a more powerful CPU (aka. costs more and uses more power) becauses a good bit of software for Windows just runs poorly unless you have a bit of power behind it. Even Windows 7 required 2 gig of memory (only starter versions comes with 1 gig). The operating system is bloated so you need a much bigger SSD (solid state drive) than say a comparible Android tablet.

So what is wrong with this picture ?

The problem is not the hardware, but the software. If you want a more detailed discussion of why I think this is so, read some of my other articles in this blog. To put it plainly, I feel that overuse of OOP and bloated GUI runtimes are partly to blame. Having been a WIN32 programmer for the last decade I find that one can build applications which use the native API’s, run fast and have a tiny footprint.  If Microsoft just dropped all the heavy OOP usage I don’t doubt the operating system could run on half the memory it does today. My Windows XP computer originally came with 256 meg ram and it sufficed for years.  Software tends to be slow today as well, yet the average CPU, even the lowly Atom CPU (single core) , can run rings around the CPU’s that were used when Windows XP was released.

Bob Zale (who recently died) of PowerBasic pushed his company with the goal of “faster, smaller, faster, smaller”, which is one of the reasons I use PowerBasic. By tapping into the native API’s in Windows and using a compiler which produces fast and small applications, one can produce applications with a minimal overhead. It is this kind of software which is need to make a low cost Windows tablet shine.

Now PowerBasic is not ready yet for building Windows Store apps (aka. Metro), but it can be used to produce some amazing software for the Windows 8 desktop (and it will be compatible with previous versions of Windows too, which is one reason the desktop is still vitally important).  The problem with building Windows apps using the native API’s is that the majority appear to think it just was too difficult, which is why Microsoft first moved to MFC (Microsoft Foundation Classes), then ATL and then dot.net (why not build a better GUI framework ?).  Now I have played with the latest Visual Studio and it is by no means easy to use.  The over use of OOP just adds complexity, rather than simplicity.  In my own personal experience, even the Windows API (WIN32) is easier to grasp than dot.net stuff. Sure it may be powerful, but there is more power in simplicity rather than complexity.

Now I am not saying the Windows API is easy to learn, just that as complex as it is, it is easier than what Visual Studio offers today, at least for me it is. But I am not satisified with the Windows API either, because it could have been made even so much easier than it is. This is why I developed EZGUI Professional. EZGUI was to be an inhouse tool, so I could shield myself from the Windows API, but it eventually became more than that. It was possible to make the Windows API easier to work with.  EZGUI became of a GUI framework of its own, but it simply accessed what was already there in the Windows API, simplified it and removing the mundane stuff so you could concentrate on the important stuff. What is so surprising about all of this, was how much power I was able to pack into EZGUI’s runtimes in such a small footprint.

Just think, EZGUI supports not only the major features of system controls, dialogs (forms), common dialogs, most common controls and even MDI (multiple document interface), but it also sports a graphic engine for Windows DC (for ownerdraw), its Canvas control and for the printer. It has a number of proprietary custom controls built in such as its Canvas control, MCI control, glCanvas control, Turtle Graphic control, property Listbox control and more. It has a 2D sprite engine, a 3D OpenGL based engine, low level DIB support, image rotation, alphablending, 22 image filters, vector graphics (Turtle), thread engine, ownerdraw engine, 3D buttons, subclass engine, superclass engine, precision timing, region generation (non-rectangular windows), clipboard support, registry access, tray icon support, autosize engine, built in scaling engine and a drag and drop engine (WYSIWYG style apps). And there is more than that.

And all of this fits into about 1 megabyte of space. Yes it all can fit on a single floppy disk ! Now imagine of one started building applications with such a tiny footprint ? You would not need so much memory, so much hard drive (or SSD) space or even so powerful a CPU. By decreasing the hardware requirements of software, you make building cheaper computer devices possible. One could build a tablet with the least expensive Atom CPU possible, a 20 gig SSD (all that Windows 8 needs) and only 1 gig memory and desktop apps built with EZGUI (and Powerbasic) would run very well. And guess what ? The same software could run on a 10 year old Windows XP computer, with 256 meg ram and a 20 gig harddrive.

To make cheaper Windows tablets possible, one must be able to use less expensive (and less powerful) hardware. To make the tablets still shine they would require a new generation of software which can run on minimal hardware and still impress the end users (fast and fluid).

So I will be watching to see what kind of Windows tablets show up in 2013 and I will be ready for them, even if they are extremely low cost with minimal hardware. Now I think the $199 price range would be a sweet spot for a Windows tablet (10 inch) and possibly $149 or less for a 7 inch Windows tablet. Yes, I think a 7 inch Windows tablet would be a great idea. So what will manufacturers come up with in 2013 ? Let’s wait and see.

 


Comments Off