Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It runs much deeper than that for me.

Windows at its core just does not seem like a serious operating system to me. Whenever there are two ways to do something, its developers seem to have picked the non-reasonable one compared to Unix – and doing that for decades adds up.

But yes, first impressions undoubtedly matter too.



I have no idea what Windows does with the various network services but my Pi-Hole gets rate-limited* when it connects to the network--there's just constant DNS lookups to countless MS domains, far beyond what could reasonably be expected for a barebones install.

This isn't even a corpo-sloptop with Qualys and Zscaler and crap running, Just a basic WIndows box I rarely boot. It's deeply offensive to me.


When you compare thing on API level, NT is generally superior to POSIX - just look at what a mess fork() is for one example, or fd reuse, or async I/O.


Want to talk about how each process has to implement their own custom escaping and splitting of the command line string?

That's much more complicated and error prone than fork.


It is not the standard in Windows land to run processes by handing them fifty commandline arguments. Simple as that. Win32 apps have strong support for selecting multiple files to pass to the app from within the file select dialog, as long as you follow the documentation.

It's like complaining that Unix is hard to use because I can't just drop a dll into a folder to hook functionality like I can on Windows. It's a radically different design following different ideologies and you can't magically expect everything to transfer over perfectly. If you want to do that on Linux land, you learn about LD_PRELOAD or hook system calls.

If you want to build powerful, interoperable modules that can pipe into each other and compose on the commandline, Powershell has existed since 2006. IMO, passing well formed objects from module to module is RADICALLY better than passing around text strings that you have to parse or mangle or fuck with if you want actual composibility. Powershell's equivalent of ls doesn't have to go looking at whether it is being called by an actual terminal or by an app Pipe for example in order to support weird quirks. Powershell support for Windows internals and functionality is also just radically better than mucking around in "everything is a file" pseudo folders that are a hacky way to represent important parts of the operating system, or calling IOCntrls.

I also think the way Windows OS handles scheduled tasks and operations is better than cron.

I also think Windows Event logging is better than something like dmesg, but that's preference.

Also EVERYTHING in Windows land is designed around remote administration. Both the scheduled tasks and Event Logging systems are transparently and magically functional from other machines if you have you AD setup right. Is there anything in Linux land like AD?


> Win32 apps have strong support for selecting multiple files to pass to the app from within the file select dialog

The problem is when you want to click a file on your file manager and you want it to open in the associated application. Because the file manager can only hope the associated application parses the escapes the same way it generates them. Otherwise it's file not found :)

I'm not going to bother to reply point by point since you completely missed the point in the first few words.


The C runtime will do that for you, and it has been a standard OS component since Win10.

But also, no, it's not worse than fork. Fork literally breaks every threaded app.


> standard OS component since Win10.

So, basically yesterday, and not default like how it is with execve, and you can never know if the command you're trying to call implements it the same way or does a different escaping.

Care to explain how fork "breaks" threaded apps? You can't mix them for doing multiprocessing, but it's fine if you use one model or the other.


Win10 has been around for literally a decade now. So much so that it's going out of support.

fork() breaks threaded apps by forking the state of all threads, including any locks (such as e.g. the global heap lock!) that any given thread might hold at that moment. In practice this means that you have to choose either fork or threads for your process. And this extends to libraries - if the library that you need happens to spawn a background thread for any reason, no more fork for you. On macOS this means that many system APIs are unusable. Nor is any of this hypothetical - it's a footgun that people run into regularly (just google for "fork deadlock") even in higher level languages such as Python.


How long has fork() existed? Is it less than 10 year? Is it much much more?

> just google for "fork deadlock"

I did, results were completely unrelated to what you're talking about.

Anyway libraries spawning hidden threads… I bet they don't even bother to use reentrant functions? I mean… ok they are written by clueless developers. There's lots and lots of them, they exist on windows too. What's your point?

That's


I have used Windows for years, and I loved it. I never understood why Linux and Mac users kept bashing on it. I just didn't know any better.

