I don't see how this is about hate for Windows or Microsoft. There is some legitimate criticism of practices which defaulted to or seemed to encourage practices (spaces in names) that make life harder for everyone that has to interact with such names. But most people here are using Microsoft SQL Server, and many of us really like, and believe it is one of the best RDBMS ecosystems and has some of the best user communities.
This isn't just a tool thing, it's a programming language thing, fundamental to how parsers/compilers/interpreters can recognize & distinguish all the language elements. Most programming languages of which I'm aware treat white space as a delimiter between words (object/variable/parameter/method/function/procedure names, etc.). All client tools (e.g., SSMS) can handle spaces in names if the right syntax is used. Most RDBMS allow use of double quotes to wrap object names in order to handle non-standard naming (in some cases, this means even use of mixed case). SQL Server happens to allow both double quotes or square brackets. And it's very easy to alias columns names in selects if the tools need that (though many would argue that even that should be done in the client application, since it's a presentation issue).
There's nothing to fix except habits that make it harder to write code/queries. Imagine having to use a character other than space to separate words, given the design of keyboards and lifetime habit (user programming).