When comparing macOS vs None/All, the Slant community recommends macOS for most people. In the question“What is the most versatile operating system to learn how to program?” macOS is ranked 2nd while None/All is ranked 3rd. The most important reason people chose macOS is:
It's very similar to a Linux terminal.
Ranked in these QuestionsQuestion Ranking
Pro Powerful terminal
It's very similar to a Linux terminal.
Pro Based on Unix
macOS being a UNIX certified system means that you can install a lot more stuff with a lot fewer headaches then if you were on Windows.
Pro Polished UI
Pro Best support for Objective-C
Pro Easy access to lots of great dev tools
There's a large selection of great development tools available for OSX. The operating system itself comes bundled with a powerful terminal emulator, called Terminal. Additionally, Apple provides tools, like Xcode, an IDE that contains a comprehensive collection of tools for developing OSX and iOS software, for free.
Pro Ideal setup, out of the box
Next to no custom configuration is necessary.
Pro Lots of open-source software available
Because it's Unix under the fancy GUI, most open source ports easily to it.
Pro Great Git GUI tools
Tower, Kaleidoscope, SourceTree
Pro Has too many special tools for devolopers
Pro More commercial software and gaming support compared to other Unix systems
Adobe CC, MS Office, Steam games.
Pro Great Modifier key layout
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 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 There are lots of popular languages available that are pretty much OS independent
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.
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.
OSX is tied Apple hardware and Apple hardware tends to be expensive.
Con No native package management
A comparison of package managers available for OSX can be found here.
Con Most software is closed source
For people who like to use open source tools for their development work, this may be a problem. There's plenty of advantages to open source software, one of which is the ability to tinker with and customize the tools themselves that you are using. Although there's plenty of FOSS tools available for Mac, especially through Homebrew, the number of packages available is much lower than the number of packages available for any Linux distribution.
Con Very few options for running hosted, on the cloud
Con Silly modifier keys layout
The Command key is strange, Alt is where Super should be.
Con Limited hardware
Usually, the hardware that can run this can't be upgraded.
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.