I'll admit: back in the 90s, without the Internet, it was harder to bootstrap a programming environment on Windows (though in 1985 batch files weren't all that bad, relatively speaking.) A lot of the time, though, you'd be learning to program from someone--a friend, or a teacher--and they'd give you a compiler on a floppy/CD. Programming books also came with compiler toolchains on disks in the jacket sleeve quite a bit of the time, if I recall (usually DJGPP.) I'm not quite sure how you'd be learning to program but stuck for the compiler part.
But I started really trying to learn to program in 2001, not 1985, and I had Internet access. By 2001, it didn't matter what Microsoft was or wasn't doing. I could download MinGW and code some C within an hour or two. You know what the hardest part of that process was? Learning C. The "barrier" of finding a C compiler on the Internet, downloading it, installing it, etc. was immaterial, even then. In fact, the biggest "barrier" was figuring out that the thing I should be looking for is called a "C compiler"!
But I didn't necessarily need a C compiler at the time, really. If I had wanted to code VB, WSH was already on the machine. If I had wanted to code Javascript, IE would have let me. And if my copy of Windows came with Office, there was always VBA, too.[1]
Today, of course, it's even easier. Ignoring the actively-didactic software like Shoes or Scratch or Squeak, you can just download Light Table and twenty seconds later be coding Clojure. Or Love2d and be making a game in Lua. Or you can code "in the cloud" in your browser without downloading anything, if you like. Windows 8 ships with Powershell installable from the "Programs and Features" menu, I believe; and there are several compiler/IDE/whatevers in the Windows App Store.
In short, you can be programming as soon as you want to be. The hardest part of programming on any OS, for the last 15 years at least, has just been wanting to--and then putting up with all that rigorous, logical thinking.
> a concern about space consumption about runtimes
I didn't say anything about space consumption.
- Every package an OS includes in the base install is a package they have to security-audit, update, and support.
- Every base package is something a user could call in with a problem regarding, and so something customer service reps have to understand.
- Every base package is part of the OS's attack surface.
- Every base package is something developers will presume to rely on to be part of the OS in the future, and so the OS maker will have to commit to supporting indefinitely for as long as they support the OS.[2]
- And every base package is something that other internal developers might build other components of the OS to rely on.
In short, there are good reasons to ship as little with your OS as you can, reasons that have nothing to do with the size of the resulting installation.[3]
---
[1] I once programmed a JRPG-style game as a PowerPoint presentation using slides for views and VBA for controllers. Not as bad as you'd think; worked a lot like Flash + ActionScript, with the same "timeline" concept, but without an actor model.
[2] If Microsoft shipped Windows with a VB4 IDE, there would be programs, even today, wanting to go in and diddle with that IDE over COM to "programmatically" generate another program. Microsoft still supports DDE in the OS in part because there were so many programs written that used it to diddle with Excel workbooks--and Excel is an optional package.
[2] Despite that, I should note that installing the latest Visual Studio takes something more like 10GB than 174MB. You don't install Visual Studio on a computer you're not going to use for Visual Studio, even if the DVD is laying right there. It's not a "freebie" to give someone when setting up their computer, like Google Earth or VLC. It's more like VMWare: it takes over your computer and puts hooks everywhere, because it needs to do things like trap segfaults and handle them itself, or test-install services nobody's codesigned yet, etc.