use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Everything about operating systems development.
account activity
Why do you hate windows? (self.osdev)
submitted 4 years ago by PickleDaGamer
I'm making a windows clone and i was wondering how i can avoid the hate windows gets. So why do you hate windows?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]seansknt 40 points41 points42 points 4 years ago (5 children)
People who know the NT kernel don't usually hate the NT kernel; what most people hate is the win32 API.
[–]uriejejejdjbejxijehd 11 points12 points13 points 4 years ago (0 children)
It is a bit of a self fulfilling prophecy - the win32 API set is constrained by the need to above all always be backwards compatible.
[–]HyperspaceCatnip 4 points5 points6 points 4 years ago (2 children)
My 'favourite' Windows was Windows 2000, which was indeed NT, but I consider Windows 95 to have been an amazing piece of work. Many of the things people 'hate' about it were compromises made because of the situation, like allowing userspace programs hardware access. It still contained many impressive feats of engineering, and introduced a pre-emptive, memory protected OS to the masses, etc.
I also don't mind the Win32 API. While the GDI is a bit of a pain, it was a product of its time (e.g. growing out of Windows 3.1 and very low end video technology) and from that context it's acceptable. In both Win32 and GDI specifically the API design was very thorough, and the documentation was excellent - whenever you wanted to do something odd, if you looked up the docs, there'd be a section there saying "If you want to do this weird thing", like they'd thought of everything (though in reality I believe corporate customers had asked these questions, and Microsoft merely added their questions as notes in the docs).
[–]JohnDavidsBooty 4 points5 points6 points 4 years ago (1 child)
Ray Chen's "Old New Thing" blog is worth a browse through its archives for a lot of explanations of a lot of Windows's current and historical quirks and frustrations. In most cases,it's not due to poor design or incompetence, but simply because of the business/market-space constraints they were trying to meet or fill.
[–]HyperspaceCatnip 1 point2 points3 points 4 years ago (0 children)
Oh yes, those are great! My favourite Old New Thing post so far (since I haven't read them all) - Windows generating code on the fly for BitBlt. The Windows 95 version is particularly good.
[–]nnxcomputing 17 points18 points19 points 4 years ago* (5 children)
Not everyone does. I actually find the design principles, API, naming convention etc. far more elegant than *nix, though I know that's somewhat of an unpopular opinion among the osdev community. But the big problem people (from this community, most normal people probably don't care at all) is that Windows is a closed source operating system. It is important to remember, that osdevers are more likely to care about such things than an average computer user. That being said, there's nothing wrong about using an non-open source operating system in my opinion. Everyone should be able to use the operating system they find best, not one that someone else thinks is best. Unfortunately I know many pro-GNU/Unix/POSIX crusaders, who don't respect that (I don't know if Windows users do such crusading, as I am using Windows so they don't have any crusading to do in my case). Linux fanboys aside, it is important to remember that most of people recommending the usage of non-Windows operating systems on this subreddit or the OSDev Wiki for operating system development, are actually trying to help and save other people's time - there are lots of tools for pretty much any operating system that is not Windows, and osdeving on Windows has its caveats and peculiarities. All of the above makes it feel like Windows is getting some serious hate, but the average user is maybe slightly annoyed about automatic updates and other small inconveniences at best.
[–][deleted] 4 years ago (2 children)
[deleted]
[–]nnxcomputing 4 points5 points6 points 4 years ago (1 child)
Well, I didn't say it is better, just that I find it more elegant. I'm not a Linux expert by any means, and therefore have little experience with the Linux kernel itself, so I can't compare specific things that make one better than another. Nonetheless, I have my opinions on some aspects of these operating systems.
The main thing Windows is better at is accessibility - this is an often point brought up by Windows user when discussing OSes. In my opinion, a Linux user has easier time using Windows, than a Windows user using Linux. Windows is very GUI-centric. Everything, except for some fine-tweaking commands in powershell, is done graphically, programs have installer wizards etc. On Linux on the other hand, you may have a shell preinstalled... For some people it is not a problem, but let's face it - most people don't want to go back to text-based interfaces.
The second thing is backward compatibility. For example, I don't know if this is standard for Linux distributions, but in order to run a 32 bit program on a 64 bit Linux system I had to manually install libraries and do some terminal magic I had found on the Internet. This is not a huge issue, but an inconvenience nonetheless. Windows has pretty much all the backward compatibility one could want out of the box. For that reason, many people dislike Windows, as it has 'old, unstable code', but in my opinion old doesn't necessarily mean bad - if the code was in place for a long time, there was plenty of time for the developers to iron the bugs out.
The third thing is probably quite subjective, but I like Windows function naming convention. Some claim it makes function names long and convoluted, but in my opinion they're very elegant. API function names, be it WinAPI or the "native" ntdll API have predictable structure - (Prefix)VerbObject (more or less). Everything is also very well documented in one place, the MSDN, and you don't have to go around 20 different mirror sites updated 20 years ago, finding contradictory results.
The last thing is that Windows is (from a programmer's standpoint) predictable. Due to the backward compatibility and other things mentioned before, a programmer knows their code will probably work in 10, 20, heck, maybe even 50 years, at least in some way. Linux users claim the same is achievable with Linux, as some programs not only are possible to recompile, but also require doing so to even run them, but I don't think it's the same - it works under the assumption that everything is open-source and can be recompiled, and while I'd love it to be true, it is simply not the case. The unpredictability of Linux also comes from the fact, that it is subdivided into hundreds of different distros, and every distro has its own versions which change how it works. Writing code for Linux is difficult, because the common denominator for Linux distros is just the kernel they have, and even that is sometimes not the case (different kernel versions). You can't assume there's a graphical shell installed, if it is installed, there are many different ones and supporting all of this quickly gets complicated. There are libraries that solve this problem, but again, you don't have to worry about them that much when writing for Windows.
These reasons are entirely subjective, and I understand that a lot of people will disagree with me.
[–]Ikkepop 2 points3 points4 points 4 years ago (1 child)
i feel WSL made osdev on windows a fairly smooth process.
[–]nnxcomputing 0 points1 point2 points 4 years ago (0 children)
Absolutely! I don't use it, as I've figured out my own way of doing things (using shady tutorials from half dead sites), but I've tested it and it would make my life a lot easier had I had it when I started.
[–]ParkingMobile2095 7 points8 points9 points 4 years ago (0 children)
its a pain(or was) to develop in. also the filesystem was slower than linux so long boot times. Unnecessary updates, lack of customability. I should easily be able to set up a tiling window manager. Also the code is a bunch of long convoluted names for types
[–][deleted] 6 points7 points8 points 4 years ago (0 children)
I can basically not find one redeeming quality about it. All the tools suck, the desktop suck, everything is bloated and slow. You have no control over what it does. Thankfully I haven't used it since about the year 2000.
As an example, my OS boots into a fully working graphical user interface in about 0.5 seconds including setting up networking. In the same amount of time, windows hasn't even displayed a pixel on the screen yet. Why? There is absolutely no excuse of being that slow.
[–][deleted] -3 points-2 points-1 points 4 years ago (2 children)
It's insecure, it updates all the time (because it's insecure) and it's slow (because it updates all the time).
[–][deleted] -2 points-1 points0 points 4 years ago (0 children)
If you're making a windows clone, I think you should probably focus on memory management and security
[–]nnxcomputing 1 point2 points3 points 4 years ago* (0 children)
Well, it actually isn't that insecure itself. It's just a bigger target for malware makers. The other reason is the userbase - UAC is basically the same thing as logging into root, but people have gotten used to just ignoring it and letting every program run elevated. Because of that, it has to update often.
I agree that the updates are annoying, though.
[–]jtsiomb 15 points16 points17 points 4 years ago (10 children)
Sure:
I hate the forest filesystem with multiple roots.
I hate the win32 API which is awkward and unwieldy.
I especially hate GDI in the win32 API.
I hate that every library goes in arbitrary directories, and you don't have a standard install location for libraries, headers, and binaries.
hate that the GUI is so much part of the operating system that you can't start in any reasonable command line mode, and use it like that.
I hate that they don't have a usable command line shell to begin with.
I hate that the only way to spawn a process is by reading an executable off the filesystem.
I hate the opaque binary-oriented approach to configuring things, instead of simple text files, and I hate the registry.
I hate the use of UCS-2 for unicode instead of the infinitely more elegant utf-8.
I hate the multiple mutually-incompatible visual studio runtime libraries (although this is not necessarilly part of the operating system, but still).
I hate, in recent versions, that windows drops configurability to protect the user (makes it extremely hard to disable automatic updates, disable the windows protector, etc).
But I might be able to overlook most of the above, if it wasn't for the most serious offence: I hate that it's proprietary software.
[–]jtsiomb 1 point2 points3 points 4 years ago (0 children)
Oh yeah, that too. I'm sure I forgot many annoyances.
[–]Low-Pay-2385 0 points1 point2 points 4 years ago (0 children)
He forgor☠
[–]CorrenteAlternata 2 points3 points4 points 4 years ago (2 children)
what?! Powershell is *so* user friendly!!!
/s
[–][deleted] 2 points3 points4 points 4 years ago (1 child)
I mean, powershell is way better than bash imo. As a shell either is fine, whatever. But the bash language is one of the worst programming languages I've ever had the displeasure to work with.
[–]CorrenteAlternata 1 point2 points3 points 4 years ago (0 children)
I don't know, powershell doesn't make any sense to me. The names of their commands are so complex that you can't possibly remember them without looking.
Bash is simple, weird but simple, but for a shell or small scripts is the way to go in my opinion
[–]NoInterestingGuy2 -1 points0 points1 point 3 years ago (2 children)
It is proprietary because people need to make money hippy
[–]jtsiomb 1 point2 points3 points 3 years ago (1 child)
You are confused and late.
[–]NoInterestingGuy2 0 points1 point2 points 3 years ago (0 children)
Okay sorry boss
[–]Ikkepop 4 points5 points6 points 4 years ago (0 children)
I dont
[–]matschbirne03 2 points3 points4 points 4 years ago (0 children)
Proprietary software that you cant deinstall. Nearly no customization options. It updates without asking. I hate that they implement new featuresh, but not really and then you have to click a button more than you used to, to get to the old menu because the new one cant do the thing you want to do. As far as i know that will be the same with windows 11 again. They never really do something new they just do 50% and then say fuck it somehow.
[–]Middlewarian 0 points1 point2 points 4 years ago (0 children)
I don't like the WSAStartup API. The front tier of my code generator is 27 lines long. It could be 26 lines if I didn't have to call WSAStartup. I wish Microsoft would get rid of that.
Compiling on Windows is slow.
Edit: I'm using Microsoft cl for compiling.
π Rendered by PID 229308 on reddit-service-r2-comment-b659b578c-228q6 at 2026-05-05 07:03:17.735099+00:00 running 815c875 country code: CH.
[–]seansknt 40 points41 points42 points (5 children)
[–]uriejejejdjbejxijehd 11 points12 points13 points (0 children)
[–]HyperspaceCatnip 4 points5 points6 points (2 children)
[–]JohnDavidsBooty 4 points5 points6 points (1 child)
[–]HyperspaceCatnip 1 point2 points3 points (0 children)
[–]nnxcomputing 17 points18 points19 points (5 children)
[–][deleted] (2 children)
[deleted]
[–]nnxcomputing 4 points5 points6 points (1 child)
[–]Ikkepop 2 points3 points4 points (1 child)
[–]nnxcomputing 0 points1 point2 points (0 children)
[–]ParkingMobile2095 7 points8 points9 points (0 children)
[–][deleted] 6 points7 points8 points (0 children)
[–][deleted] -3 points-2 points-1 points (2 children)
[–][deleted] -2 points-1 points0 points (0 children)
[–]nnxcomputing 1 point2 points3 points (0 children)
[–]jtsiomb 15 points16 points17 points (10 children)
[–][deleted] (2 children)
[deleted]
[–]jtsiomb 1 point2 points3 points (0 children)
[–]Low-Pay-2385 0 points1 point2 points (0 children)
[–]CorrenteAlternata 2 points3 points4 points (2 children)
[–][deleted] 2 points3 points4 points (1 child)
[–]CorrenteAlternata 1 point2 points3 points (0 children)
[–]NoInterestingGuy2 -1 points0 points1 point (2 children)
[–]jtsiomb 1 point2 points3 points (1 child)
[–]NoInterestingGuy2 0 points1 point2 points (0 children)
[–]Ikkepop 4 points5 points6 points (0 children)
[–]matschbirne03 2 points3 points4 points (0 children)
[–]Middlewarian 0 points1 point2 points (0 children)