Hacker News new | ask | show | jobs
by freedomben 756 days ago
There are actually a lot of factors here, although if I had to sum it up in one, it would be "the hardware can support it." But more seriously:

1. There are a lot of security mitigations in modern Windows that add sometimes substantial runtime overhead, but offer significant protection. Writing an exploit for modern Windows is hard compared to XP SP1 and below.

2. The graphics are a lot more sophisticated. Animation and transparency and lots of good stuff.

3. There are a ton more "features" in the OS. Modern Windows is continually running a bunch of things that XP didn't.

4. All software tends to bloat over time. It's really hard and expensive to optimize things, especially in a huge and long-lived OS where the scope is enormous and PMs are constantly wanting things added. When it runs sufficiently on modern hardware, there's also very little incentive to do so. (As an aside, this is one of the reasons I love Linux. There's lots of incentive to optimize there and thus it does happen).

Overall I really miss XP. Surely nostalgia is a powerful drug, but damn that was a great OS.

6 comments

2. The graphics are a lot more sophisticated. Animation and transparency and lots of good stuff.

Strong disagree. Borderless icons floating in a sea of flatness is not "more sophisticated" by any means than the fully-customisable UI which was common in the XP era, and the huge amount of "skinning" that was also very popular. Transparent/translucent effects became common with Vista and that was run on the GPU, which was in general much less powerful than the ones today.

I'll add a 5th point: Thanks to a low barrier to entry, the average developer now is much lower quality than the average 20 years ago.

Fair point, it does seem like the modern graphics are less sophisticated than the transparent/translucent of the Vista era.

And yes, I would very much agree regarding the quality of the average developer. To devs nowadays who might feel sad about that, I don't think it's most developers fault, rather they/we are the product of a system (such as a scrum) that only cares about quality and performance when it's bad enough to be noticed by many users. Beyond that, you get promoted and good annual reviews by shipping features, regardless of whether they are actually quality/performant or not.

To your 5th point: newer generations have not been confronted with the hardware limitations older generations had to cope with.

Hence, optimization is not a skill new generations of developers are forced to learn.

newer generations have not been confronted with the hardware limitations older generations had to cope with.

That has been true for every new generation of programmers since the invention of computers. My uncle started to program using Fortran IV in the 60s and he said that the 'real' programmers at the time looked down on the likes of him for using such an inefficient high level language and not learning how to program properly.

Good point :)

It reminds me of "kids have no manners anymore" that has been recorded since antiquity.

I assume Windows 11 handles high DPI monitors a lot better than Windows XP, which must add some complexity to graphics rendering.
Is it a joke? Today's GPUs are miles and miles away from what we got back then. The is no brainer to compare Nvidia 6600 gt and some 3060.

Raw power that we have now in our PCs and laptops are enormous and some better high DPI handling cannot justify why everything nowadays is so sluggish an laggy.

> I assume Windows 11 handles high DPI monitors a lot better than Windows XP

YMMV. I think "a lot better" is an overstatement. You have some fractional scaling which, depending of the program, might do what you need. But the fact that you cannot change fonts and colors is a real issue. Not everybody loves gray on gray.

> Thanks to a low barrier to entry, the average developer now is much lower quality than the average 20 years ago.

I think this is a big reason why we have lots of poorly performing JavaScript based software.

There are a ton more "features" in the OS

Including things you like quite a bit, such as WiFi support, thread scheduling, and suspend modes that are worth a damn.

XP could be snappy, but I haven't forgotten how poorly my old XP two-thread laptop multitasked, how the battery didn't last more than an hour, and so on.

Also worth remembering everyone always has a browser open today. In the XP days, you were running Firefox 1.0, a 5MB program.

XP could be snappy, but I haven't forgotten how poorly my old XP two-thread laptop multitasked, how the battery didn't last more than an hour, and so on.

That is a hardware issue. XP can use far more cores, and I bet if you had the drivers, it would run much better than 10 or 11 on a recent laptop and give even better battery life.

>XP can use far more cores

Only for the 64-bit version, which was very uncommon for most of the XP lifetime.

Almost everybody on XP was using a 32-bit version, which only uses two cores at the most.

Using select 2014 PC's which are about the newest you could get that still supported XP and where proper XP drivers were easily available, a lot can still be done to make direct performance comparisons. These would be the first generation consumer/business UEFI PC's, originally shipped with 64-bit Windows 8. But also still offering drivers for W7, Vista, and XP if you were to prefer to install those instead or multiboot to them. Also among the first target machines to be expected to migrate to Windows 10 as soon as it became "the final Windows version going forward" from Windows 8.x. Some can have W11 installed without real difficulty too, and it runs the same apps correctly just like W10 without much more sluggishness.

But if you don't need more than 3.x GB of memory, and try W10 32-bit, you may find it's a lot less slow than W11. This is where nobody can deny it.

OTOH with XP 32-bit on the same hardware (including SSD and HD graphics) with all proper system drivers, nothing about it can be considered slow by comparison.

Much faster than almost all professional users of XP remember from back then, because 2014 hardware was so much more performant than 2004 or 2010.

On only two cores it just blows everything else away.

Except for Windows 98 of course on the same hardware without even proper system drivers (naturally only using a single core), but you have to remove all but 1GB of memory for that.

Almost everybody on XP was using a 32-bit version, which only uses two cores at the most.

Where did that misinformation come from? In the late 2000s, quad-core Q6600s were very common at the time and they certainly had all 4 cores active under 32-bit XP.

I think there's a misunderstanding about the processor limits. I can't find an official doc because everyone links to a KB article that must have showed them in the past, but now talks about virtual memory...

But XP docs talk about a limit on the number of processors that is a limit on the number of sockets. If you've got an old quad pentium 2 system, with four slotted processors, XP Pro is only going to run on two of them, because it has a 2 processor limit. But multiple cores/threads are subject to a different limit that I can't find. Home may have been single socket?

Some people might have tried to run it in virtualization, and not been careful to setup virtualized cpus as cores in a single socket rather than multiple sockets.

My wife's new laptop (some Acer...) with preinstalled Win11 won't sleep and won't hibernate. My old Tinkpad X60 with WinXP Tablet can do both. So... not a valid argument.
> XP could be snappy, but I haven't forgotten how poorly my old XP two-thread laptop multitasked,

I have a work laptop with Win 10 and Ryzen with 6 Cores. To say it multitasks is a lie.

But the good thing is that the damn thing runs 3 security suites. For compliance.

"such as WiFi support, thread scheduling, and suspend modes that are worth a damn."

Thread scheduling has existed since NT 3.51.

Wifi is largely just another kind of network adapter.

XP supported the same suspend-to-RAM and hibernate-to-disk modes as todays systems.

"but I haven't forgotten how poorly my old XP two-thread laptop multitasked"

Despite what certain processor vendors tell you, the number of threads are determined by each running program. Whatever you mean by "poor multitasking", you were probably short on RAM.

The OS has made improvements that can help with battery life, but most of any perceived improvement has come from batteries that suck less.

"In the XP days, you were running Firefox 1.0, a 5MB program."

5 MB was never a realistic estimate of process RAM.

> 5 MB was never a realistic estimate of process RAM.

They probably meant "Firefox Setup 1.0.exe" was 5 MB.

Sleep has become significantly worse in Windows. Many complaints of how a supposedly sleeping laptop cooked itself to death in a backpack overnight.

I also think it would be worth considering changes in underlying hardware. A modern laptop no longer has a spinning HDD, probably a much bigger battery, and a CPU that is better at entering low power modes when possible.

It was around the third time that my laptop overheated itself while "asleep" in my backpack that I decided to return it and get a MacBook.
My work mac never seemed to overheat itself, but it would routinely be warm and out of battery when I took it out of my bag if I wasn't very careful about what was running when it went to sleep. If Outlook was left running, look out.
It is amazing that "goes to sleep properly when I close the lid" is a competitive advantage for a laptop in 2024. My X1 Carbon would bake itself in my backpack all the time but my new work mac has been perfect so far.
"Modern sleep" is such a scam. The only way to safely suspend a Windows machine now is to go into the registry and re-enable hibernation.
Indeed. My understanding is that it's a hardware issue with (largely) Intel. Sleep is really bad on Linux too and that is the reason given.
Basically, this

https://learn.microsoft.com/en-us/windows-hardware/design/de...

Linus tech tips made some decent videos on the topic. But basically, what this apparently boils down to, is Microsoft wants to control system power states from the OS instead of relying on the implementation different manufacturers provide in their BIOS or something.

And there are good reasons to do so, and in concept, it's a decent idea, but the feature just isn't filly ready yet, especially in terms of it being supported by software.

There is a link to SleepStudy at the bottom of that article, which is a piece of software that, from what I understood from it's description, lets you track _why_ your laptop is hot and bothered while riding in your backpack.

In the end, it could be Software (whatever programs you run), OS, BIOS or really hardware related. Probably makes it really hard to understand what _actually_ causes the problem.

If that were the case then it should have affected Intel-based MacBooks too, and that does not seem to have been widespread.
> Including things you like quite a bit, such as WiFi support A while ago I set up Win 98 on an old P2 laptop from 1998 I found in the trash at work. Even that can do WiFi with WPA2. It was a pain to set up and requires 3rd party software to establish the connection, but aside from that it works just like any other network card.
I'd add to 4, having seen a bit of the Kernel code. There's a lot of duplication of code, when new developers or teams come on board, they often just re-invent the wheel, rather than using existing Kernel funtions.

I would guess that most of the 15 NT developers from 30 years ago have long since left.

> There's a lot of duplication of code, when new developers or teams come on board, they often just re-invent the wheel, rather than using existing Kernel funtions.

This is, unfortunately, a trend in SW development. See GNOME or Wayland for examples.

Linux isn't afraid to break backward compatible. I'm pretty sure Win32 is going to outlive me.
Linux makes an explicit effort to not break userspace.

I had a weird experience where I had to use a device stuck on a 2.6.x kernel, and I was able to run a modern distribution on top of it.

Similarly, running old userlands on new kernels works just as well.

The issue with backwards compatibility isn't with the kernel, but ensuring that whatever you want to run is compatible with the surrounding userland environment. Dynamic linking can break backwards compatibility, for example, but that's an issue above Linux.

While you are technically correct, that turns it into a bit of an apples to oranges comparison with Windows because most of what we consider to be the Windows operating system would in the Linux world live in userspace. Which means that when we're comparing the user's experience of an average Linux distribution with Windows it's definitely fair to say that Linux doesn't prioritize backwards compatibility.
Just yesterday, I purchased a game from GOG where the Linux build cannot start, owing to who knows what expected platform profile. Maybe, technically, I could have fixed the problem. The Windows build worked without issue in Wine.
However, because the kernel doesn't break userspace, you can use stuff like chroot to run old apps without a performance loss.

I do wish the tooling to make this seamless was better.

Assuming you can go through the dependency hell, because you can't use old packages on a new distro - so in most cases you have to compile by source... I've tried to run XMMS and suffered a lot.
This should be a nonissue if you use chroot.
If you haven't already checked it out, systemd-nspawn is invaluable if you find yourself needing to use chroot.

Combine it with QEMU's usermode emulation + binfmt-misc and you can run chroots for other architectures, too.

It depends. First, I think the kernel point is a powerful one.

Second, until Wayland, X11 also created crazy backwards compatibility. You can take run X apps that are decades old.

Where backwards compatibility is poor is in the desktop libraries like those in the GNOME and KDE ecosystems.

Even there though, the old libraries still work. You can keep them around if you want.

Indeed, and with tools like Distrobox nowadays, it really is realistic to have a Fedora 40 host system running apps compiled for Fedora 17. In related news, being stuck with RHEL on the host has gotten a lot less painful. Desktops are finally really benefitting from containers (including flatpak)!
In spite of this, GNU/Linux is also getting bloated and slow.
Plus backward compatibility. They add code but never take it away.
Eh? A lot of things have been lost ("taken away") on Windows.

I can think of a few off the top of my head:

64-bit versions can't run 16-bit applications (including MS-DOS software), for instance, which broke all kinds of stuff for people who never knew that they still needed this.

Ye Olde Windows Help system disappeared starting with Vista, which broke a huge amount of the online documentation that still-functional software had been using (including, maddeningly, my own bought-and-paid-for copy of QuickBooks).

Subsystem for UNIX-based Applications is gone. It used to be a thing, and now it is not.

32-bit hardware compatibility: Gone in Windows 11 (and Windows 10 EOLs in about a year and a half).

OS/2 binary compatibility: Windows included the ability to run [some] OS/2 software in NT-based versions, up to (and including) 32-bit XP.

And that's just some stuff that me, a complete non-expert, can think of straight-away.

Maybe it was all cruft, or maybe it was useful. Maybe it's better that these things are gone, or maybe it is not.

But these are all things that used to be present, and that are now no longer present.

Windows 11 won't run most DOS or Windows 3.1 or Win16 Windows 95/98/ME programs.

XP does.

W10 32-bit will still do this (while W10 is still with us) after enabling NTVDM so it works like XP in this regard.
It will, but using different methods.
Isn't that going away with the new ARM-based Windows systems?
Yeah, it's pretty annoying.

I could happily live without animation, transparency, and rounded corners in my UI.

Not sure what new 'features' I couldn't live without. I don't use the background indexing/search stuff, I switch off Cortana, I try to stop as much of the background stuff as I can.

Perhaps there's some pressure from the underlying platform too - modern PCs seem to be more complicated than the ones we used to run XP on.