This may be difficult for some to understand, but Linux and projects like it don't need to make money, because they make wealth. Any improvement to a Linux system potentially improves the lives (and consequently productivity, efficiency, etc.) of its primary and secondary users, that is, the ones sitting on Linux machines and even the ones sitting on client machines accessing Linux servers. In general, you don't have to pay for the update, so you get it more or less free.
IBM, Red Hat, etc. know that this model is great for them, because Linux systems are developed collaboratively by pretty much the whole planet, to varying degrees. The companies get improved software for free, and improve it themselves as well, and fuel the ecosystem that makes it all practical. And at all steps along the way, everybody benefits. Even Microsoft couldn't survive in a true Microsoft monopoly, because, well, have you ever *used* a Windows Server?
Again with the 'Java sucks'. Who cares? It's still useful technology and if we're going to use a managed bytecode platform, it should be the open one, not the one overlorded by Microsoft.
Mindshare has been taken from the portable and libre Java platform, which could have been used for GNOME and KDE to their advantage. (Though KDE doesn't really care since their C++ stack is already at least as good as Java in most regards). Mono is barely complete, does not perform well, has unknown patent liabilities, and limited implementation on non-Linux platforms. It's poisoned GNOME instead of improving it. Now many new widgets are Gtk# widgets instead of GTK+ widgets.
Everybody knows that every mainstream operating system markets itself via a name. Leopard, Vista, Gutsy, whatever. The numbers are just a form of serialisation key.
tangent {
Apple has a similar problem, which is that their numbering will be exhausted soon, with 10.9 being the last 10.x release. Then they *have* to move to 11.x, and eventually it'll be 100 and no longer string-sort desirably. Who cares? Not I.
Microsoft has an even bigger problem, which is that their naming has always sucked. They used to use codenames but still tacked on varying combinations of numbers, letters and years. Now they just change the codename at the last minute, and release that as a product (WinFX, Longhorn,...). Then in a few years they fix the product up to basic usability, by which point the 'trendy' name is even more bland. In the same sort of time span, would we really care to hear about "leveraging Windows 2000 technology"? Why is it ok if it's Vista instead?
True, but the trend is towards their defeat, by the combined pressure of free software and the surprisingly powerful Apple force. And the Apple force is deliberately not poised for commodity position, relying on proprietary, vendor-locked hardware. We're not through with Microsoft yet, but the situation now is much better than in 1999, even with the years of inertia building.
Lots of the biggest companies have already switched to Linux in critical positions, and this trend is only increasing, and the big companies end up setting examples for the little companies. It'll all happen, sooner or later, and I'm just glad that, right now, 'most of us' can already run Linux with high confidence.
Besides, speaking of WWII, the (reasonably) free market of the US won. It's only lately that the US has declined to abysmal levels of deficit and sanity, due in no small part to the kind of market practices that make Microsoft possible to begin with. The freest market tends to win, and open source may be the next big victor. Maybe I sound a bit too ideological saying that.
Why do you think Microsoft is scrambling for OOXML standardization? Because the document format lockin is a huge, huge part of Microsoft's monopoly strategy. If they're forced to be an equal player in the office suite space, making Office largely replaceable, then Windows is largely replaceable too. When Linux + KDE + Firefox + OpenOffice.org can replace a Windows + Office + IE setup with lower costs, minimal training and solid vendor support (Canonical, Red Hat,...), how much incentive is there to run Windows any more?
Gradually the government switches, corporations switch, and finally users switch. The numbers indicate it's happening anyway, and the format war is just going to nail the coffin on Microsoft's monopoly. They never even had a monopoly on servers, gaming technology, etc. so the office is their last stand, and in a matter of days it will be confirmed that they have lost that too.
And of course, as the demand for Linux installations grows, and more vendors sell pre-packaged Linux, then hardware contracts will also require useful drivers or even documentation, and the hardware situation will be largely solved too. Sit back and relax, freedom has won and the liberation continues as planned.
You've missed an important reality of FOSS development, which is that most projects have a core team (or, often, a Benevolent Dictator) which decides everything. No matter how much the users might want, that core team still decides what gets implemented and widely deployed. Look at Python vs Ruby - they're competing in a very similar space, and both growing in different directions, with uses for both of them. They simply cannot become one project without losing their individual advantages. But they can co-exist rather nicely, and cross-pollinate ideas that are compatible with both.
Linux has Linus as the benevolent dictator. Linux is freakin' awesome, but other projects do things differently, and can often justify them one way or another. If these projects are allowed to bring those ideas into reality, and demonstrate their value, Linux could copy the ideas.
Look at BSD's kqueue, spawned in FreeBSD. It's really good. Around the time it was spawned, Linux still had poll, and then later epoll, but epoll isn't that great. Now Linux is getting new event notification systems, of varying sanity, because kqueue has shown it can be done much better, even if the Linux guys don't quite agree with it in its entirety.
For all we know, Linux might end up re-architecturing to have natural SSI like DragonFly plans to have. DragonFly can be a great proof of concept. And if, a few years from now, the market situation is such that implementing drivers, software support, etc. is easy, the developer resources can focus on making a competitive, usable product instead of playing catchup with basic hardware support. We'll see an explosion of useful, interoperable operating systems, that would have otherwise died just trying to be runnable at all. *Especially* with virtualization platforms reducing the amount of code necessary to get a live kernel, and improving debuggability, deployment flexibility, etc. The mere anticipation floors me.
Allow me to clarify. The JVM currently has a lot of clever optimizations like lock coarsening. It's proving it's pretty smart. Now, imagine if the JVM could detect a certain procedure is doing a LOT of user-kernel switches, and therefore can be moved to kernel space. When it needs to communicate memory back to userspace, it can be moved back in, ideally, only one switch. This is a pretty simple optimization which has a lot of room for improving performance. Some processes like servlet containers and their servlets could, in theory, be moved entirely into kernel land, without having to program any kernel code at all. I wonder if this is planned for any JVM?
Sun has a lot more than just Java software, and has a lot to gain from having firster-than-first class support for Java in the operating system (e.g. kernel-level code caching, pushing code into kernel space, etc). Linux can technically have it all now too, with Java being GPLv2'd. But really, Sun has packages like StarOffice, which needs a lot more than just a JVM.
I encourage more competition for Linux. A free market is built on competition. Now that Microsoft is becoming a competitor rather than an oppressive regime, it'll be naturally selected out and increasingly powerful Unix systems will dominate the market. A Linux monopoly is not a good thing either, and whether BSDs or Solaris share the market, we all stand to benefit.
It'd be even better if we had some license consolidation, but hey, that's a pipe dream. I'd rather have license-incompatible code than no code at all because people refuse to use GPLvX.
Various flavors of Linux can take a flying leap. The mainline Linux kernel is generally in very strong shape, and I say this after spending years loathing many bad choices in Linux. Many mainstream distributions are doing very well too. Most of all, Linux does not compromise basic performance for "rights management", which Vista does.
Vista's worst engineering decision is to make a system optimized for restrictions and money-farming, not for user experience. The WGA breakdown is the best example. The legitimate users who paid a ridiculous sum to use Vista's 'ultimate' features (you know, the ones which are free in Linux and at least standard in MacOSX) had their systems crippled, and the pirates who bypassed WGA were not even affected. The whole feature does exactly the opposite of what it was supposed to do. That's failed engineering, any way you look at it.
Once again, over-complication and stupid engineering lead to a humiliatingly bad operating system. It's obvious it didn't receive a modicum of real testing.
It's deliberate. The standard is just a distraction, to keep competitors busy trying to implement it, while documents are actually being created in the Office 2007 variant of OOXML. A few months of legacy almost guarantees a transition to the real OOXML would be an uphill battle, especially with no real documentation of how *either* format works. So even with a supposed 'standard' and a near-enough implementation, the vendor lockin is just as strong as it was with the binary formats.
What, like how Windows has the entire X11 analogue backend and graphics drivers in the kernel? And how it has to search for up to several minutes for drivers every time you plug a USB device into a new position on the bus, as opposed to Linux' sub-second response even when it has to load modules?
Windows is like the poster child for failed engineering. Even DirectX requires orders of magnitude more kernel/user switches than OpenGL, and they're trying to hack around it any way they can. It's just humiliating.
I know, it shits me too, and I'm hoping the GPLness will mean that the Sun JRE is ported to more platforms and the problem is solved that way.
GCJ does not require source though, but it does require Classpath to contain the right parts. Swing is pretty poorly supported, but SWT is its own code so that works just fine. Azureus is based on SWT, so maybe it has a chance. Has anyone tried GCJ on Linux/PPC? It's already done for x86 and amd64, as my Ubuntu package lists suggest.
$ aptitude search azureus p azureus - BitTorrent client p azureus-gcj - BitTorrent client (native code)
For one thing, gcj can compile Java source and bytecodes to native code, which AFAIK works for those architectures even in the complete absence of a Sun JVM. But then, wherever that runs, so does gij. It's not as good as Sun's, but it does work for a lot of applications.
For another, I'd rather have to run a qemu for x86 JVM than code C + GTK for any usefully large application. I would be a lot happier using, say, PyGTK. But that's not what I replied to, which was a moronic suggestion that applications should actually be written in C + GTK. There are a lot of better compromises like PyGTK, but unfortunately that's still not the same market as Java, which is for making applications easy to develop and deploy and fast to run.
Call me optimistic, but with a more liberal license on the JVM, I think new unofficial ports will spring up rapidly. And then they'll be in the same position as, say, Python - no support contract but it does what you want. Java is only growing, on both the server and desktop, and is gaining a lot of value with new languages (Jython, JRuby,...) and new technologies (JVM optimizations,...). And its license is GPL + Classpath exception, which we can agree is very good. So as long as the value of Java is high, it will be ported.
That may be the most misinformed thing I have heard in recent weeks. Have you actually *written* any applications in C with GTK+? Do you have even the slightest idea of how brutal it is compared to Java with Swing or SWT?
You can use C++ with gtkmm which improves matters a lot, but then you get the problems of C++. Anyone who seriously thinks C++ isn't a bad language design doesn't know what they're talking about. There are so many trivial ways that everything can go horribly wrong, almost all of which are completely solved in the Java language and platform.
It is even more difficult to write fast C++ code, requiring a lot of manual decision making about inlining, copy constructors, references vs values, when to use reference counts, when to make things virtual, etc. And if you get everything absolutely right, you'll *still* be beaten by JVM6 which has very powerful runtime optimizations like escape analysis and lock coarsening. Not to mention J2SE is a guaranteed base library which includes scalable networking, threading, user interfaces, and database abstraction.
Yeah, Java is not the best language, but it's a far sight better than C++. You don't know until you write a whole bunch of code in many languages. Just don't even argue about it.
They say time passes slowly when you're suffering, so I expect many people have racked up much more than 15 years of.NET experience. And they're also the ones who do not want to apply for a job that requires such a level of soul-crushing endurance.
Scenario: You're a CIO doing a deployment of UNIX applications, and you want to be absolutely sure you deploy a UNIX. You now have four major vendors to choose from. Apple being one of those vendors gives it access to that niche market. It may not be such a big deal, but it'll probably pay for itself very quickly.
And from all I've heard, it's not a bad OS at all, so having yet another real UNIX is creating even more resistance to Windows in the server space. Real standards go a long way. It would be nice to get a Linux distribution compliant and certified. Does Debian have a chance, money aside? I for one welcome our certified overlords.
I think the problem is that he's smart. By definition, most people fall into average or downright stupid categories of intelligence, and for them even something simple is too complicated. I agree that, now, many Linux distributions are a dozen times easier to use than Windows, provided they have support for the hardware anyway. But the actual need to *install* Linux is what kills it for many people, especially those who don't have access to patient geeks. And even after install, the vendor-lock of Microsoft almost guarantees there'll be at least one piece of hardware which does not work completely, or one software requirement that will be sub-par.
Pre-installs are going to solve a lot of this. Simultaneously we'll have out-of-the-box installs of Linux with certified hardware compatibility, and as the market grows, there'll be a significant incentive for hardware companies to start writing useful drivers. Dell has kick-started the latest push, and other companies insist they're getting onboard too. Coupled with the probable defeat of OOXML in government bodies, Windows lockin is firmly on the way out.
Oh I'm well aware of light WMs, having used them myself for years before finally deciding KDE was more convenient. I don't need graphical apps much (Eclipse + Firefox is plenty), but as soon as I started looking about for office suites, etc. it turned out KDE often had the best of breed, and well integrated to boot. So if I was going to run mostly KDE applications, the memory footprint of running kwin + kicker instead of fluxbox just doesn't seem like such a big deal.
KDE 3.5 performs well even on a lousy 800Mhz P3 with 256MB RAM, in a default Kubuntu Feisty deployment, and all of my production machines are a lot more powerful than that example. I'm way past the point where I can argue about resource usage as a factor in deciding a desktop environment. And even if KDE is heavier than even XFce, it's a lot more useful.
I'm pretty sure just the marketing budget was more than 6 billion. The real price for Windows Vista is human progress.
This may be difficult for some to understand, but Linux and projects like it don't need to make money, because they make wealth. Any improvement to a Linux system potentially improves the lives (and consequently productivity, efficiency, etc.) of its primary and secondary users, that is, the ones sitting on Linux machines and even the ones sitting on client machines accessing Linux servers. In general, you don't have to pay for the update, so you get it more or less free.
IBM, Red Hat, etc. know that this model is great for them, because Linux systems are developed collaboratively by pretty much the whole planet, to varying degrees. The companies get improved software for free, and improve it themselves as well, and fuel the ecosystem that makes it all practical. And at all steps along the way, everybody benefits. Even Microsoft couldn't survive in a true Microsoft monopoly, because, well, have you ever *used* a Windows Server?
Again with the 'Java sucks'. Who cares? It's still useful technology and if we're going to use a managed bytecode platform, it should be the open one, not the one overlorded by Microsoft.
Mindshare has been taken from the portable and libre Java platform, which could have been used for GNOME and KDE to their advantage. (Though KDE doesn't really care since their C++ stack is already at least as good as Java in most regards). Mono is barely complete, does not perform well, has unknown patent liabilities, and limited implementation on non-Linux platforms. It's poisoned GNOME instead of improving it. Now many new widgets are Gtk# widgets instead of GTK+ widgets.
It could have been worse: MicroSun Inc. SolarOS 7.5.2.9 Gutsy Leopard Release Candidate (aleph-null)
Everybody knows that every mainstream operating system markets itself via a name. Leopard, Vista, Gutsy, whatever. The numbers are just a form of serialisation key.
...). Then in a few years they fix the product up to basic usability, by which point the 'trendy' name is even more bland. In the same sort of time span, would we really care to hear about "leveraging Windows 2000 technology"? Why is it ok if it's Vista instead?
// tangent
tangent {
Apple has a similar problem, which is that their numbering will be exhausted soon, with 10.9 being the last 10.x release. Then they *have* to move to 11.x, and eventually it'll be 100 and no longer string-sort desirably. Who cares? Not I.
Microsoft has an even bigger problem, which is that their naming has always sucked. They used to use codenames but still tacked on varying combinations of numbers, letters and years. Now they just change the codename at the last minute, and release that as a product (WinFX, Longhorn,
}
Ubuntu does this too, where 7.04 means "month 4 of year 2007". It's not very obvious.
True, but the trend is towards their defeat, by the combined pressure of free software and the surprisingly powerful Apple force. And the Apple force is deliberately not poised for commodity position, relying on proprietary, vendor-locked hardware. We're not through with Microsoft yet, but the situation now is much better than in 1999, even with the years of inertia building.
Lots of the biggest companies have already switched to Linux in critical positions, and this trend is only increasing, and the big companies end up setting examples for the little companies. It'll all happen, sooner or later, and I'm just glad that, right now, 'most of us' can already run Linux with high confidence.
Besides, speaking of WWII, the (reasonably) free market of the US won. It's only lately that the US has declined to abysmal levels of deficit and sanity, due in no small part to the kind of market practices that make Microsoft possible to begin with. The freest market tends to win, and open source may be the next big victor. Maybe I sound a bit too ideological saying that.
Why do you think Microsoft is scrambling for OOXML standardization? Because the document format lockin is a huge, huge part of Microsoft's monopoly strategy. If they're forced to be an equal player in the office suite space, making Office largely replaceable, then Windows is largely replaceable too. When Linux + KDE + Firefox + OpenOffice.org can replace a Windows + Office + IE setup with lower costs, minimal training and solid vendor support (Canonical, Red Hat, ...), how much incentive is there to run Windows any more?
Gradually the government switches, corporations switch, and finally users switch. The numbers indicate it's happening anyway, and the format war is just going to nail the coffin on Microsoft's monopoly. They never even had a monopoly on servers, gaming technology, etc. so the office is their last stand, and in a matter of days it will be confirmed that they have lost that too.
And of course, as the demand for Linux installations grows, and more vendors sell pre-packaged Linux, then hardware contracts will also require useful drivers or even documentation, and the hardware situation will be largely solved too. Sit back and relax, freedom has won and the liberation continues as planned.
You've missed an important reality of FOSS development, which is that most projects have a core team (or, often, a Benevolent Dictator) which decides everything. No matter how much the users might want, that core team still decides what gets implemented and widely deployed. Look at Python vs Ruby - they're competing in a very similar space, and both growing in different directions, with uses for both of them. They simply cannot become one project without losing their individual advantages. But they can co-exist rather nicely, and cross-pollinate ideas that are compatible with both.
Linux has Linus as the benevolent dictator. Linux is freakin' awesome, but other projects do things differently, and can often justify them one way or another. If these projects are allowed to bring those ideas into reality, and demonstrate their value, Linux could copy the ideas.
Look at BSD's kqueue, spawned in FreeBSD. It's really good. Around the time it was spawned, Linux still had poll, and then later epoll, but epoll isn't that great. Now Linux is getting new event notification systems, of varying sanity, because kqueue has shown it can be done much better, even if the Linux guys don't quite agree with it in its entirety.
For all we know, Linux might end up re-architecturing to have natural SSI like DragonFly plans to have. DragonFly can be a great proof of concept. And if, a few years from now, the market situation is such that implementing drivers, software support, etc. is easy, the developer resources can focus on making a competitive, usable product instead of playing catchup with basic hardware support. We'll see an explosion of useful, interoperable operating systems, that would have otherwise died just trying to be runnable at all. *Especially* with virtualization platforms reducing the amount of code necessary to get a live kernel, and improving debuggability, deployment flexibility, etc. The mere anticipation floors me.
Allow me to clarify. The JVM currently has a lot of clever optimizations like lock coarsening. It's proving it's pretty smart. Now, imagine if the JVM could detect a certain procedure is doing a LOT of user-kernel switches, and therefore can be moved to kernel space. When it needs to communicate memory back to userspace, it can be moved back in, ideally, only one switch. This is a pretty simple optimization which has a lot of room for improving performance. Some processes like servlet containers and their servlets could, in theory, be moved entirely into kernel land, without having to program any kernel code at all. I wonder if this is planned for any JVM?
Sun has a lot more than just Java software, and has a lot to gain from having firster-than-first class support for Java in the operating system (e.g. kernel-level code caching, pushing code into kernel space, etc). Linux can technically have it all now too, with Java being GPLv2'd. But really, Sun has packages like StarOffice, which needs a lot more than just a JVM.
I encourage more competition for Linux. A free market is built on competition. Now that Microsoft is becoming a competitor rather than an oppressive regime, it'll be naturally selected out and increasingly powerful Unix systems will dominate the market. A Linux monopoly is not a good thing either, and whether BSDs or Solaris share the market, we all stand to benefit.
It'd be even better if we had some license consolidation, but hey, that's a pipe dream. I'd rather have license-incompatible code than no code at all because people refuse to use GPLvX.
Various flavors of Linux can take a flying leap. The mainline Linux kernel is generally in very strong shape, and I say this after spending years loathing many bad choices in Linux. Many mainstream distributions are doing very well too. Most of all, Linux does not compromise basic performance for "rights management", which Vista does.
Vista's worst engineering decision is to make a system optimized for restrictions and money-farming, not for user experience. The WGA breakdown is the best example. The legitimate users who paid a ridiculous sum to use Vista's 'ultimate' features (you know, the ones which are free in Linux and at least standard in MacOSX) had their systems crippled, and the pirates who bypassed WGA were not even affected. The whole feature does exactly the opposite of what it was supposed to do. That's failed engineering, any way you look at it.
Once again, over-complication and stupid engineering lead to a humiliatingly bad operating system. It's obvious it didn't receive a modicum of real testing.
It's deliberate. The standard is just a distraction, to keep competitors busy trying to implement it, while documents are actually being created in the Office 2007 variant of OOXML. A few months of legacy almost guarantees a transition to the real OOXML would be an uphill battle, especially with no real documentation of how *either* format works. So even with a supposed 'standard' and a near-enough implementation, the vendor lockin is just as strong as it was with the binary formats.
What, like how Windows has the entire X11 analogue backend and graphics drivers in the kernel? And how it has to search for up to several minutes for drivers every time you plug a USB device into a new position on the bus, as opposed to Linux' sub-second response even when it has to load modules?
Windows is like the poster child for failed engineering. Even DirectX requires orders of magnitude more kernel/user switches than OpenGL, and they're trying to hack around it any way they can. It's just humiliating.
What, falsifying video evidence for court isn't illegal? Surely you jest.
I know, it shits me too, and I'm hoping the GPLness will mean that the Sun JRE is ported to more platforms and the problem is solved that way.
GCJ does not require source though, but it does require Classpath to contain the right parts. Swing is pretty poorly supported, but SWT is its own code so that works just fine. Azureus is based on SWT, so maybe it has a chance. Has anyone tried GCJ on Linux/PPC? It's already done for x86 and amd64, as my Ubuntu package lists suggest.
$ aptitude search azureus
p azureus - BitTorrent client
p azureus-gcj - BitTorrent client (native code)
For one thing, gcj can compile Java source and bytecodes to native code, which AFAIK works for those architectures even in the complete absence of a Sun JVM. But then, wherever that runs, so does gij. It's not as good as Sun's, but it does work for a lot of applications.
...) and new technologies (JVM optimizations, ...). And its license is GPL + Classpath exception, which we can agree is very good. So as long as the value of Java is high, it will be ported.
For another, I'd rather have to run a qemu for x86 JVM than code C + GTK for any usefully large application. I would be a lot happier using, say, PyGTK. But that's not what I replied to, which was a moronic suggestion that applications should actually be written in C + GTK. There are a lot of better compromises like PyGTK, but unfortunately that's still not the same market as Java, which is for making applications easy to develop and deploy and fast to run.
Call me optimistic, but with a more liberal license on the JVM, I think new unofficial ports will spring up rapidly. And then they'll be in the same position as, say, Python - no support contract but it does what you want. Java is only growing, on both the server and desktop, and is gaining a lot of value with new languages (Jython, JRuby,
That may be the most misinformed thing I have heard in recent weeks. Have you actually *written* any applications in C with GTK+? Do you have even the slightest idea of how brutal it is compared to Java with Swing or SWT?
You can use C++ with gtkmm which improves matters a lot, but then you get the problems of C++. Anyone who seriously thinks C++ isn't a bad language design doesn't know what they're talking about. There are so many trivial ways that everything can go horribly wrong, almost all of which are completely solved in the Java language and platform.
It is even more difficult to write fast C++ code, requiring a lot of manual decision making about inlining, copy constructors, references vs values, when to use reference counts, when to make things virtual, etc. And if you get everything absolutely right, you'll *still* be beaten by JVM6 which has very powerful runtime optimizations like escape analysis and lock coarsening. Not to mention J2SE is a guaranteed base library which includes scalable networking, threading, user interfaces, and database abstraction.
Yeah, Java is not the best language, but it's a far sight better than C++. You don't know until you write a whole bunch of code in many languages. Just don't even argue about it.
Because wrapping an open source CPU around street furniture is great advertising. I think you have the wrong article.
They say time passes slowly when you're suffering, so I expect many people have racked up much more than 15 years of .NET experience. And they're also the ones who do not want to apply for a job that requires such a level of soul-crushing endurance.
Scenario: You're a CIO doing a deployment of UNIX applications, and you want to be absolutely sure you deploy a UNIX. You now have four major vendors to choose from. Apple being one of those vendors gives it access to that niche market. It may not be such a big deal, but it'll probably pay for itself very quickly.
And from all I've heard, it's not a bad OS at all, so having yet another real UNIX is creating even more resistance to Windows in the server space. Real standards go a long way. It would be nice to get a Linux distribution compliant and certified. Does Debian have a chance, money aside? I for one welcome our certified overlords.
I think the problem is that he's smart. By definition, most people fall into average or downright stupid categories of intelligence, and for them even something simple is too complicated. I agree that, now, many Linux distributions are a dozen times easier to use than Windows, provided they have support for the hardware anyway. But the actual need to *install* Linux is what kills it for many people, especially those who don't have access to patient geeks. And even after install, the vendor-lock of Microsoft almost guarantees there'll be at least one piece of hardware which does not work completely, or one software requirement that will be sub-par.
Pre-installs are going to solve a lot of this. Simultaneously we'll have out-of-the-box installs of Linux with certified hardware compatibility, and as the market grows, there'll be a significant incentive for hardware companies to start writing useful drivers. Dell has kick-started the latest push, and other companies insist they're getting onboard too. Coupled with the probable defeat of OOXML in government bodies, Windows lockin is firmly on the way out.
Oh I'm well aware of light WMs, having used them myself for years before finally deciding KDE was more convenient. I don't need graphical apps much (Eclipse + Firefox is plenty), but as soon as I started looking about for office suites, etc. it turned out KDE often had the best of breed, and well integrated to boot. So if I was going to run mostly KDE applications, the memory footprint of running kwin + kicker instead of fluxbox just doesn't seem like such a big deal.
KDE 3.5 performs well even on a lousy 800Mhz P3 with 256MB RAM, in a default Kubuntu Feisty deployment, and all of my production machines are a lot more powerful than that example. I'm way past the point where I can argue about resource usage as a factor in deciding a desktop environment. And even if KDE is heavier than even XFce, it's a lot more useful.