But this does not mean that his conclusions are the truth. They might not might not be, but the number or quality of cititions is irrelevant to that determination.
Re:the code of conduct for free software distribut
on
Drafting GPL3
·
· Score: 3, Interesting
You seem to be confusing freedom with privilege. Maybe you just don't have a dictionary, so I'll clue you in. Freedom is an absence of restriction. A free end of a rope is the end that is unrestricted. Free verse is poetry unrestricted by rhyme or meter. A free man is one unrestricted by external obligation to another.
There is no freedom to own slaves, because owning a slave is a restriction on the slave. Your freedom to swing your fist ends at my nose, because once it connects with my nose you are restricting me.
There is no need to limit (restrict) freedom in order to promote freedom. Those who claim otherwise are either confused, or mistaking their privileges for freedoms. Being able to restrict how your software can be distributed is a *privilege* provided by the state via copyright, not a freedom.
While the GPL does remove a heck of a lot of restrictions from the software, its restrictions are designed to protect the exclusive *privileges* of the author. The GPL author wants the license terms to apply to third parties, so he ensures this through privilege. He does this by removing freedom.
It's sort of like after the slaves were freed in the US. Several laws were passed to retain a tiny bit of the former privilege, to ensure that former slaves didn't get to uppity and behave in ways the "liberators" didn't want them to behave. It's why we had a civil rights movement a century later. The slaves should have been freed 100% back then, just as software should be 100% free today.
Decades ago there was this thing called "conservation". It wasn't a religion, but merely a common sense approach to the world. Don't litter, don't waste, enjoy nature, take care of the world. Then along came this religion in the 70s called "environmentalism" and it all changed.
Noam Chomsky is a LINGUIST. I will (and do) trust him on matters of linguistics. I will even go so far as to trust him on matters of cunilingus. But I won't trust him on scientific, technical, engineering, or manufacturing matters, no matter how many hundreds of citations he makes in his texts.
Citations are bullshit. Go grab any UFO text, and see all the hundreds of citations it will have. Hell, it will even cite the US Air Force as proof aliens crashed at Roswell! Never judge a text, even a Noam Chomsky text, by the number of citations.
If you read even further into the article before you jerk your knee, you'll find that they aren't using any new substances. The "nanotech" merely allows them to use the same stain resistant treatment more efficiently. It allows them to use LESS. The Teflon(tm) on the pants is the same substance on your Dupont StainMaster(tm) Nylon(tm) carpet that your kids are rolling around on.
Shout as much as you want, the luddites won't listen. As liberal and leftist as the environmental movement may seem, they're they real conservative reactionaries, because they instinctively fear the new and reject any change. Even at the cost of humanity's extinction, they way some of them act towards solutions to famine and plague.
The world is HEALTHIER today, and CLEANER. By every available measurement, the environmentalists should be ecstatic at their success, but instead they remain in their gloom and doom depression. We have less smog, more forests, and wildlife populations booming to the extent that mountain lions are roaming suburbia. But to the environmentalist things are getting worse. We're all going to die slow miserable deaths, they think, even though life expectancies are increasing every year.
Their concern isn't over the environment so much, as it is over adherence to their religion. What else can explain their strident insistence on recycling paper with bleaches and other nasty chemicals, instead of using virgin paper from farm grown trees? What else explains their hatred of affluence, when any idiot can look around the world and see that affluent societies are cleaner than impoverished societies.
So? My house had to be created too. My dinner as well. Why aren't these copyrighted? I will grant that the written expression of a program can be copyrighted. But you shouldn't be able to copyright the program itself, particularly the compiled copy resting on my harddrive or the ephemeral binary residing in memory as it executes.
I used the work "implementation" because I think that's the key. Software may be created, but is it an expression of creativity? If I can copyright software just because I can type it out, then why can't I copyright a command I type in my shell? Why can't I copyright the sequence of keystrokes I use to microwave my potstickers?
Again, I didn't say I necessarily agreed with this view, only that it's something to think about if your mind hasn't already been nailed shut by the propaganda of the BSA and FSF.
Funny how all those bad user interface examples at the Hall of Shame come from GUIs derived from Mr. Raskin's ideas. I'm beginning to suspect that Mr. Raskin is the one to blame for all of this.
Intuitive interfaces? What the hell was he smoking!
Yup, it seemed like only yesterday when computers only had command line interfaces and you needed to either be educated in the system, or willing to read the man pages.
It had an actual interface that was somewhat intuitive (the keyboard). While not perfect, at least the 'A' key was always located in the exact same position on every keyboard. Compare that to today's MSWord icon. It used a reasonably accurate typewriter/television metaphor, instead of the absurd "desktop" metaphor everyone insists on today. And the concept of issuing commands was well known. There may have been a huge set of commands to learn, but each was in itself rather simple. Compare that to today's software which tries to do everything in every application.
Using the wacky house to represent software user interfaces is an erroneous analogy. Houses are three dimensional entities that the user can literally walk through. It contains objects and interfaces that the user can actually manipulate with his/her hands. Houses are conceptually simple, even at the brick and nail level. Software, on the other hand, particularly *desktop* software, has to present a series of fake metaphors to the user. Has there EVER been anything in the real world that has a pointing interface? No! yet somehow all the pundits want software to be completely intuitive to untrained users. Looking at the few "intuitive" software interfaces available, like your ATM machine, one finds that the inteface has become so simplified, and the functionality so restricted, that they cannot possible scale up to general purpose computing devices. And you STILL see people getting confused by them.
The first example in the article was the doorbell, which the user had to double push before it worked. As if somehow that was an analogy to an icon on the desktop. Huh? Has the author been smoking crack? A doorbell is an ACTUAL BUTTON. You can ACTUALLY push it! It goes in and out. If it exists, it's ALWAYS in the same location on EVERY door. There is no similarity to an application icon. Those who think otherwise have been befuddled by the same bad metaphors they insist are intuitive. An icon is not an aluminum, copper and plastic button attached to a buzzer. It's a tiny picture on a flat non-manipulable video surface. It's never in the same place on two different desktops. It has multiple functions (try dragging the doorbell to galvanized steel trashcan in the back yard). The doorbell and doorknob (and optional mailslot) are the only "controls" on or immediately near a door. A computer desktop on the other hand, has dozens if not hundreds of controls.
There is one area where software has a better interface than a house though. And that's in the area of error reporting. Even the dumbest of error messages, like "non-existant state handle", is far superior to the error messages a house provides. A broken doorbell won't tell you that a rat chewed through the wires, it will intead silently not work. The floor won't tell you that termites have made it unsafe to walk on, but instead will ungracefully collapse underneath you with not even the barest hint of an assert() message.
People need to stop treating computers like the should/ought/must be simple appliances. Computers are not simple, they are complex systems. Every time you install software, even if it's something as trivial as a screensaver, you're admitting you want a more complicated system. People also need to stop thinking that the desktop metaphor is in any way accurate, and that it in no way corresponds to real world desktops.
People have to spend considerable time learning how to drive a car. In nearly every locale they have to licensed as well. But a car is so much simpler than a computer they might as well exist in two different universes.
And the object-oriented stuff shows some potential. Being able to pull data from a pipe much more easily (e.g. without a regular expression). Much saner sorting. Blah blah blah.
But if you need that level of data control, wouldn't it make more sense to use a real programming language like Perl, Python or Ruby? A shell language should be simple. Flexible, yes, but still simple. If you need a higher level language within a shell, just put a shell around an existing high level language.
I've found that the Windows-only developers in my work are very impressed by the simple things I can do with Perl (like writing install scripts, manipulating config files, etc). Therefore I would think a perlsh would go over fantastic with the Windows crowd. Heck, even the ability to write plain vanilla bourne shell scripts should be welcomed.
So why develop one in the first place? Just use ksh. There's already a proprietary version to license, or a public domain version to use, neither of which gets you anywhere near GPL software. And on the plus side you get instant standardization.
Isn't there already a shell in their Unix tools package? Just use it!
I once heard a good argument that software should be patented INSTEAD of copyrighted.
1) Copyrights protect creative expressions, but software isn't a creative expression, it's a technical implementation. Doubly so for binaries.
2) A technical implementation is a method. Methods can be patented. So patent the method of implementing an algorithm, not the algorithm itself. This doesn't prevent anyone from writing their own implementation, as long as it's different from the original.
I don't agree with the above, personally, but it is interesting to think about. If you unable to think about it, you're being too dogmatic on an issue undeserving of dogmatism.
Linux isn't writtin in ANSI/ISO C because it insists on using GCC extensions. But there's no reason it couldn't be. The BSD kernels are all ANSI/ISO C. Even though they can't call fopen() from the kernel. Why? Because the standard library is distinct from the language! This is a concept that Java just can't get through it's head.
A C/C++ compiler is totally ignorant of any Standard Libraries. It treats a call to fopen() no differently than a call to my_non_standard_function(). This is why C and C++ are so popular with embedded developers, because they aren't saddled with extra baggage. Yes, Java is being used in some cellphones. According to a friend of mine who writes embedded Java for Nokia, it's one of the biggest mistakes the cell phone industry ever made.
The people who think this way are the same people who think that Java/.NET code can't possibly have any security issues because it can't possibly have any buffer overflows.
Some Java and.NET implementations compile to bytecodes, others don't.
And the ones that don't still require a runtime. I would actually switch to Java for a lot of things if I could get one that would compile to native code and didn't require anything more than a standard libc.
And as far as the Java device driver, check out...
Except that it doesn't run on my OS. It doesn't run on any of my friends' OS. Heck, it doesn't even run on Sun's OS, and they own Java! JavaOS is like the Lisp Machine: It's a nice concept but no one really uses it.
p.s. Without having to buy the book, and since you seem to be the expert on this, how does JavaOS manage to bootstrap the VM? Does it cheat and use a C/C++ layer on top of Mach?
So we're back to, is this a real problem for users, or do package managers just really call to the software developer's desire for maximum efficiency even at the cost of a complex system which must be constantly maintained?:)
For the same software, I've created an installer for Windows, port/package for FreeBSD, and a OSX app bundle. The hardest was of course the Windows installer. The next hardest was the app bundle. It would have been easier if my app were an Xcode app, but it wasn't, so I had to do a lot of fiddling with the bundle internals.
I'm not against the app bundle concept. It's perfect for some things. Some people are pushing hard for similar things in Linux/Unix (such as the rox desktop). But it's only useful for end user applications. Which are really only a small percentage of the total software on a system. For most stuff you either need it to come with the system or you need to install it. Think of a web server. I'm assuming Apache comes with OSX. If it does, is it configured started automatically? If it doesn't, is a drag-n-drop to the desktop going to properly install it? Ditto for any other service. Don't like that example, then what about screensavers. At the minimum you have to at least drag-n-drop them to a startup directory. And what about languages like Java, Python, Ruby and Ocaml (OSX can't possibly have every language installed by default)? Are they going to get integrated with Xcode just by dropping them on a user's desktop?
Apple has done a fantastic job making their computer an appliance. But sometimes you need more than a one-size-fits-all appliance.
I wish some of these people bitching C/C++ would try to write a device driver in Java, or.NET. C and C++ were designed for writing system software, and the funny thing is, they're still good for writing system software. The "religious" languages were designed for writing high level applications, which is why the suck for writing anything at a lower level.
It may "magically" work (when it does work without effort, and in my experience it doesn't always work), but it doesn't change the fact that Mac developers don't need to deal with dependency systems and Mac users never even have to fathom the possibility of a missing/conflicting/etc. dependency.
My point is that you don't have to worry about it under Linux/BSD/Unix either. If you do, you have a bad package manager. Sure the system may break, but you can't tell me OSX is so perfect it's never broke before.
OS X is better because you never deal with adding URLs to a repository, for starters.
Who said anything about dealing with URLs? Get your mind off of apt-get, because that's just one of several dozen package managers.
In short, on OS X there's a clear line between what is available on any Mac OS X system, and what you have to bundle yourself. Every software component is one or the other.
I distribute a Mac.app package. It includes the Qt library. Why? Because it's not available natively. It would be VERY NICE if there were a native way to check if Qt was already available instead of adding yet another copy, but I've found no way to do it without using a script or other form of (evil windows-like) installation program.
Now just one or two programs installing extra copies of Qt is fine. But what about dozens? That starts to add up. Restricting development tools to only what Apple distributes is an extreme hindrance to porting software. It's almost like Apple never expected anyone but themselves to write a common application component.
his references are generally of high quality
But this does not mean that his conclusions are the truth. They might not might not be, but the number or quality of cititions is irrelevant to that determination.
You seem to be confusing freedom with privilege. Maybe you just don't have a dictionary, so I'll clue you in. Freedom is an absence of restriction. A free end of a rope is the end that is unrestricted. Free verse is poetry unrestricted by rhyme or meter. A free man is one unrestricted by external obligation to another.
There is no freedom to own slaves, because owning a slave is a restriction on the slave. Your freedom to swing your fist ends at my nose, because once it connects with my nose you are restricting me.
There is no need to limit (restrict) freedom in order to promote freedom. Those who claim otherwise are either confused, or mistaking their privileges for freedoms. Being able to restrict how your software can be distributed is a *privilege* provided by the state via copyright, not a freedom.
While the GPL does remove a heck of a lot of restrictions from the software, its restrictions are designed to protect the exclusive *privileges* of the author. The GPL author wants the license terms to apply to third parties, so he ensures this through privilege. He does this by removing freedom.
It's sort of like after the slaves were freed in the US. Several laws were passed to retain a tiny bit of the former privilege, to ensure that former slaves didn't get to uppity and behave in ways the "liberators" didn't want them to behave. It's why we had a civil rights movement a century later. The slaves should have been freed 100% back then, just as software should be 100% free today.
Decades ago there was this thing called "conservation". It wasn't a religion, but merely a common sense approach to the world. Don't litter, don't waste, enjoy nature, take care of the world. Then along came this religion in the 70s called "environmentalism" and it all changed.
Noam Chomsky is a LINGUIST. I will (and do) trust him on matters of linguistics. I will even go so far as to trust him on matters of cunilingus. But I won't trust him on scientific, technical, engineering, or manufacturing matters, no matter how many hundreds of citations he makes in his texts.
Citations are bullshit. Go grab any UFO text, and see all the hundreds of citations it will have. Hell, it will even cite the US Air Force as proof aliens crashed at Roswell! Never judge a text, even a Noam Chomsky text, by the number of citations.
If you read even further into the article before you jerk your knee, you'll find that they aren't using any new substances. The "nanotech" merely allows them to use the same stain resistant treatment more efficiently. It allows them to use LESS. The Teflon(tm) on the pants is the same substance on your Dupont StainMaster(tm) Nylon(tm) carpet that your kids are rolling around on.
Shout as much as you want, the luddites won't listen. As liberal and leftist as the environmental movement may seem, they're they real conservative reactionaries, because they instinctively fear the new and reject any change. Even at the cost of humanity's extinction, they way some of them act towards solutions to famine and plague.
The world is HEALTHIER today, and CLEANER. By every available measurement, the environmentalists should be ecstatic at their success, but instead they remain in their gloom and doom depression. We have less smog, more forests, and wildlife populations booming to the extent that mountain lions are roaming suburbia. But to the environmentalist things are getting worse. We're all going to die slow miserable deaths, they think, even though life expectancies are increasing every year.
Their concern isn't over the environment so much, as it is over adherence to their religion. What else can explain their strident insistence on recycling paper with bleaches and other nasty chemicals, instead of using virgin paper from farm grown trees? What else explains their hatred of affluence, when any idiot can look around the world and see that affluent societies are cleaner than impoverished societies.
False dichotomy. Software has to be created.
So? My house had to be created too. My dinner as well. Why aren't these copyrighted? I will grant that the written expression of a program can be copyrighted. But you shouldn't be able to copyright the program itself, particularly the compiled copy resting on my harddrive or the ephemeral binary residing in memory as it executes.
I used the work "implementation" because I think that's the key. Software may be created, but is it an expression of creativity? If I can copyright software just because I can type it out, then why can't I copyright a command I type in my shell? Why can't I copyright the sequence of keystrokes I use to microwave my potstickers?
Again, I didn't say I necessarily agreed with this view, only that it's something to think about if your mind hasn't already been nailed shut by the propaganda of the BSA and FSF.
Funny how all those bad user interface examples at the Hall of Shame come from GUIs derived from Mr. Raskin's ideas. I'm beginning to suspect that Mr. Raskin is the one to blame for all of this.
Intuitive interfaces? What the hell was he smoking!
Yup, it seemed like only yesterday when computers only had command line interfaces and you needed to either be educated in the system, or willing to read the man pages.
It had an actual interface that was somewhat intuitive (the keyboard). While not perfect, at least the 'A' key was always located in the exact same position on every keyboard. Compare that to today's MSWord icon. It used a reasonably accurate typewriter/television metaphor, instead of the absurd "desktop" metaphor everyone insists on today. And the concept of issuing commands was well known. There may have been a huge set of commands to learn, but each was in itself rather simple. Compare that to today's software which tries to do everything in every application.
Using the wacky house to represent software user interfaces is an erroneous analogy. Houses are three dimensional entities that the user can literally walk through. It contains objects and interfaces that the user can actually manipulate with his/her hands. Houses are conceptually simple, even at the brick and nail level. Software, on the other hand, particularly *desktop* software, has to present a series of fake metaphors to the user. Has there EVER been anything in the real world that has a pointing interface? No! yet somehow all the pundits want software to be completely intuitive to untrained users. Looking at the few "intuitive" software interfaces available, like your ATM machine, one finds that the inteface has become so simplified, and the functionality so restricted, that they cannot possible scale up to general purpose computing devices. And you STILL see people getting confused by them.
The first example in the article was the doorbell, which the user had to double push before it worked. As if somehow that was an analogy to an icon on the desktop. Huh? Has the author been smoking crack? A doorbell is an ACTUAL BUTTON. You can ACTUALLY push it! It goes in and out. If it exists, it's ALWAYS in the same location on EVERY door. There is no similarity to an application icon. Those who think otherwise have been befuddled by the same bad metaphors they insist are intuitive. An icon is not an aluminum, copper and plastic button attached to a buzzer. It's a tiny picture on a flat non-manipulable video surface. It's never in the same place on two different desktops. It has multiple functions (try dragging the doorbell to galvanized steel trashcan in the back yard). The doorbell and doorknob (and optional mailslot) are the only "controls" on or immediately near a door. A computer desktop on the other hand, has dozens if not hundreds of controls.
There is one area where software has a better interface than a house though. And that's in the area of error reporting. Even the dumbest of error messages, like "non-existant state handle", is far superior to the error messages a house provides. A broken doorbell won't tell you that a rat chewed through the wires, it will intead silently not work. The floor won't tell you that termites have made it unsafe to walk on, but instead will ungracefully collapse underneath you with not even the barest hint of an assert() message.
People need to stop treating computers like the should/ought/must be simple appliances. Computers are not simple, they are complex systems. Every time you install software, even if it's something as trivial as a screensaver, you're admitting you want a more complicated system. People also need to stop thinking that the desktop metaphor is in any way accurate, and that it in no way corresponds to real world desktops.
People have to spend considerable time learning how to drive a car. In nearly every locale they have to licensed as well. But a car is so much simpler than a computer they might as well exist in two different universes.
And the object-oriented stuff shows some potential. Being able to pull data from a pipe much more easily (e.g. without a regular expression). Much saner sorting. Blah blah blah.
But if you need that level of data control, wouldn't it make more sense to use a real programming language like Perl, Python or Ruby? A shell language should be simple. Flexible, yes, but still simple. If you need a higher level language within a shell, just put a shell around an existing high level language.
I've found that the Windows-only developers in my work are very impressed by the simple things I can do with Perl (like writing install scripts, manipulating config files, etc). Therefore I would think a perlsh would go over fantastic with the Windows crowd. Heck, even the ability to write plain vanilla bourne shell scripts should be welcomed.
My xterm supports X clipboard for copy and paste. Isn't that good enough?
So why develop one in the first place? Just use ksh. There's already a proprietary version to license, or a public domain version to use, neither of which gets you anywhere near GPL software. And on the plus side you get instant standardization.
Isn't there already a shell in their Unix tools package? Just use it!
I once heard a good argument that software should be patented INSTEAD of copyrighted.
1) Copyrights protect creative expressions, but software isn't a creative expression, it's a technical implementation. Doubly so for binaries.
2) A technical implementation is a method. Methods can be patented. So patent the method of implementing an algorithm, not the algorithm itself. This doesn't prevent anyone from writing their own implementation, as long as it's different from the original.
I don't agree with the above, personally, but it is interesting to think about. If you unable to think about it, you're being too dogmatic on an issue undeserving of dogmatism.
Linux isn't writtin in ANSI/ISO C because it insists on using GCC extensions. But there's no reason it couldn't be. The BSD kernels are all ANSI/ISO C. Even though they can't call fopen() from the kernel. Why? Because the standard library is distinct from the language! This is a concept that Java just can't get through it's head.
A C/C++ compiler is totally ignorant of any Standard Libraries. It treats a call to fopen() no differently than a call to my_non_standard_function(). This is why C and C++ are so popular with embedded developers, because they aren't saddled with extra baggage. Yes, Java is being used in some cellphones. According to a friend of mine who writes embedded Java for Nokia, it's one of the biggest mistakes the cell phone industry ever made.
We couldn't stuff them the old way either, though we could hang bits of fur on the den wall...
Those have installers so that the users don't need to worry about where to drag/drop it.
:-)
Hah! I knew it!
The people who think this way are the same people who think that Java/.NET code can't possibly have any security issues because it can't possibly have any buffer overflows.
Some Java and .NET implementations compile to bytecodes, others don't.
And the ones that don't still require a runtime. I would actually switch to Java for a lot of things if I could get one that would compile to native code and didn't require anything more than a standard libc.
And as far as the Java device driver, check out...
Except that it doesn't run on my OS. It doesn't run on any of my friends' OS. Heck, it doesn't even run on Sun's OS, and they own Java! JavaOS is like the Lisp Machine: It's a nice concept but no one really uses it.
p.s. Without having to buy the book, and since you seem to be the expert on this, how does JavaOS manage to bootstrap the VM? Does it cheat and use a C/C++ layer on top of Mach?
So we're back to, is this a real problem for users, or do package managers just really call to the software developer's desire for maximum efficiency even at the cost of a complex system which must be constantly maintained? :)
For the same software, I've created an installer for Windows, port/package for FreeBSD, and a OSX app bundle. The hardest was of course the Windows installer. The next hardest was the app bundle. It would have been easier if my app were an Xcode app, but it wasn't, so I had to do a lot of fiddling with the bundle internals.
I'm not against the app bundle concept. It's perfect for some things. Some people are pushing hard for similar things in Linux/Unix (such as the rox desktop). But it's only useful for end user applications. Which are really only a small percentage of the total software on a system. For most stuff you either need it to come with the system or you need to install it. Think of a web server. I'm assuming Apache comes with OSX. If it does, is it configured started automatically? If it doesn't, is a drag-n-drop to the desktop going to properly install it? Ditto for any other service. Don't like that example, then what about screensavers. At the minimum you have to at least drag-n-drop them to a startup directory. And what about languages like Java, Python, Ruby and Ocaml (OSX can't possibly have every language installed by default)? Are they going to get integrated with Xcode just by dropping them on a user's desktop?
Apple has done a fantastic job making their computer an appliance. But sometimes you need more than a one-size-fits-all appliance.
C compiles to native code and doesn't require a runtime. Java and .NET compile to bytecode and require virtual machines. See the difference?
If you don't see the difference, please send me your Java device driver, because I would be very interested in looking at it.
I wish some of these people bitching C/C++ would try to write a device driver in Java, or .NET. C and C++ were designed for writing system software, and the funny thing is, they're still good for writing system software. The "religious" languages were designed for writing high level applications, which is why the suck for writing anything at a lower level.
It may "magically" work (when it does work without effort, and in my experience it doesn't always work), but it doesn't change the fact that Mac developers don't need to deal with dependency systems and Mac users never even have to fathom the possibility of a missing/conflicting/etc. dependency.
.app package. It includes the Qt library. Why? Because it's not available natively. It would be VERY NICE if there were a native way to check if Qt was already available instead of adding yet another copy, but I've found no way to do it without using a script or other form of (evil windows-like) installation program.
My point is that you don't have to worry about it under Linux/BSD/Unix either. If you do, you have a bad package manager. Sure the system may break, but you can't tell me OSX is so perfect it's never broke before.
OS X is better because you never deal with adding URLs to a repository, for starters.
Who said anything about dealing with URLs? Get your mind off of apt-get, because that's just one of several dozen package managers.
In short, on OS X there's a clear line between what is available on any Mac OS X system, and what you have to bundle yourself. Every software component is one or the other.
I distribute a Mac
Now just one or two programs installing extra copies of Qt is fine. But what about dozens? That starts to add up. Restricting development tools to only what Apple distributes is an extreme hindrance to porting software. It's almost like Apple never expected anyone but themselves to write a common application component.
Incidentally, that's also why the OS isn't written in a safe language -- there's no technical reason favoring C/C++ over Java/C# for an OS.
1) OS dependent on VM
2) VM needs OS to load
3) Lather, rinse, repeat
Why would anyone choose a legacy language like C++?
Maybe it's because some of us are writing software for the real world?