MS makes money selling the box. They don't have to sell it as a loss leader like the console companies do. They can lure the customers with cheaper games, althouh their box is not cheaper that Sony's. Why do I play PC games? BECAUSE THEY ARE CHEAPER, so much cheaper that many people prefer bying a budget PC to run them, even though even a budget PC costs three times the price of a modern console. Not to even mention the synergies of an X-Box owner to the greater PC culture.
MS makes money selling the OS. The game box supports their other Windows CE business, and MS can even opt for letting cloners take over the X-Box hardware business, just supplying the OS for them, like for other PCs. Microsoft is mostly in the accessories business filling holes that other manufactures don't fill, and educating the market to force feedback sticks etc... X-Box and accessories are not critical as hardware sales for MS. But they are magnificent way to expand and develop MS software target markets.
And last but least MS definitively makes money selling games. They are a big player in PC gaming, and they hope to be big in the global future of gaming. They need a wide platform population to exist, to win the game for game platforms, and win it to Windows CE.
(BTW, I think both Linux crowd, MS and Sony are all wrong. What we need is a virtual pseudocode OS/device/network/billing/security/authentication/ billing/copyright abstraction layer to develop games and all other software for all hardware platforms, and thus free hardware innovation. This is what Java promised, what Lucent's Inferno perfectly implemented, and what nobody has been able to market yet. But it will happen.)
Linux installation and configuratioon could be easier, but it is quite manageable already.
KDE and GNOME as application launchers and file system browsers are of limited functionality. How much time does anyone on ANY computer spend browsing files? Minutes a day at most!
Window managing is a little more important, bacause it is needed all the time. But we have learned to abstract window management away from applications, and users can pick their managers. Windowing is used so much, that it makes sense to learn whatever you feel is best. So no problem here, only a plentitude of choice.
But then comes the real problem. The applications. They are not polished enough. Linux is an intellectually open platform which has gathered ideas from all of the history of computing. So applications have very different interfaces, and being a perfect genius with installation of the OS and tweaking of KDE/GNOME does not help a bit, when it comes to switching off automatic spell checking in Wordperfect.
On MS platforms the market is so huge, and the money involved so big, that raw competition has evolved us mostly easy to use applications. Linux applications are not numerous enough, and have not enough critical users. So the real user feedback problem is with appplications, not with basic OS utilities or UI guidelines. More Linux applications will bring more users, and more feedback. Start with more stable, flexible and efficient business/entertainment/non-programmer applications, and they will be made easier by feedback when they have first been made at all.
Corinne's post explained one of the reasons that I have always disliked inheritance, and preferred flat C like modularization.
The other reason is that somehow OO concepts have remained too fancy to use in a constrained way, thus being a dangerous source of ill-handled unnecessary complexity in practice.
Here I'd like to point out my favourite environment: Bell Labs Plan 9 / Inferno. I think it was mostly the main architect of the system Rob Pike, who kept to the design principle, that OO the traditional way was mostly harmful.
Pike and friends made a radicallly simple design choice. The Limbo programming language used in Inferno did not have inheritance. The idea was to keep fine grained module dependencies within one conceptual framework: exported functions, types, ADT's and variables, much like in Modula-2 originally.
But they recognized the need to modify existing funtionality of larger scale functionality without changing existing code statically. So they invented this ingenious mechanism for OS level objects and inheritance: synthetic or procedural file hierarchies, per process name spaces and stacking of these objects to inherit each other in a cotrolled way.
So in Inferno and Plan 9 you can program your objects in any language that you want, be it OO or not, and then "stack" them dynamically, even distributed on the net, producing exactly the effect of inheritance.
Inheritance is a great mechanism when used with care and constrain, preferably between a few easily manageable high level concepts. It is bad, if it is used as an ubiquitous low level programming concept cluttering all your code with strange propagating dependencies.
The essence of Simon's statistical argument is this:
Historically there always exists a multitude of alternative ways and technologies to feed us, cloth us and keep us warm. Some of them are more elaborate, some less, i.e. expensive or cheap.
Historical data shows that things have become less scarce and we have become more productive.
We have found new solutions faster than we get into new trouble with the old ones. Everything, including the chance to enjoy a healthy and a pleasant environment with no disease or uncomfort, has become cheaper and easier. These are all different sides of the same economical facts.
Resources are the non-destroyable in theory (physics), and infinite in practice (economics). We don't have to bet on a technological salvation in the future, just on modest natural continuity of our history.
We will not consume matter/energy into nothingness, we will enjoy it ever more clever ways! "Sit back and enjoy the afternoon!", like the Wired editor concluded his article on Julian Simon.
MS makes money selling the box. They don't have to sell it as a loss leader like the console companies do. They can lure the customers with cheaper games, althouh their box is not cheaper that Sony's. Why do I play PC games? BECAUSE THEY ARE CHEAPER, so much cheaper that many people prefer bying a budget PC to run them, even though even a budget PC costs three times the price of a modern console. Not to even mention the synergies of an X-Box owner to the greater PC culture.
MS makes money selling the OS. The game box supports their other Windows CE business, and MS can even opt for letting cloners take over the X-Box hardware business, just supplying the OS for them, like for other PCs. Microsoft is mostly in the accessories business filling holes that other manufactures don't fill, and educating the market to force feedback sticks etc... X-Box and accessories are not critical as hardware sales for MS. But they are magnificent way to expand and develop MS software target markets.
And last but least MS definitively makes money selling games. They are a big player in PC gaming, and they hope to be big in the global future of gaming. They need a wide platform population to exist, to win the game for game platforms, and win it to Windows CE.
(BTW, I think both Linux crowd, MS and Sony are all wrong. What we need is a virtual pseudocode OS/device/network/billing/security/authentication/ billing/copyright abstraction layer to develop games and all other software for all hardware platforms, and thus free hardware innovation. This is what Java promised, what Lucent's Inferno perfectly implemented, and what nobody has been able to market yet. But it will happen.)
Linux installation and configuratioon could be easier, but it is quite manageable already.
KDE and GNOME as application launchers and file system browsers are of limited functionality. How much time does anyone on ANY computer spend browsing files? Minutes a day at most!
Window managing is a little more important, bacause it is needed all the time. But we have learned to abstract window management away from applications, and users can pick their managers. Windowing is used so much, that it makes sense to learn whatever you feel is best. So no problem here, only a plentitude of choice.
But then comes the real problem. The applications. They are not polished enough. Linux is an intellectually open platform which has gathered ideas from all of the history of computing. So applications have very different interfaces, and being a perfect genius with installation of the OS and tweaking of KDE/GNOME does not help a bit, when it comes to switching off automatic spell checking in Wordperfect.
On MS platforms the market is so huge, and the money involved so big, that raw competition has evolved us mostly easy to use applications. Linux applications are not numerous enough, and have not enough critical users. So the real user feedback problem is with appplications, not with basic OS utilities or UI guidelines. More Linux applications will bring more users, and more feedback. Start with more stable, flexible and efficient business/entertainment/non-programmer applications, and they will be made easier by feedback when they have first been made at all.
Corinne's post explained one of the reasons that I have always disliked inheritance, and preferred flat C like modularization.
The other reason is that somehow OO concepts have remained too fancy to use in a constrained way, thus being a dangerous source of ill-handled unnecessary complexity in practice.
Here I'd like to point out my favourite environment: Bell Labs Plan 9 / Inferno. I think it was mostly the main architect of the system Rob Pike, who kept to the design principle, that OO the traditional way was mostly harmful.
Pike and friends made a radicallly simple design choice. The Limbo programming language used in Inferno did not have inheritance. The idea was to keep fine grained module dependencies within one conceptual framework: exported functions, types, ADT's and variables, much like in Modula-2 originally.
But they recognized the need to modify existing funtionality of larger scale functionality without changing existing code statically. So they invented this ingenious mechanism for OS level objects and inheritance: synthetic or procedural file hierarchies, per process name spaces and stacking of these objects to inherit each other in a cotrolled way.
So in Inferno and Plan 9 you can program your objects in any language that you want, be it OO or not, and then "stack" them dynamically, even distributed on the net, producing exactly the effect of inheritance.
Inheritance is a great mechanism when used with care and constrain, preferably between a few easily manageable high level concepts. It is bad, if it is used as an ubiquitous low level programming concept cluttering all your code with strange propagating dependencies.
Vincent killed nobody.
The essence of Simon's statistical argument is this:
Historically there always exists a multitude of alternative ways and technologies to feed us, cloth us and keep us warm. Some of them are more elaborate, some less, i.e. expensive or cheap.
Historical data shows that things have become less scarce and we have become more productive.
We have found new solutions faster than we get into new trouble with the old ones. Everything, including the chance to enjoy a healthy and a pleasant environment with no disease or uncomfort, has become cheaper and easier. These are all different sides of the same economical facts.
Resources are the non-destroyable in theory (physics), and infinite in practice (economics). We don't have to bet on a technological salvation in the future, just on modest natural continuity of our history.
We will not consume matter/energy into nothingness, we will enjoy it ever more clever ways! "Sit back and enjoy the afternoon!", like the Wired editor concluded his article on Julian Simon.