When comparing MS-DOS vs None/All, the Slant community recommends None/All for most people. In the question“What is the most versatile operating system to learn how to program?” None/All is ranked 5th while MS-DOS is ranked 7th.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Use old editor Edit
The grandfather of Notepad, very easy to use, hassle-free text editor.
Pro Brings back memories to older developers
Pro Best OS to run QBASIC on
While QBASIC works on newer operating systems, such as Windows 95 and Windows 98, it was designed for and runs best on MS-DOS.
Pro Stop being a fanboy
Pro Potentially larger user base
You are not constrained to a subset of the market, thereby the opportunities to get help should be greater when only constrained by language rather than language & OS.
Pro There are lots of popular languages available that are pretty much OS independent
For example, node.js, Java, pearl, Python, Ruby, HTML, CSS, Javascript.
Pro You can focus on learning
Developing at this higher level allows you to focus on solving problems and learning the language rather than learning an unfamiliar OS.
Pro Can give you experience across OSes
Developing in a language that supports many OSes gives you potentially more room to grow, by giving you an excuse to try other OSes once you become comfortable in the basics of a language.
Pro Online tools
If you are keen on just diving right into coding, there are many tools that run in your browser that allow you to get going without needing to setup anything locally. For example, codepen and coding.
Cons
Con Not a modern OS
If you need to know how to run legacy software that will run on DOS (crazier things have happened, there's probably still some ancient, leviathan, software out there that requires it), go for it. Otherwise you're practicing skills that are out of date and are using an operating system that is woefully insecure.
Con Literally horrible
MS-DOS is terrible -- just read about real mode. It was an almost decent solution for its time, but not anymore.
Con Way too simple
A stripped down version of Unix, some commands just got renamed and advanced options removed.
Con Dead
Ended in the 21st century.
Con No internet support
Using Internet with MS-DOS is not trivial.
Con UI look and feel may be non native.
If your goal is to develop something that looks like it fits in, this can be tricky with some cross platform languages (Java being a notable example, though there are libraries that can help this).
Con You may still need to deal with idiosyncrasies
Most cross platform environments can't abstract away all the OS specific idiosyncrasies. For example, starting Java applications as a service is something Java cannot do out of the box. So you are left to come up with your own solution for that. NPM's scripts are not inherently cross platform, so if you use them while developing with Node.js, you may need to find your own ways to make them cross platform.
Con Learning how to test can be costly
Learning how to test one's code can be more complicated, depending upon the language because you may need to test certain aspects of your application on different OSes. This means more setup time as well.
Con Write once - test everywhere
The idea behind cross-platform languages looks nice at the first glance, but in reality in the very best case boils down to an infamous "write once - test everywhere" pattern.