By Dave Boal (Product Manager):
When I am asked the question which software is better, I have to answer with the question, "Do you want performance or glitter?" Based on my experience as a DOS programmer for 15 years and a Windows programmer for 10 years, let me break that argument down into 8 issues: If you read these 8 issues and you still believe that windows databases are reliable, please read some of the sample 40 plus email messages received per day on a Microsoft Access Database newsgroup (click here to read "The trouble with Access").
How long does it take to start the program up, to display data on screen, and to switch between various view of the data? DOS software loads much faster because it requires much less RAM (e.g., Foxpro DOS programs require 0.5 MEG vs. Access Windows programs require 32 MEG). This is less of an issue now than it used to be because of very fast, high performance computers, however, it is still a problem if you plan to run the software on a network where you have multiple workstations accessing the same data. It is still a problem when you have to compress and reindex. A compress and reindex in DOS will take one fifth the time of a Windows compress and reindex. This is a big problem if your Windows software reports to you that you have to compress and reindex once a week or worse yet, once a day. For those of you who do not know, Microsoft bought Foxpro and one of the reasons was to get access to Foxpro's "Rushmore" technology that to this day still serves as a benchmark for database performance.
When was the last time you experienced a Windows 95 crash? It's only a matter of time! Windows programming is based on the concept of component dependency. The intention of component dependency is to reduce the amount of RAM required by applications and to reduce the amount of coding required to write a program, however, the downside is, if you install a new program, even a program that has nothing to do with Payday Loan software, that installation may automatically install a newer version of a component that your Payday Loan software is based on, and that new component may cause the Payday Loan software to stop running (i.e., Windows reports a General Protection Fault error or a Fatal Exception error). If that happens to you, you may have to uninstall the new program, uninstall and reinstall the Payday Loans program, or in worst case scenario, reinstall Windows and all installed software...time consuming to say the least. DOS software has NO component dependency.
Hard drives fail! This too is only a matter of time. There are only so many times a magnetic surface can be rewritten. If one of the components is stored on a portion of the hard drive that fails, you may have to uninstall the new program, uninstall and reinstall the Payday Loans program, or in worst case scenario, reinstall Windows and all installed software.
Remember that with a DOS program, you can bypass the Windows 95 component dependency GUI interface and startup in DOS mode. This means that you can start using the Payday Loans software as fast as 5 minutes of a Windows crash!
Compress and reindex (or database maintenance) seems to be a big deal with Windows software. As you enter data, your database starts to grow, but it grows with a lot more information than just the data you entered. Without going into details about what it adds, suffice to say that it adds information that is not necessary. I have seen a Windows database grow from 5 Megabytes to 32 Megabytes in a week. After compressing and reindexing the database, I have seen it shrink back down to 5 Megabytes. Therefore, since your database grows much faster than the actual amount of your data, a compress and reindex is REQUIRED in Windows on a regular basis. There is no such requirement in DOS so you do not have to take the time to do it!
Let's say your computer crashes for a simple reason, like the power went out, at 5:00 in the afternoon. After your computer runs scandisk (very important after power outage), let's say that you try to open your Windows software but it says it cannot open the database because it is damaged. THE ONLY WAY for you to fix this is to recover the database from yesterday's backup and then reenter all of today's data. This is assuming you have a backup of yesterday's data! You should find that most Windows developers will tell you this is highly recommended. As a DOS programmer, I too highly recommend that you backup your stuff daily, but it is less critical for DOS than it is for Windows. The Foxpro DOS database has a data recovery programs that rebuilds most data lost in a crash. If the power goes out at 5:00pm, after recovery, you will probably find you have all your data through 4:30pm.
Does the Windows vendor recommend that you have 512 Megabytes of RAM available on your computer? If they do, do you have it? If you do, do you want to run any other software on the computer at the same time. If you do, you will need more than 512 Megabytes of RAM. DOS software requires 1 Megabyte of RAM. You could run your word processor, email software, a spreadsheet program, and 200 copies of the DOS program all at the same time on a 512 Megabyte computer.
This issue is only relevant when you have an location with several workstations all sharing the same data over a network. If you read the developers manual for Windows software, it recommends that you do not exceed 10 simultaneous users. 5 users is usually a more realistic number in high volume applications. I have Foxpro DOS software running on 20 simultaneous workstations with barely a performance hit.
When you want a change the way a program works, you have to change the code. I have done a rough estimate on several programs I have written and for example the DOS Payday loans program I have written has 800,000 characters of commands. The same program in Windows would have 4,000,000 characters, or 5 times the code. That is a lot of typing and a lot of places to make mistakes. It takes a lot more time to make changes to the program and it takes a lot more time to debug it.
Hardware and Operating System Requirements: