Throughout your career as a developer you will inevitably run adjacent to a series of holy-wars filled with passionate zealots. While it's easy to get caught up in these, it's worth noting that none of them will enact meaningful benefit to your life.
Tabs are characters designed for indentation, but their implementation varies wildly across systems. Spaces are consistently represented across systems, but require 2, 3, or 4 times as much space to store. Tab width can be adjusted in your text editor without modifying the source document.
Semantically, using tabs for indentation and spaces for micro-aligning makes sense. Functionally, spaces can always be trusted to work like spaces.
Your IDE can take care of transposing pretty much anything, on read and on write. Whichever you decide to use, we all die alone in the end.
An IDE is an
Integrated Development Environment and usually refers to an application that functions as some combination of text editor, compiler, syntax highlighter, debugger, VCS, or any other number of fancy features.
Text editors edit text, but there's no requirement their features stop there.
If you're a fan of console debugging and either have an external compiler or don't need one, then it's likely you're fine without the full suite of features an IDE promises.
Notepad is definitely a text editor.
Visual Studio and Eclipse are definitely IDEs.
VS Code, Atom, and SublimeText are somewhere in between. But no matter what you decide to use and what you decide to call the one you use, it won't make it easier to get out of bed in the morning.
Windows is the dominant enterprise desktop OS, with Linux owning the server market and MacOS taking market share from Windows year-over-year.
MacOS and Linux have similar support for development tools, with Windows support being slightly more scarce.
Linux is less popular as a desktop solution, but there is some merit to developing on the same platform you'll be running in production.
In the end, the OS you choose is largely up to user preference. Almost anything you want to do can be done on any of the platforms. You can change your OS, but you can't change you who are on the inside.