July 03, 2019

Was MS-DOS used by software developers?


On the first look, the MS Dos operating system was the ideal platform to program new software in the early 1990s. Many programming language like C, C++ and Turbo Pascal were available and MS-DOS was available for most Personal computers. In contrast, to other computer systems for example the Amiga 500, the typical MS-DOS PC came with a built in harddrive so it was the ideal development system for professional users, right?
Something is wrong with that image because it ignores what was available beyond the MS-DOS / PC ecosystem. In the late 1980s and early 1990s so called minicomputer and supermini computers were used by large companies for serious applications, like Database management, software development and last but not least for emulating MS-DOS computers. The story, that a VirtualBox like software was available on DEC Computers is not very often told but it is true. The product was called DEC softPC and was basically an emulated MS DOS computer.
The only difference was, that the software runs only under a workstation or a minicomputer which costs around 100000 US$ up to 1 million US$. It was not used by amateur programmers who have wriitten shareware programs but real software companies. What does that mean? It means basically, that MS-DOS was never designed as a serious development environment for writing software but similar to a Sega Megadrive as an embedded system to playback existing binary files created on minicomputers and mainframes. It means also, that MS-DOS was never an operating system but some kind of firmware.
It is also interesting to analyze which operating system was used in that area on minicomputers. Mainly it was VMS or UNIX which means, it was a mainframe operating system similar to a modern Linux system. Since then the landscape doesn't have changed so much. It seems, that unix like systems are the prfered development enviornment for programmers and everything apart from the Unix ecosystem is perceived not as an operating system but as a firmware.
The reason why the story of using MS-DOS as a development system for creating C programs with Borland C compilers is told so often is because to introduce a counternarrative. Which means, in reality, all the important applications for MS-DOS were written on DEC machines, but in the plot, the programmer sits behind an MS-DOS computer. The same story is told for today's programmers. Microsoft and Apple is marketing their software to professional users. The idea is, that a professional programmers sitts behind a Windows 10 workstation and writes C++ code. This story is a joke because in reality, nobody is using Windows as a development system. It has too many problems and is not compatible with Linux.
Some kind of well known secret in computing industry is the seperation between programmers and endusers. The end users who are the majority are using Windows 10 PC and Mac OS X devices. What they are doing is to playback existing software written by other. In contrast, the developers are not using WIndows 10 PC, because they have access to Linux mainframe computers which are providing much more power. If somebody like to program new Software for Windows, the first thing to do is to install a Windows emulator under Linux and then the fun begins.
But are WIndows 10 and Mac OS X so weak, that it's not possible to use them as development enviornment? The problem is, that both software products are not designed for mainframe computers. It is technically not possible to drive a computer cluster with Windows 10. A computer cluster can only be booted with Linux. That means, even if somebody like Windows 10 really well he won't install it on a 1 million US$ mainframe computer. This situation won't change in the next 20 years, that means the market share of Linux for serious programming is 100%.
What i want to explain is, that a comparison which operating system is the best is something which is only important for the enduser. He cmpares Windows XP with Mac OS X and argues pro or against a certain system. Professional programmers have no need for such comparison, because apart from Linux no other technology is available which can boot up their mainframe computer. And if Linux is the only option they have, then they can use it or not. There are hundred of firmware system for endusers available but only one operating system for programmers. It's possible and very common to install emulator under Linux for all systems on the market like the Amiga 500, Windows 10, Mac OS, iphone OS, gamecube and so. But it make no sense to run Linux in an emulator under Windows 10. The reason is, that a professional computer is more powerful which is equal to a mainframe and Linux is the default operating system for mainframe so it can't be replaced by something else.
The problem with Linux is, that the software is nearly perfect. It is installed on 100% of all the Top500 supercomputers, and on nearly 75% of all the mainframes. The rest runs with Unix like system and will be migrated to Linux in the near future. That means, there is no real competition available in which Linux is under pressure. The only place in which Linux was not a great success is for endusers need. Most setop boxes, gaming consoles and office PC are running with a firmware which is not Linux. The reason is that on these computers no software is programmed but existing software is started.
Let us define the precondition for software development. What the programmer will need is a compiler, a bash, additional scripting languages, UML drawing tools and the ability to run background jobs. Or to be short a programmer needs an operating system. What the enduser needs to run existing software is not an operating system but a propriatary firmware for example QNX, RTOS or Windows 10. A firmware is strip down version of an operating system which has no onboard compiler, no shell, no filesystem and no standardized API.