Avoiding Planned Obsolescence in Software Development.

As a programmer one of the things that I come across which is rarely appreciated is that planned obsolescence of software is forced by the development tools one uses and that few appreciate the value of designing software in ways which allow people to use existing computer hardware longer.

As I type this article, I am doing so on an 8 year old Windows XP computer which is my primary computer. Sure, I have other computers with Windows Vista, Windows 7 and even the Windows 8 Preview build on them, but my Windows XP computer continues to be as useful today as it was over 8 years ago. I even have a Windows 95 computer sitting on my desk which is quite usable, running older software which is still useful.

Rather than ending up in a landfill somewhere, I try to use my computers as long as is possible. This article is not about any social commentary associated with the problems that planned obsolescence causes the world, but instead it is about my goal to provide programming tools which can extend the lifespan of many computers, especially for businesses which develop their own inhouse software.  Amazingly I get a good bit of criticism from my own peers in the software development community because I still support legacy computers, but despite such negative views my programming model has not and hopefully will not change.

Backward and forward compatiblity is the key!

Not only did I design my primary product EZGUI Professional to be itself backward compatible with previous versions of the product, but EZGUI is designed so it has the unique ability to be used to design software which can run on Windows 95 to Windows 8. Yes, I said Windows 95. Now if you look at most software packages today, the system requirements often list a much more recent version of Windows (ie. XP or Vista). This has a lot to do with the development tools used to create such software. EZGUI was built using PowerBasic (and it is an addon library for PowerBasic) and by using dynamic polling of the operating system for available features and loading such features dynamically, I have been able to create a unique GUI Framework which can run on even many legacy versions of Windows, as well as the more current versions. Now of course some features are limited to more current platforms, such as Windows XP or later, but this is only a small amount of the entire feature set. By using dynamic loading of features, the runtimes of my GUI framework are fully compatible with legacy Windows as well as more current versions.

I tried to avoid the “bleeding edge” when it comes to the Windows API, but instead found solutions which are compatible with more versions of Windows. For example, EZGUI uses OpenGL which is more consistant over many versions of Windows than DirectX is. EZGUI’s OpenGL 3D engine even worked on my old Windows 95 computer (albeit a little slower). EZGUI has its own 2D propietary Sprite engine, which is software based and will work on all versions of Windows (x86) from 95 to 8.

EZGUI has proven itself so well suited to multiple versions of Windows, that it even works well with applications created to be run on Linux using the Wine emulator. I have one customer who has had great success building applications using EZGUI and running them on Linux using Wine.

Another problem one may have in writing software which will run well even on legacy computers is the resources such applications require. Most computers today come with 2 gig memory and faster CPU’s compared to legacy computers and the software created today reflects this. You won’t be running an application created to use dot.net 3.0 and expect it to run well on a legacy computer. Even if you could get it to run, the CPU or memory requirements just might make it difficult to run well.

On the other hand EZGUI was designed for building applications with older and slower CPU’s, limited memory and less disk space. EZGUI’s entire GUI framework is only about 1 megabyte in size and you can build applications today, with the power of modern programming, which can have an amazingly small footprint which can even fit on a floppy disk. Because EZGUI was built using Powerbasic it runs fast on older computers and it has an amazingly small footprint (disk space and memory requirements).

So if your company is looking for ways to build Windows applications which can be run even on legacy computers as well as the more current computers, then please consider EZGUI 5.0 Professional (see: http://cwsof.com ) and Powerbasic (see: http://powerbasic.com ). It can make your computers last longer by keeping them useful, while allowing you to design software for the latest computers. EZGUI applications run well on Windows 8 (build version) so far and so should be compatible with the Windows 8 Desktop (not Metro though). Even computers such as Netbooks or Tablets which have minimal hardware, such as an Atom CPU, will be fine for applications created using EZGUI.