Why Windows is Slow
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.'"
I'd have had first post if windows wasn't so slow. :-(
Interestingly, I've found Apple to be very willing to integrate backwards and forwards support in their OS. In the transition from 680X0 to PPC, Apple made sure to include some very clever programming that allowed a native and non-native apps to co-exist. In the transition to OS X from Classic, they included Classic as a virtual environment and in the transition from PPC to Intel, they are working very hard on Rosetta, another environment that preserves people's investment in their software.
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.
Visit Jonesblog and say hello.
Windows Vista is coming out as a 're-write' of the code, but I don't believe they are recoding the real legacy parts of the Windows code. I think Microsoft needs to do away with native legacy support like Apple did, but keep it around with emulation. If WINE can reverse engineer the Windows layer, than why can't Microsoft, with access to the source?
--sig fault--
Ubuntu definitely ran more quickly for me than my XP machine. Not sure where you're getting that. In fact -- I've hardly ever seen an XP machine that runs 'great'. I remember when we upgraded our windows 98 machine -- it ran amazing 650 Mhz, 128 mb RAM -- I've never seen an XP machine run as quickly as that 98 machine of mine. (Not saying it can't happen -- it's just rare.) And christ -- have you seen most manufacturer basic loads? Dell, HP, Compaq, etc. machines are frequently nearly unusuable right out of the box, because of the garbage programs that come out of the box. In fact, currently my G4 Powerbook runs (1.5 Ghz) runs more quickly than my 2 Ghz Dell with windows XP.
well, try installting a year 2000 distribution on the stated hardware... works pretty fast doesn't it?
Boot time again, try to compare hybernation not boottime. http://www.suspend2.net/ for Linux...
I mean: apples and oranges anyone?
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..
Insightful? I have a P2 350 with 128 MB RAM running the latest Debian, and another with the same specs running Core4. Both are more responsive than my 1.5 GHz Celeron with 512 MB RAM when it's running Windows.
It's like sex, except I'm having it!
They don't mean execution speed. They mean the speed at which Microsoft makes new releases.
-Dave
RTFA -- the article is about why Windows' Vista development and Office development is slow, not why Windows XP runs slowly.
If you ask me, though, that's the right design decision. First you make a system that works according the specifications, and only after that should you worry about optimizations.
I can run 10 year old binaries yet my system is no slower.
Maybe this is why Vista is taking so long to come out. They are programming it in Windows.
The old new thing, describes some of the hacks win32 uses to stay compatible with badly written applications. Things like dummy events, hidden windows, duplicate event stacks, etc.
As I know that the GP post will be moded really down because of slashdot linux zealots I have to backup his statement, I use Windows XP in my HP Pavillion ZV5000 with 1024 MB of ram and I runs really good, including the Ati 9100 igp the Wifi and the modem. Oh! and the buttons to increase or decrease the volume.
I have not been able to make all those things work with ANY Linux installation out of the box, and I have tried with quite a few including FC4, Ubuntu, Mandriva and SUSE.
Who said only Microsoft could spread FUD!?
Ubuntu is an African word meaning 'I can't configure Debian'
But even stupider responses below illustrating just how many people don't read the article.
Fo those who simply refuse to RTA I will summarize, to wit: the article deals with the pace of Wiindows software releases and the recently announced delay of Vista... not the speed at which the OS loads and executes applications.
I am very small, utmostly microscopic.
It's not about windows being "slow" as in "OMG!!! SOLITARE LO4DZORZ ZLOW11!1!111!", but as in "Geepers! The Windows development cycle sure is taking its jolly time!".
Legacy support could include being able to run DOS, Win16, OS2 applications, switch to realmode to perform some BIOS functions should the need occur, etc.
l )
There's also code in place to check for old pieces of software which wouldn't otherwise work with newer versions of windows, eg:
I first heard about this from one of the developers of the hit game SimCity, who told me that there was a critical bug in his application: it used memory right after freeing it, a major no-no that happened to work OK on DOS but would not work under Windows where memory that is freed is likely to be snatched up by another running application right away. The testers on the Windows team were going through various popular applications, testing them to make sure they worked OK, but SimCity kept crashing. They reported this to the Windows developers, who disassembled SimCity, stepped through it in a debugger, found the bug, and added special code that checked if SimCity was running, and if it did, ran the memory allocator in a special mode in which you could still use memory after freeing it.
(taken from http://www.joelonsoftware.com/articles/APIWar.htm
These kinds of things are going to have an effect on performance, and an even greater effect on development time (windows, late again?)
The revolution will not be televised... but it will have a page on Wikipedia
I was thinking about this, and it basically boils down to a simple proposition:
People buy Macs to run OS X
People buy Windows PCs to run Applications
Because of this Apple has a lot more leeway on compatibility. They can break every application there is, but the users will still be happy as long as OS X and Apple apps continue to run. If Microsoft breaks Windows application support, they've removed the main reason people run Windows in the first place. (Maybe there is a hardcore 2% of Windows lovers out there, but apps are what counts for the vast 90% of the market.)
The other issue is that Apple is heavily consumer-based and therefore can totally focus on quick-turnarounds and user-centric features. For example, there's been various complaints over the years about poor I/O speeds on OS X. This hasn't been a huge priority for Apple to fix because frankly they don't sell that many corporate server systems. Much better to put those resources into developing 'widgets' or something the end user can see. Microsoft has to spread out resources across Server systems, Tablets, Media Centers, Corporate Desktops, Consumer Desktops, etc etc, so that Windows is the single solution for every problem.
The end result is that OS X is a pretty damn nice solution for the home or SOHO user. But whether Apple's approach would work for the market as a whole? Don't think so.
Whenever I hear the word 'Innovation', I reach for my pistol.
RTFA. It isn't about "slow" as in execution speed, it's about "slow" as taking a long time to come to market and introduce new features.
First you make a system that works according the specifications, and only after that should you worry about optimizations.
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.
Whenever I hear the word 'Innovation', I reach for my pistol.
Judging from the posts on this story (almost all of which are debates about system performance), we can draw the scientific conclusion that less than 3% of slashdot commenters actually bother to RTFA.
I think a better solution would be a legacy-free OS that would have XP-level compatibility but would provide a VM layer configurable as DOS, NT4 or Win2k, depending on the need of the application.
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.
Ah, I love the smell of MS-fanboi in the morning.
Try installing latest Fedora Core, SUSE, or Ubuntu, and not only will the space they take up greatly exceed that of a proper Windows 2000/XP install
Does Windows come with an Office Suite? CD Burning software? Image editing software? A development IDE? A variety of games? How about vector graphics software? Or a database?
What do you think takes up those 5 CDs in the SuSE install? The kernel?
, but they will be much slower, because while hardware advanced, Linux still uses technology from 20 years ago to talk with the graphics card (X11),
Those who do not understand X11 are doomed to reinvent it, poorly. X11 is a high speed, fully network transparent architecture. The Xfree86 people let it languish on the vine, but the Xorg fork has gotten things into gear again, and we're seeing the API move forward at a breakneck pace. Xorg 7.0 is really far more sophisticated than anything else on the market, including WGF/DirectX 10 or whatever MS is calling it, and even my beloved OS X's Aqua/Quartz.
Don't underestimate the extensibility of Xorg, and don't underestimate its performance. It's a lean, mean, high-performance and full featured windowing environment.
still lacks kernel audio mixing
Bzzzt.... dmix runs at the kernel level. Modern linux distributions enable it by default for all users. You can turn it off if you want lower latency audio. AFAIK, you have to call dmix from userspace, but the plugin is running directly "on the metal" of the alsa subsystem.
still lacks in PnP department (removing a "mounted" USB flash stick anyone?)
Huh? Go to media:// (or click on the "Desktop" icon in Gnome, or click on the "Drives" icon in KDE, or go to the file browser). Right-click on the USB stick icon. Press "Eject" in the context menu.
Nay, Windows lacks in the PnP department. What the _hell_ is this concept of drivers, where I have to log in as administrator to install new hardware on my system? On Linux, I just plug it in, and the device node just appears, be it USB stick, WLAN card, ethernet card, or whatever. With a proper desktop environment I get a nice little pop-up asking if I want to configure it.
Oh, and Windows is braindead in the filesystem support department, as well. NTFS, and FAT32 are NOT enough for everyone's needs. Some people use modern journaling filesystems. Some people need to access HFS+ (that's the OS X file system). Some people need to access a wide variety of filesystems (don't forget the commercial UNIXes, which have a substantial marketshare in the server/workstation market). Perhaps someday MS will find the cash to hire a few more developers, and maybe even add a filesystem driver or two. Then again, given the ugly nature of the Windows Driver Model, this might not happen.....
still has abysmal support for various multimedia devices (no, the few tens reverse-engineered audio/video capture/etc drivers don't really count), etc etc
This one is half true. Unless, of course, your a professional, and use firewire. Firewire, of course, works perfectly. I capture whatever I want directly from my HDV camcorder, or from my cable box. Oh, and my ATI and Happenhauge TV tuners work out-of-box, too. Without installing drivers.
But yes, you do have to be careful with what capture cards you purchase on Linux. Stick with good name brand stuff, however, and you'll do okay. Sorry if your crap-o-matic generic capture card doesn't work; shell out the $35 to go get a supported one. Here is a short list to get you started. None of these require drivers; they are integrated into the kernel. You can get other stuff that's not integrated into the kernel, but I wouldn't recommend messing with that.
Sadly, ATI and Nvidia have not released their VIVO (All-in-wonder) drivers for Linux yet. Both have committed to do so, however. All-in-wonder and VIVO (nvidia) support are avaliable, but only for older card
WhiteWolf666 an exBush supporter. All you new-school,compassionate,save the children Republicans can rot in hell
Here's What You Need to Use Windows XP Professional
PC with 300 megahertz or higher processor clock speed recommended; 233 MHz minimum required (single or dual processor system);* Intel Pentium/Celeron family, or AMD K6/Athlon/Duron family, or compatible processor recommended
128 megabytes (MB) of RAM or higher recommended (64 MB minimum supported; may limit performance and some features)
1.5 gigabytes (GB) of available hard disk space
Mac OS X Version 10.4 requires a Macintosh with:
PowerPC G3, G4, or G5 processor
At least 256MB of physical RAM
At least 3.0 GB of available space on your hard drive; 4GB of disk space if you install XCode 2 developer tools
While we're comparing apples to oranges, I've got a few for you too.
BTW XP was releases Oct. 2001? and Mac OS X Tiger (10.4.0) was released just last year? That's like 4 years. You've GOT to be kidding me? Have you seen what's changed in 4 years? Or are you still living in a shack somewhere with your 233Mhz Windoze box?
Here are the requirements for slackware 3.4:
3.4 (Kernel 2.0.33)
* Intel 8086
* RAM - 8 MB
* Minumum Drive Space: 40 MB
Man, your windows is so complex cuz it requires at least a Pentium.
Here's the kicker, if you actually READ the article, it's not even focused on the running speed of windows compared to everything else. It's saying because of all the legacy support, that adding any features requires so much work and testing to make sure it doesn't break anything else for the last 20 years of windows programs. And because of this it's "slow" in terms of being able to add features or to innovate.
If you want a real comparison, why don't you take the requirements for Vista which isn't even out, but might have some of the features Mac OS X already! And guess what the requirements for Vista is going to be?
AirSpeak - http://itunes.com/apps/AirSpeak
"As I know that the GP post will be moded really down because of slashdot linux zealots I have to backup his statement..."
Dude, you have been trolled. And if that guy gets modded down it is because he is a troll, not because those evil Linux guys got him. Look at his post history and his home page -- gnaa.us? Dead giveaway.
Beware of he who would deny you access to information, for in his heart he dreams himself your master.
...depended on OS9? Lets be serious for a second. While I'm sure it's a painful process nonetheless, you can't really compare Apple forcing Adobe/Macromedia and a handful of other software makers to rewrite their packages to OSX' new API, to Microsoft forcing, say, the DOJ or Siebel to rewrite their software deployments. A Microsoft deprecated API could easily cost hundreds of billions of dollars. So for Vista MS is tasked with reviewing and security testing the heck out of whatever legacy components they cannot remove. And they do often take out legacy functionality that couldn't possibly fit our security model. But the major stuff, for the most part, has to stay in some form or another.
That said, I do wish more were done with virtualization to clean out the main OS.
What I've never understood is why a company as large as Microsoft never tried to create a second operating systems team with the goal of having it produce a new operating system from a clean slate? The original Windows team could still remain active for the short term and produce the types of updates that they have been in order to at least keep some reveneu from operating systems. This way the second team can work as long as they need until they have a good product. Even if the second operating system is a complete failure, which I don't see happening at a company with so many smart engineers, they would still be able to salvage at least some of the technology for use in the currect Windows code base. Microsoft spends a lot of money on R&D, so it doesn't seem completely far fetched that they would consider an approach like this. I know they have produced operating systems purely for research in the past (called Singularity, I think?), but why not create a second team to come up with something new, something that can avoid all the problems they've learned about developing Windows? The NT codebase won't last forever (at least I hope not), so I find it odd that Microsoft hasn't at least tried to start fresh again. I can't see NT lasting much beyond Vista and in a lot of ways I think it was a mistake to build Vista on top of NT. There has to be some point to break backward compatibilty and now is as good as a time as any. With ownership of VirtualPC, it wouldn't be hard for MS to run previous versions of Windows along side whatever new system they built, much like Apple did with OS X and OS 9.
SIGFAULT
You have a modern system running Linux that can run a binary that was compiled 10 years ago? That's honestly pretty hard to believe. Can you give an example? And I mean a ten-year-old binary, not source code that's ten years old and will compile and run today. I suppose it's possible if we're talking about "Hello, world", but otherwise, I would imagine that every single library that any given program depends on has changed considerably.
Karma: Terrifying (mostly affected by atrocities you've committed)
I actually only read the article because the title is so misleading. I have a Mac G5 with OSX and a Pentium 4 with WinXP at work, and the Pentium 4 is easily faster than the G5 (though granted it is a year newer). The OSX GUI is smooth as silk, but Photoshop takes ages to resize things...
At any rate, would it be at all possible to get Zonk to change the title from "Why Windows is Slow" to "Why Windows Development is Slow?" It would cut down on stupid posts and system wars.
And on that note, I don't think MS has a problem with being overzealous in supporting legacy hardware... I think they support any and all hardware as best they can so that they don't get sued for antitrust again. Not supporting certain hardware could be seen as exerting undue influence on the industry. Apple, however, not only doesn't support legacy hardware, they also don't support a wide range of current hardware. I've always seen that as a problem, personally.
-=-=-=-=-=
I'd rather be flamed than ignored.
I guess now we get to see what fraction of Slashdotters actually read the linked articles.
(Hint: the article makes no reference to the performance of Windows compared Mac OS X)
Also:
"Apple has a lean development group of roughly 350 programmers and fewer than 100 software testers,..."
Isn't it traditional to have a similar number of testers as developers? I know we mostly do, anyway.
The NYT titled the article "Why Windows is Slow" - it should have been titled "Why Microsoft is Slow". The article talks about the slow delivery of new versions of Windows relative to Apple deliveries of Darwin. It's got nothing to do with the performance of Windows itself.
Wonderful! Now taks a Windows XP disc with any service pack slipstreamed that you may want, reinstall the operating system on that laptop, and tell us how many of the special features still work.
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.
Despite the fact that this article has little to nothing to do with the "slowness" of Windows loading/execution (which is, of course, debatable depending on the app in question), I'll indulge the M$ haters and throw this into the mix.
If you want faster Windows, use nLite. 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 as a replacement.
Happy hacking!
"You will pay for your lack of vision..." - Emperor Palpatine to Ray Charles
Mac OS X was released on March 24, 2001. Just because Apple gives it a new "big cat" nickname and charges you for it doesn't make it revolutionary. I've "seen what's changed in 4 years" on a Mac and I have to say it's not that much.
OMG. Are you playing that same damn stupid game the previous guy is playing. First of all HE named OS X Tiger
* Supported Computers - Power Macintosh G3, G4, G4 Cube, iMac, PowerBook G3, PowerBook G4, iBook
* RAM required - 128 megabytes of RAM recommended
- 64MB minimum (barely usable)
* Hard Drive Space - 1.5 gigabytes
- 800MB for the minimal install
Awfully close to the "minimum specs" required to run XP wouldn't you say?
I'm getting too old for this site or something, cuz no one's *thinking* any more.
AirSpeak - http://itunes.com/apps/AirSpeak
Its precisely Windows' legacy support that it holds the market share. Make a new binary format, take away all the previous apps ability to run, and suddenly Windows has lost the real edge, the real reason why everyone doesnt switch to another OS. Linux/BSD are awesome, except too many apps run only on Windows. Many apple and Linux fans are sitting on Win32 machines right now because theres that one app that has no equivalent in Linux/OSX. Games are a significant part of those apps.
Say Windows switches to a new binary format for a new processor and asks all other software and driver vendors to follow suit. Many of them wont rerelease their apps. Others will not care. Many driver makers will not bother to produce the new version (I've tried running the AMD64 Windows XP... so I know all this). The result is Linux has the edge suddenly. You dont need to have vendors rerelease drivers, except for the few proprietary drivers (like nvidia).
Microsoft will never do that. AMD64 is giving em enough headaches as it is... and AMD64 actually supports x86 32-bit in-hardware. Take away DOS support, and all the older API in Windows, and suddenly there are more apps available for Linux than for Windows. Suddenly, MSFT stock seems overvalued.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
Definitely don' delete IE :-)
Windows XP Embedded lets you do a thing similar to what you are describing - you can create an image only with the components you select and the tool keeps track of component dependancies so it prevents you from creating a broken image by requiring the missing dependancies.
This is where the fun starts. There are dependancies you wouldn't imagine. I wanted to create a very minimalistic XP image with basic API functionality and TCP/IP networking. Impossible. The DHCP component requires the SNMP component, which requires the HTML Help component, which requires, yes you guessed it, Internet Explorer !!!! DHCP client -> Internet Explorer : it makes perfect sense.
Then I foolishly wanted to add SP2's firweall support. The firewall required all kinds of COM and DCOM components, including Microsoft Transaction Server (!!!) or similar crap and of course Internet Explorer as well. Why, oh, why, does a network firewall require Microsoft Transaction Server ?
Of course these dependancies are not always critical - I am sure I could have deleted IE from the image and DHCP would still have worked - but nevertheless it is funny that MS claims IE is not a part of the OS, while it must be present in the simplest OS image :-)
Getting back to the subject - I definitely wouldn't use a tool like nLite - you end up with an unsupported custom version of Windows and you never know what is going to break, which service pack or update is not going to install, etc. It is not worth the hassle.
I can grab the statically linked binaries off of my Simtel CD set that includes Slackware 2.x and run them. The old statically linked a.out files will run if I put that executable support in, and any statically linked ELF binaries also load fine. Both of those existed 10 years ago (right around when most people had switched to ELF).
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.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.