These days I'm avoiding booting into Windows unless I really have no choice. The ridiculousness of it is simply limitless. I would open a folder with a bunch of files in it and the Explorer shows me a progress bar for nearly a minute. Why? What the heck is it doing? I just want to see the list of files, I'm not even doing anything crazy. Why the heck not a single other file navigator does that — not in Linux, not on Mac, darn — even the specialized apps built for Windows work fine, but the built-in thing just doesn't. What gives? I would close the window and re-open the exact same folder, not even three minutes later and it shows the progress bar again. "WTF? Can't you fucker just cache it? Da fuk you doing?"

Or I would install an app. And seconds after installing it I would try to search for it in the Start menu, and guess what? Windows instead opens Edge and searches the web for it. wat? Why the heck I can't remove that Edge BS once and for all? Nope, not really possible. wat?

Or like why can't I ever rebind Cmd+L? I can disable it but can't rebind it, there's just no way. Is it trying to operate my computer, or 'S' in 'OS' stands for "soul"?

Or for whatever reason it can't even get the time right. Every single time I boot into it, my clock time is wrong. I have to manually re-sync it. It just doesn't do it, even with the location enabled. Stupid ass bitch.

And don't even let me rant about those pesky updates.

I dunno, I just cannot not hate Windows anymore. Even when I need to boot in it "for just a few minutes", it always ends up taking more time for some absolute fiddlesticks made of bullcrap. Screw Windows! Especially the 11 one.


> Or for whatever reason it can't even get the time right. Every single time I boot into it, my clock time is wrong.

Dual booting will do that because linux & windows treat the system clock differently. From what I recall one of them will set it directly to the local time and the other always sets it to UTC and then applies the offset.


The most reliable fix is to get Windows to use UTC for the hardware clock, which is usually the default on Linux. (It's more reliable because it means the hardware clock doesn't need to be adjusted when DST begins or ends, so there's no need for the OSs to cooperate on that.)

https://wiki.archlinux.org/title/System_time#UTC_in_Microsof...


That flag has been broken for at least several Windows versions, unfortunately. A shame, given that that's the only sane way of using the RTC in the presence of DST or time zone shifts...

That's exactly the type of Windows-ism I'm talking about. Two options (use UTC or the local time), and Windows chose to pick the nonsensical one.


Yeah, well, I use ntfs in Linux. It somehow knows how to treat the partitions. Even though it can't fix the issues when they arise (which almost never happens) — there's no chkdsk for Linux. So, I just don't understand why Windows can't automatically sync the clock (as it explicitly set to do it) when it boots? Why does one have to get creative to fix the darn clock? If I can't even trust the OS to manage the time correctly, what can I trust it with, if anything at all?


Windows syncs the clock to time.windows.com OOTB. This can be changed to any time provider.

https://learn.microsoft.com/en-us/windows-server/networking/...


I have the same issue and don’t dual boot.


I loved windows XP and Windows 7. They were a bit brittle regarding malware, but I was using a lot of pirated software at the times, so that may have been me. Win 8 was bad UX wise, but 8.1 resolved a lot of the issues. But since then, I barely touched windows.

I want a OS, not an entertainment center, meaning I want to launch a program, organize my files, and connect to other computers. Anything that hinders those is bad. I moved from macOS for the same reason, as they are trying to make those difficult too.


> I want a OS, not an entertainment center

Exactomundo! I'm a software developer, not a florist. I don't care about all those animations, transitions, dancing emojis, styled sliding notifications, windings and dingleberries. If I want to rebind a fucking key I should be able to. If I want to replace the entire desktop with a tiling manager of my choosing — that should be possible. And definitely, absolutely, in no way, should just about any kind of app, especially a web-browser, be shoved in my face. "Edge is not that bad", they would say. And would be completely missing the whole point.


Are you one of those guys that fiddles with registry settings and decrapifiers? To me, it sounds like you turned off file indexing. I turn it off when doing audio recording and yeah, that slows down file browsing.


> fiddles with registry settings

nope, that's with a pristine, freshly installed Windows Pro instance.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: