Why Windows is Slow 885
hype7 writes "The New York Times is running an article on why they think Windows is so slow. They boil it down to one key factor - legacy support - and they hold up Apple as an example of a company willing to make hard decisions around legacy support in order to provide a better product. From the article: 'Windows is now so big and onerous because of the size of its code base, the size of its ecosystem and its insistence on compatibility with the legacy hardware and software, that it just slows everything down ... That's why a company like Apple has such an easier time of innovation.'"
Transitions.... (Score:5, Interesting)
In contrast, I've had a fairly difficult time getting older software on Windows to even run sometimes. We kept a Win95 box around for the longest time because of some very specific software we needed that would not run on anything else.
same as hardware really, ms laziness? (Score:3, Interesting)
firstly i think the same could be said of pc hardware - we are still limited to the pc architecture designed decades ago, noone is willing to go out on a limb and produce truly flexible hardware given that it simply won't work with anything else. This is partly the reason why games consoles can put out much more power than an equivilent pc - they can be designed from ground up to be super-efficient without any legacy concerns at all (obviously the fact their hardware never varies makes it easier to code things more close to the steel)
secondly, i wonder whether it's not microsoft being obsessed with legacy support, more that they don't want to spend $$$ on getting windows developers to root through the code and take it out. They simply carry legacy support through windows versions as they're always working from the same base. As always with ms it's $$$ >> quality. I'm sure a lot of their coders get irritated with legacy issues..
How many lines of code in Linux? (Score:2, Interesting)
2 points I would like to make (Score:3, Interesting)
Secondly, legacy support is a sign of success. MS's Office 2004 on Mac is quite a nice program, mostly because they don't have much government users and thus little legacy support. MS's products need to be stable as MS cater for a huge amount of relatively computer illeterate users who cannot handle change.
The difference is that lately most OS X binaries are going to get more and more bloated with the UB support being added. So soon you will see a new type of problem on OS X... until then, sure things are just peachy.
Re:Windows is slow? (Score:2, Interesting)
Re:Apple Provides SOME Legacy Support (Score:2, Interesting)
The security holes, malware, Registry, etc. can all be attributed to people trying to do a good job and failing. I don't think Windows intentionally left numerous security holes in their systems -- why would any company want that kind of negative PR? The registry probably sounded like a really good idea, and in theory it isn't that bad. The problem is nobody realized that programs would be too lazy to properly clean up after themselves and it would bloat and become cumbersome. And the malware -- that one I attribute to Windows simply being a humongous target. If you're gonna target naive, uninformed users who had to practice to learn how to double-click, you'll attack Windows. I doubt many people who still can't handle the concept of e-mail have Gentoo on their box.
Even the legacy support is Microsoft trying to help people out. They don't want customers to lose their old applications. Of course, you could also attribute this to them being afraid to lose customers, but at the time of the 98->NT switch, Apple still wasn't even a blip on the radar. Neither was Linux. Backwards compatibility was, in all likelihood, what they thought their customers wanted.
The Old New Thing (Score:3, Interesting)
Re:SnailSoft (Score:2, Interesting)
Re:Windows is slow? (Score:3, Interesting)
Re:Emulation Layer (Score:3, Interesting)
Re:Transitions.... (Score:3, Interesting)
I've seen a few programs that check the OS version and will not run on anything but 95/98. I had a game that detected Windows NT and said "Sorry, you run NT and don't have DirectX" on a Windows 2000 box. Hello? Windows 2000 has DirectX. Fiddling with the settings to trick it into thinking it was Windows 98 made it work. If the game had simply checked for the required library instead of making an assumption, it would have run just fine. I think this is part of the reason why compatibility is such a headache. Sure, I could see dropping legacy 16 bit support, but the Win32 API hasn't changed since Windows 95. Microsoft added stuff on, but it's really not that different. Programs today, at the machine code level, are pretty much the same as they were 10 years ago with respect to the API.
Re:Apple Provides SOME Legacy Support (Score:5, Interesting)
That's easy to say in 2006, but 10-15 years ago the "footprint" of the OS was a huge purchasing decision.
Why do think Apple dumped so much money into Copeland? Because at that point in time, the average Mac had 8MB of RAM and they could never have shipped a Unix-based OS that required 64MB or so of memory.
VM Layer or legacy-free installs? (Score:5, Interesting)
If this isn't practical (having to run one each of the above layers could gobble tons of RAM), then at least providing a way to do a legacy-free installation with the option of adding support for older environments later. Systems that didn't need it wouldn't have to have it added, perhaps improving performance.
I'm the only GNU/Linux user in the office (Score:3, Interesting)
The office has converted to using Firefox, and OpenOffice is climbing up the side of the desk, but the operating system is still Windows and the viruses they picked up before moving to Firefox are still there.
The Anti-virus software is often disabled by a virus, and Internet Explorer can't be fully removed. It can't even be fully disable since it's needed by Windows Update. (Although Windows Update is blocked by viruses on half of the computer).
I'm seen as "the tech" because I fit the profile, but I'm actually more of a lobbyist, but I still get asked for tech support.
Re:Transitions.... (Score:2, Interesting)
http://blogs.msdn.com/oldnewthing/archive/2004/02
and App Verifier does a test (HighVersionLie IIRC) to detect it.
And they test new Windows versions with a vast amount of software and make Windows lie to it without user interaction. Even if they missed it you can get Windows to lie to programs thay the testing missed -
(found via a 1 minute Google search)
http://www.microsoft.com/windowsxp/using/helpands
Re:Transitions.... (Score:3, Interesting)
Comment removed (Score:4, Interesting)
Re:Windows is slow? (Score:2, Interesting)
I'm currently running XP MCE on my desktop and it's currently displaying an uptime of 32 days, and I know that the last time I shut it down was because I was installing a new capture card. It's not uncommon for me to go a whole month without shutting down.
I've been very pleased with more recent releases of XP (SP2 and MCE 2005). My Win98 machine was NEVER this stable. I keep my software down to a bare minimum, the only apps on the machine are the ones I actually need an use. Keep your Antivirus, mal/spyware, and windows updates on an automatic update and sweep schedule. Don't open any emails from people you don't know and don't browse around websites that could potentially mess up your stuff.
It's pretty simple, the key in all of this is keeping the GF off my desktop less she'll go clicking links from her friend's live journals and downloading every flash game in sight. I keep a T20 Thinkpad around with WinXP SP2 I've got a hard drive image taken directly after a clean install every 6 months I format it and re-image it... she can use that.
The real test (Score:2, Interesting)
Quake 4 chugs along at 15 FPS in Windows, while in Linux (stripped down in blackbox) I get 27. A far more playable speed. All without that $300 upgrade.
I find Linux to be faster because it's not a one-size-fits-all deal. Linux I can customize, and tweak far more then windows, which is designed for just as you said; web browsing, email, exel. Making it do anything else without pretending to be a hard-core hardware buyer is a different story. Then its bloat shows.
Re:Transitions.... (Score:4, Interesting)
The Intel move is a major HW architectural shift. However, there are quite a few 1984 Mac apps that ran on every MacOS through 9.2, and still ran in Classic mode on the latest PPC Macs. That's survival through 20 years, one major HW architectural shift, and one major and numerous minor OS architecture changes already. That's nothing to sneeze at. For the Intel jump, Apple is providing Rosetta, so that at least 5 years of OS X code can be transitioned. That's not a bad effort, either.
I'm not saying Apple or MS is better or worse in legacy support, that's not my point. But your parent certainly isn't all "spin". Apple's done a darn good job, all things considered.
Unix / Solaris backwards compat? (Score:1, Interesting)
The ABI hasn't changed in over a decade. I know of some kernel drivers written for Solaris 2.5 that still work under Solaris 9 (SunOS 2.9). Even graphical applications work fairly well using things like X11, Motif, and even OpenGL. Even running mixed 32- and 64-bit environments work pretty well.
FreeBSD has compatibility layers going back to the 2.x releases, though personally I haven't used them so I don't know how well they work. If you need the compat stuf you install it, if you don't, it doesn't take up any resources.
While I commend Microsoft on trying to help users keep their applications, it seems that they didn't think through their architecture thoroughly enough.
Re:Windows is slow? (Score:5, Interesting)
I am not against Microsoft, and I make quite a bit of money developing software for their operating system, but I have found that more stuff works out of the box on my systems with various linux distros than what works with a vanilla install of Windows.
Re:Windows is slow? (Score:3, Interesting)
Agreed, but that's not a valid answer. Ditch KDE and Gnome and you're left with a desktop environment that is nowhere near as friendly to most people. Sure, advanced users can use it with no issues, but that doesn't help people who are trying to get into Linux, or get others into it.
And the KDE/Gnome issues come back if you want to use a program compiled with their libraries -- at that point you have to load the libs into memory and you're now worse off than you would be if you were running KDE or Gnome already (longer load time due to loading the shared libs, possibly a larger overall memory footprint). Don't use those programs? Uh... ok. There goes most of the recent GUI programs for Linux.
The point I'm trying to make is that XP and OS X can deliver all of the eye candy and usability in the given memory footprint while still being faster than X (w/ KDE or Gnome). That's fairly damning. Both KDE and Gnome are bloated projects (as you note) and could benefit from exactly the same kind of total revamp that Windows needs. Hell, just moving to the STL (instead of recreating it from scratch, or attempting to do OO in C) would help reduce memory footprint, improve speed, and (most importantly) increase development speed.
the whole .NET thing breaks compability more (Score:2, Interesting)
The CLR (Microsoft's
You want faster Windows? (Score:5, Interesting)
If you want faster Windows, use nLite [nliteos.com]. It's a beautiful tool that lets one take a Windows XP installation CD and make any number of modifications to it: remove unwanted components/drivers, preset Windows settings, slipstream hotfixes and service packs...even completely automate the installation process by presetting all installation information (license key, etc.). Then, it generates a brand spanking new ISO for you to burn and use for installation. It's glorious.
After nLite-ing my personal XP installation, I must say I have never been happier with Windows. I've left it running for weeks with no problems. A fresh installation of my nLited XP is just over 1 GB of HDD space (whereas the typical XP installation can top 3 GB). It could have been less, but not without removing several components that I wanted to keep.
Granted, this tweaking is not without its quirks. I do occasionally get a warning about "unrecognized file versions", but thus far ignoring them has not caused any problems. I would suggest the following though: I know it's tempting to remove IE right off the bat, but trust me when I say don't. It is needed for some very important functions (such as updates). Also, I would caution against removing Windows Media Player as well. Sure, you may never use it (hell, I never did), but if you remove it, it takes its codecs with it, which can cause other apps to not function properly (such as Winamp). I guess you never know what you have until it's gone. If you're bound and determined to remove it, then I highly recommend the ACE Mega Codecs Pack [free-codecs.com] as a replacement.
Happy hacking!
Re:You want faster Windows? (Score:2, Interesting)
People have to be careful with this. I've been burned a couple times using the "custom install" options on software, where there is a list of 3000 packages to pick from, without any solid documentation of each package. I think I'm going to get this super-thin installation with only the software I need, but that lasts about two days before an application requires something that is missing.
Re:Transitions.... (Score:5, Interesting)
You can download Visicalc from http://www.bricklin.com/history/vcexecutable.htm [bricklin.com] and it will still work. It is from 1981. It targetted MS-DOS 1.0 which was before subdirectories existed (the big feature of MS-DOS 2).
As I like to say, Microsoft puts the backwards into backwards compatibility.
Re:Transitions.... (Score:3, Interesting)
A new quad 2.5 ghz G5 with 16 GB of RAM and running Tiger does a great job of running Tetris, from 1987, and Macwrite II, from 1988. And if I use a processor-reducing utility, I can even play Snake and Shuffle Puck from 1985. That's over 20 years of backwards compatibility going on a brand new machine. Even running games, which are notoriously incompatible.
It's true they're making a break now. Apple's timeline, which may have been accelerated since, said they'd phase out PPC in about a year and a half. So that's seven years of compatibility for programs that haven't been carbonized or rewritten in cocoa. I bet there will be an emulator released soon for this stuff, but not as official support from Apple, so I suppose that doesn't count.
I'm sure people here will argue with me, and I have fairly limited experience. But I haven't had the best of luck with Windows application compatibility. Approximately none of my cousin's games for Windows 95 would run on Windows NT. Move2Mac didn't have NT compatibility either. One Windows 95 game wouldn't run on Windows 98. How many circa 1985 DOS programs run under XP? Because that's the kind of compatibility Apple's offering today. And if we want to look at what runs on Intel, let's wait and see what runs under Longhorn.
I suspect it's true that, with Intel breaking Classic, Apple is introducing a more significant lack of backwards compatibility than MS generally does, at 5-7 years. But this is the first time they've done this, through all the transitions they've been through. So until just now, I don't think the "compatibility issue is nowhere as good as Windows." I think it's much better. And I want to see how good it is with Longhorn before we beat up Apple too much in comparison.
Be careful how far out your ass you talk. (Score:5, Interesting)
Dynamically linked ones can work, too, provided I install the libraries that support them (and I can install them concurrently with modern libraries, since their names include the versions of their interfaces). Only libraries and programs that directly use the Linux system call interface (not the POSIX interface) are unlikely to work.
Quake binaries of that era function. The OpenGL 1.x interface they use is provided via my OpenGL libraries. OSS is emulated by Alsa. I can use fancy new binaries given by the Quake source code, if I want, but it's not required.
In fact, the best part about Linux you could say, is that I am not locked to archaic binary interfaces because most of my code is available in source form to everyone, including people who are willing to recompile it for me and provide it in a nice distribution (Kuuntu) with minimal interaction on my part.
So we can support legacy, but we choose not to. This choice is important in software use freedom.
Re:Transitions.... (Score:2, Interesting)
Umm, what?
I have a nearly 7 year old PowerMac G4 (450 MHZ) and OS X will install on it fine - and runs perfectly well to boot. Yes, Apple had to draw a line somewhere (at some point the hardware will get too slow/architecturally archaic to be worth supporting) but to claim three years is absurd.
How many 7 year old, 450MHz PCs do you see flawlessly running XP?
Re:Fresh start (Score:1, Interesting)
Originally, "Blackcomb" a.k.a. "Vienna" was to be the next major release after XP. However, somewhere along the line they decided to release "Longhorn" a.k.a. "Vista" as an intermediate release. I tend to doubt that Blackcomb is the complete rewrite everyone is looking for - but to give them _some_ credit, they seem to be investigating the "sandboxed" approach and dropping 16-bit app support.
As to why they haven't officially stated/confirmed any aspirations to do a complete rewrite - it's beyond me. I don't see why they can't/won't. They are really dropping the ball by not doing so. If nothing else, why not fork the Windows OS offerings into NT based and "new base"?
The only answers I can think of are:
Third party developers don't like the idea.
Major customers don't like the idea.
It would take a lot of work (i.e. $) to port the real money makers like Office over to the "new base".
All in all, I think the initial hit would be worth it. Though, it is rare that any major corporation looks past the next quarter and/or their bottom line to the future.
Re:Transitions.... (Score:2, Interesting)