If it's not linked with the kernel driver, then explain how it ends up in the kernel?
The purpose of linking is to enable functions to call each other across compilation boundaries. The firmware cannot be called before linking and it cannot be called after linking. Hence, it didn't get linked. It simply is data that happens to be in a kernel module.
There is nothing in the GPL about how it's ok to withhold source if a part of the program gets uploaded somewhere and run on a different box.
The GPL doesn't talk about "big heaps of code", the GPL talks about "linking".
Debian are being pragmatic here. They don't want to violate the law, and they're raising an issue that should have been raised a long time ago.
Just be a bit more precise, please: the GPL is not a law, it's a license agreement. Violating it doesn't "break a law", it is a contractual violation.
In any case, my point remains: something is going badly wrong here for open source because this is not a good outcome for Debian or OSS. I don't know exactly where the problem is, but here are some possibilities:
If Debian does this but other distributions don't, it's an overreaction from Debian.
If Linus demands this of Debian, then Linus is making a bad decision IMO.
If Linus didn't demand this but other people interpret the GPL as it is that way, then Linus should change the license on the Linux kernel; if he can't (because he didn't have copyright assigned to him and/or didn't have an "or later" clause in the kernel GPL), he made a mistake.
Whatever the cause of the problem, saying "oh my, oh dear, we have to remove these drivers from the kernel" is not solving it.
I certainly hope this will be a royalty-free (as in beer) and restriction free (as in speech) format.
That makes no logical sense. A format cannot be both "restriction free (as in speech)" and have a "some sort of compatibility requirement". A format can't even be "restriction free except for a compatibility requirement". In order to enforce the compatibility requirement, the specification must be owned by someone with a lot of legal muscle and a lot of intellectual property in the specification.
This tripped up MS when they tried to hijack JAVA for their own nefarious purposes.
MS hasn't been "tripped up"--they have done everything with Java they wanted: created an incompatible version that works well on Windows. It's called C#. They even offer backwards compatibility with Java. And, through their agreement with Sun, they even have licenses to Sun's technology, so they are in no danger from Sun anymore.
Who Sun's ownership of Java is tripping up is open source Java implementations.
Enforceable compatibility requirements in standards, de-facto or actual, are evil and incompatible with open source implementations.
Does anyone question whether or not Microsoft would be a great company to work for?
No, I didn't question that. Nor did I question your right as an individual to choose who you work for. What I question is whether it is desirable to let Microsoft continue to operate without significant regulation and without breaking it up.
Since Microsoft cannot force people to work for them, it is not logical to assume that all the world's talent is going to work for Microsoft.
Most of the great corporate CS research labs have disappeared or are in serious trouble: Bell Labs, Apple, IBM, DEC, PARC, NEC, to name just a few. And in just about every case, that is a direct consequence of Microsoft increasingly taking over markets. Many top universities have become deeply enmeshed with Microsoft (among them, MIT and Stanford).
Many people will end up working for Microsoft the same way they use Microsoft Windows right now: whether they like it or not, they just don't have any alternatives.
Again: neither Microsoft nor the individuals involved are to blame for that. Of course, a company like Microsoft will seek to create monopolies and maintain them, to the degree that they can get away with it. Who is to blame for that is the government, whose duty it is to regulate and/or break up companies that have started operating outside the free market.
While I think the war in Iraq is a big mistake, I'd rather have US troops use computer systems that work reliably and cheaply. Spending even more money on the war by going with proprietary systems and risking even more lives by using software that works less reliably isn't going to improve anything.
Personally I think it's great that they recognize talented individuals and reward them well."
Yes, that is great. There is also nothing wrong with taking such an offer.
But the effect is still anti-competitive. Microsoft has the money to buy up just about any talent around the world they like to. Where would the computer industry go if everybody who knows how to do anything gets hired by Microsoft? Because that's where this is going.
The people to do something about this are not Microsoft or the individuals involved, but government regulators.
Firmware is not "linked" with the kernel driver. Why would it be a problem for the kernel driver to load it?
Sorry, but I think this is a bad decision. Yes, it would be nice to have sources for more firmware available, but that doesn't strike me as a battle worth fighting right now and it doesn't strike me as something that the GPL requires. And Debian hardware support is iffy enough as it is relative to other distributions.
So, according to your point of view, exploiting third world countries inhabitants, running sweat shops, etc are both legitimate and moral decisions by companies?
Ah, yes, you must be talking about the Java development sweat shops of India and Russia, where children as young as 8 years old are forced to grind out thousands of lines of Java code per hour until their fingers bleed.
Come on: get real. High-tech workers in India and China may not be paid as much as their US counterparts, but for the most part, they are probably doing pretty well relative to everybody else around them. Don't use the horrible conditions in some unrelated industries to promote your protectionist ideology for high-tech workers.
Besides, US high-tech salaries are high even compared to European and Japanese, where people have to put up with such evil working conditions as 35 hour weeks, full benefits, and six week vacations.
That woudl be the freedom of, as a competent worker, to not have your job jerked out from under you and shipped to another country and given to a person who will work for a salary you arent capable of competing with, all in the name of making a few cents on stock prices
Well, if someone in India is as competetent as you at doing your job and willing to work for 1/4 of the salary, why doesn't he deserve your job?
In any case, the debate is academic. If, say, Sun didn't ship those jobs to India, they would still be competing against companies that do. If all US companies stopped outsourcing, then they would be competing against foreign companies that take advantage of cheap labor in India. If outsourcing substantially lowers costs, then domestic companies that don't do it will be replaced by foreign companies that do. And if outsourcing does not substantially lower costs, it will stop on its own.
Let's be a bit more specific here. We have high-priced US labor, high-priced US exports, and a huge trade deficit. What does that tell you? It tells you that the dollar is overvalued. The solution to that is simple: the dollar needs to be devalued until the US trade deficit shrinks greatly and until US labor costs about as much as foreign labor.
Why aren't the markets devaluing the dollar? Because they aren't entirely free. Lots of people with political power have assets in dollars, and they don't like to see the dollar devalued. Americans like getting cheap stuff from other countires. And other countries like having a booming export business to the US.
But even though everybody concerned likes it, this can't go on forever. If US labor and products remain too expensive, America will simply run out of funds to buy foreign stuff with. At some point, the system will adjust. The fact that US high tech workers are too expensive relative to foreign competition is just the beginning of that.
And that's where voting comes in: push politicians to adopt reasonable fiscal policies and to stop living a lie. But as long as people keep voting for politicians who promise no-pain solutions, increased wealth, and lower taxes, while at the same time spending liberally, that just won't happen.
It may be a little more costly, but no one said defending principles or even freedom would come cheap.
The "principles" at stake here are free trade and free markets, principles that the US has been one of the primary advocates of. What you advocate runs completely counter to that. Whether it is by popular choice or the imposition of tariffs, "buy domestic" is protectionism and anti-free trade.
The US wanted free trade, and the US has to accept both the good and the bad consequences of free trade. On balance, the benefits still far outweigh the costs.
Yeah, sure, they look similar to the Apple apps. So what? My car's controls also look similar to your car's controls. IE looked similar to Netscape. Apple Mail looks similar to KMail. Safari uses roughly the same layout as other browsers. That's what makes things usable.
Apple would be really stupid to start another look-and-feel lawsuit over this--the last one cost them a lot of good will and money.
The problem with GPB is that it measures a pretty uninteresting effect and takes a lot of money to do so.
Why is the effect uninteresting? According to the parameterized post-Newtonian (PPN) formalism, which describes most reasonable extensions of Newtonian gravity, frame dragging is a combination of only two effects: the amount of curvature of space caused by matter and lack of spatial isotropy, each given by a parameter. In GR, those parameters are 1 and 0, respectively.
Now, we know the amount of spatial curvature caused by a mass. With that, frame dragging of the amount predicted by GR is pretty much a given unless there is significant lack of isotropy.
So, GPB becomes a very expensive test to see whether space is isotropic. But even at that, GPB isn't a very good test: if its results disagree with General Relativity, we learn something, but that result is very unlikely and there would be better ways of looking for anisotropy. If GPB's results agree with GR, however, we have learned nothing, because there are many ways in which this particular experiment could fail to observe anisotropy even if it exists.
GPB's results should agree with GR. If they don't, then the most likely explanation is an engineering mistake. If they do, GPB will be hailed as a great "confirmation" of GR, although in reality, we will have learned nothing.
If you want Linux to work out of the box, you buy Linux pre-installed on Linux-compatible hardware; there are plenty of vendors that offer that. That's the same as you do with Windows or Macintosh or any other operating system. If you try to install Linux on hardware that wasn't designed for it, it will often work very well, but you may have to fiddle.
Over the last few years, I personally have had more problems installing Windows than Linux. The last machine I installed Windows on, Windows didn't recognize the graphics card, the wireless card or the sound card (it was a bare-bones machine) and I had to hunt down drivers on the Internet for both. The Linux distribution (SuSE), on the other hand, just booted up, installed itself, and everything worked right away.
And lots of hardware will never work with Linux (or MacOS or Solaris, for that matter) because it has never been documented sufficiently by its vendors. Some hardware also is so poorly designed that you wouldn't want to run it with Linux.
Uh, again, you seem to have misread the topic of this discussion
No, you have failed to see that I was responding to the comparison sheet that the author of the D language put together and that was linked to from the story. That comparison sheet contained numerous errors and misstatements about C, C++, C#, and Java.
"[The ability to integrate assembly code into the high-level code is] an implementation-dependent feature, not a language feature of C/C++."
Not really. To be useful, the language has to be flexible enough to let the asm code talk to stuff written in the higher-level language. How do you do that with Java/C# again?
As I was saying, none of the languages provide it: not C, not C++, not Java, not C#. Many C/C++ implementations happen to contain that extension, but it's not a feature of the language.
But I don't see any reason why it should be hard to add to C# or Java if anybody cared to; after all, Lisp had in-line assembly.
I have, with Java, and it is far from being trivial, and not all code can even be compiled in this way (typically because it depends on swing or similar libraries which make undocumented calls right into the VM).
I simply stated that the Java language can be compiled that way. Obviously, most Sun Java programs cannot because they rely on numerous proprietary libraries.
As for C#, I have yet to see a convincing native code compiler. No, pre-JITting is not the same thing, as you still need a ton of supporting framework (and often the original DLLs for the metadata).
Java and C# have native code compilers that work in non-batch mode. In the case of C#, it's a standard component of Microsoft's platform. No, it doesn't generate standalone code, but that wasn't the point made in the comparison.
What functionality is that then? D appears to have all the features I like from C# and Java (as a language) but without the obnoxious 30mb runtime download for the VM and associated tools. Why, pray tell, do I want a VM in the first place?
The ability to load code at runtime, the ability to write software components that work on different CPU architectures even if the main program runs natively, the ability to write portable code transformation tools, and the ability to sandbox untrusted code, among others.
Besides, you are living in a dreamworld if you think that C or C++ require less space for the same functionality. While I think that Sun's JRE is bloated in terms of how much functionality Sun throws into it, in terms of bang-per-megabyte, the JRE and other VM-based languages are far better than natively compiled languages.
That's wierd. I could have sworn that both Java and C# were getting generics/templates in their next versions.
No, C# and Java are not getting templates, but they are getting a parameterized type facility; the comparison table should have listed that but failed to. If D indeed has templates (meaning, the same kind of facility as C++), then that was a lousy design decision.
Altogether, I suspect that both he and you are simply confused about what templates and parameterized types actually are, although you seem to be confused in slightly different ways from each other.
Leads to cleaner code, in my opinion. C++ doesn't require you to do it, but I still do.
Clean if you are a neat freak who likes to line up his socks, but not safer or more readable. Following "declare on first use" makes unitialized variables much less likely. Furthermore, it can make a huge performance difference in some cases.
Pointers, in some capacity, are needed for low level programming. If you don't need access to hardware, then you might have a reason to consider something besides C.
C doesn't give you access to hardware; many C implementations happen to give you low-level features through unportable reinterpretations of illegal uses of standard constructs, resulting in one of the worst schemes for low-level programming in existence: it's unportable and you can't even tell where it's being used.
The "pointers in some capacity" feature can be provided far more safely and just as efficiently using a collection of named primitives (unsafe_get_byte_at, unsafe_put_float_at, etc.), something just about any language and compiler can add if they choose to.
Those features have been true of many programming languages. What distinguished Java from those other, less successful languages really was just hype: originally, the applet and Internet-related hype, later the anti-Microsoft/anti-lock-in rhetoric (which is ironic, because now people find themselves locked into Sun Java).
For those of us who don't like unpredictable... pauses... in our programs
You're mistaken if you think that by using "manual" storage management, you get intrinsically lower latencies or better memory management performance.
The only reason C/C++ allocators seem to perform better is because they are mature and widely used, and have been extensively tuned. But early BSD malloc implementations would sometimes go away for minutes at a time. Using "manual" storage management gives you no real time guarantees. And, if anything, it has an intrinsically higher overhead than equivalent garbage collected code.
So why complicate things with garbage collector and tracking down circular references and unpredictable pauses?
Garbage collectors have no problem with circular references (but many of those C++ memory management hacks you advocate very much do).
And if you don't like unpredictable pauses, then you need a real-time memory allocator. Those exist in both manual and garbage collected varieties. If all you want is soft real-time performance (interactive), then most good manual allocators and most good garbage collectors will do the trick.
Gosh, this is 2004 and arguments like yours were bogus even back in the 1980's. Get with the program.
That's an implementation-dependent feature, not a language feature of C/C++.
Direct access to hardware
C# has unsafe pointers (in unsafe modules), so it has this feature to the same degree that C and C++ do.
Explicit memory allocation control
C# very much has explicity memory allocation control. In fact, C# has similar low-level programming features to C/C++, but it packages them MUCH better.
Independent of VM, Direct native code gen
Both Java and C# have implementations that do "direct native code gen", in the sense that you can take source code and have a compiler generate shared libraries. Both languages can be implemented without a VM, although many libraries (and many application programmers!) want the functionality that the VM provides. Where is D's VM?
Templates
If he really means "templates", I'm glad that none of the other languages have them. Templates are a specific feature of C++--enormously useful, but very poorly designed. C# has parameterized types, which are less powerful but a better design.
Support all C types
I'm not sure what that is supposed to mean. C doesn't have a well-defined set of specific types, it has type names for implementation defined types satisfying minimum requirements. C# certainly has a complete set of types corresponding to that.
Struct member alignment control
Not only does C# have struct member alignment control, it has it in a way that is more explicit and better designed than what C and C++ have.
Most people, in most countries, are fairly ignorant. Sorry but it's true. True in the USA and true everywhere else.
So? I didn't make a general statement about "ignorance", I was talking about a specific attitude towards science and technology. People in some central African nation may generally not be very well educated, but I suspect most of them don't view their nation as the place where most of the technological innovation happens in the world. But that is the kind of attitude that many US politicians and business leaders express, and that is probably fairly common generally.
In fact, the US is probably the most important single nation in terms of developing new technologies. However, in absolute terms, that still only makes up a fraction of the total technological innovation that happens in the world, and its share is probably shrinking overall. Which is what this thread is all about, after all.
Well, geez, thanks for the fucking newsflash. I know this is sometimes hard for foreigners to understand, given their tendency to believe every piece of shit generalization they ever hear about Americans, *but we already know this*.
Well, apparently the people who keep complaining about off-shoring and high-tech work moving to India and China don't know that, otherwise they would accept "off-shoring" as the inevitable consequence of globalization, a process, one might add that has been driven by US policies and interests in the first place.
The implication being that America can only conduct good R&D because we manage to 'siphon off' the skilled scientific labor from other countries since, apparently, we're too fucking stupid to conduct any useful R&D on our own.
No, that's not the "implication". The "implication" is exactly what I said: it would make the US far less competitive. With around half of the US grad students and faculty in high-tech related disciplines being foreign-born and many US high-tech firms having been founded by foreigners, that's a pretty obvious implication. Or what do you think would happen if half the engineering and entrepreneurial talent of the US were to suddenly disappear?
Our success is our own, and we owe no part of it to Europe or its citizens,
You are spewing the same stupid nationalistic rhetoric we have heard from right wingers for centuries. The fact is that no significant nation is an intellectual island, and no nation accomplished what it did on its own; all of them built on thousands of years of common human knowledge and experience.
If the US thinks it can go it alone, it will go down the same route as North Korea, Japan, and Germany before it. Fortunately, US leaders are smarter than that: they put business interests ahead of nationalistic ideology, and they understand that it is not profitable for the US to isolate itself.
even the ones who despise their own countries so much they come here to make a decent living.
You are similarly misinformed about the motivations out of which immigrants come to the US. Few, in fact, "despise" their own countries: most reasonable people have learned to have a more balanced view, both towards the country they came from and the country they immigrated to; there are lots of good things about the US and lots of awful things about the US as well.
As for the "decent living", I pointed that out myself. Of course, the US pays a "decent living" somewhat selectively: while to some starving third world person, cleaning toilets in the US may be financially attractive, to most Europeans or Japanese, moving to the US is not financially advantageous. But those with special skills or those running their own business are, indeed, very highly paid, which is why they keep coming.
"According to this article in the San Francisco Chronicle, BioTech, once considered to be the next innovative sector to help offset the jobs losses from IT offshoring
I know this is sometimes hard for Americans to understand, but the US is not the only nation with advanced research and development. And just because the US likes to think of biotech and computers as "American" technologies industries, they have always been, and continue to be, international efforts.
Note, also, that European and Asian companies have been "off-shoring" to the US for decades: a lot of their R&D, marketing, and financial services have been located in the US.
Foreign governments with a national priority to attract biotech businesses with highly trained research workers and new research centers are the new forces to reckon with in preventing the exodus of biotech jobs.
After decades during which the US has siphoned off the best and brightest from all around the globe ("brain drain"), with high-paying jobs and a good standard of living, it is only natural that other nations are finally trying to do something about it. The real question is why this hasn't happened earlier. Maybe nations like Britain will finally pay their researchers a decent salary, and maybe nations like Japan will finally pay respect to their researchers.
Of course, the implications for the US are not so good: US R&D is based on highly-skilled immigrants. If that flow stops, it may temporarily create a little more demand for US workers, but it will primarily make the US overall far less competitive.
Leave aside for the moment the question of whether employees should do personal surfing on company time or what type of material is appropriate to view from work.
But that is the key question. If it was actually blocking work-related material, you could complain to your network manager that Webwasher is blocking content that you should be able to get at. Then, your network manager would either complain to the Webwasher company or switch to a different product.
Given that it is recipes you are trying to read from your work machine, that path is blocked. Therefore, Webwasher works within the requirements of the people who chose to install it, namely your company. Why should anybody unblock anything then?
As a practical solution, use ssh and/or VNC to connect to an outside account and you can do all the surfing you want there.
You can buy a multi-button mouse that will work with OSX.
Yes, but how do you replace the built-in single-button pointing device on an iBook or Power book with a built-in multi-button pointing device?
The purpose of linking is to enable functions to call each other across compilation boundaries. The firmware cannot be called before linking and it cannot be called after linking. Hence, it didn't get linked. It simply is data that happens to be in a kernel module.
There is nothing in the GPL about how it's ok to withhold source if a part of the program gets uploaded somewhere and run on a different box.
The GPL doesn't talk about "big heaps of code", the GPL talks about "linking".
Debian are being pragmatic here. They don't want to violate the law, and they're raising an issue that should have been raised a long time ago.
Just be a bit more precise, please: the GPL is not a law, it's a license agreement. Violating it doesn't "break a law", it is a contractual violation.
In any case, my point remains: something is going badly wrong here for open source because this is not a good outcome for Debian or OSS. I don't know exactly where the problem is, but here are some possibilities:
Whatever the cause of the problem, saying "oh my, oh dear, we have to remove these drivers from the kernel" is not solving it.
I certainly hope this will be a royalty-free (as in beer) and restriction free (as in speech) format.
That makes no logical sense. A format cannot be both "restriction free (as in speech)" and have a "some sort of compatibility requirement". A format can't even be "restriction free except for a compatibility requirement". In order to enforce the compatibility requirement, the specification must be owned by someone with a lot of legal muscle and a lot of intellectual property in the specification.
This tripped up MS when they tried to hijack JAVA for their own nefarious purposes.
MS hasn't been "tripped up"--they have done everything with Java they wanted: created an incompatible version that works well on Windows. It's called C#. They even offer backwards compatibility with Java. And, through their agreement with Sun, they even have licenses to Sun's technology, so they are in no danger from Sun anymore.
Who Sun's ownership of Java is tripping up is open source Java implementations.
Enforceable compatibility requirements in standards, de-facto or actual, are evil and incompatible with open source implementations.
Does anyone question whether or not Microsoft would be a great company to work for?
No, I didn't question that. Nor did I question your right as an individual to choose who you work for. What I question is whether it is desirable to let Microsoft continue to operate without significant regulation and without breaking it up.
Since Microsoft cannot force people to work for them, it is not logical to assume that all the world's talent is going to work for Microsoft.
Most of the great corporate CS research labs have disappeared or are in serious trouble: Bell Labs, Apple, IBM, DEC, PARC, NEC, to name just a few. And in just about every case, that is a direct consequence of Microsoft increasingly taking over markets. Many top universities have become deeply enmeshed with Microsoft (among them, MIT and Stanford).
Many people will end up working for Microsoft the same way they use Microsoft Windows right now: whether they like it or not, they just don't have any alternatives.
Again: neither Microsoft nor the individuals involved are to blame for that. Of course, a company like Microsoft will seek to create monopolies and maintain them, to the degree that they can get away with it. Who is to blame for that is the government, whose duty it is to regulate and/or break up companies that have started operating outside the free market.
While I think the war in Iraq is a big mistake, I'd rather have US troops use computer systems that work reliably and cheaply. Spending even more money on the war by going with proprietary systems and risking even more lives by using software that works less reliably isn't going to improve anything.
Personally I think it's great that they recognize talented individuals and reward them well."
Yes, that is great. There is also nothing wrong with taking such an offer.
But the effect is still anti-competitive. Microsoft has the money to buy up just about any talent around the world they like to. Where would the computer industry go if everybody who knows how to do anything gets hired by Microsoft? Because that's where this is going.
The people to do something about this are not Microsoft or the individuals involved, but government regulators.
Firmware is not "linked" with the kernel driver. Why would it be a problem for the kernel driver to load it?
Sorry, but I think this is a bad decision. Yes, it would be nice to have sources for more firmware available, but that doesn't strike me as a battle worth fighting right now and it doesn't strike me as something that the GPL requires. And Debian hardware support is iffy enough as it is relative to other distributions.
So, according to your point of view, exploiting third world countries inhabitants, running sweat shops, etc are both legitimate and moral decisions by companies?
Ah, yes, you must be talking about the Java development sweat shops of India and Russia, where children as young as 8 years old are forced to grind out thousands of lines of Java code per hour until their fingers bleed.
Come on: get real. High-tech workers in India and China may not be paid as much as their US counterparts, but for the most part, they are probably doing pretty well relative to everybody else around them. Don't use the horrible conditions in some unrelated industries to promote your protectionist ideology for high-tech workers.
Besides, US high-tech salaries are high even compared to European and Japanese, where people have to put up with such evil working conditions as 35 hour weeks, full benefits, and six week vacations.
That woudl be the freedom of, as a competent worker, to not have your job jerked out from under you and shipped to another country and given to a person who will work for a salary you arent capable of competing with, all in the name of making a few cents on stock prices
Well, if someone in India is as competetent as you at doing your job and willing to work for 1/4 of the salary, why doesn't he deserve your job?
In any case, the debate is academic. If, say, Sun didn't ship those jobs to India, they would still be competing against companies that do. If all US companies stopped outsourcing, then they would be competing against foreign companies that take advantage of cheap labor in India. If outsourcing substantially lowers costs, then domestic companies that don't do it will be replaced by foreign companies that do. And if outsourcing does not substantially lower costs, it will stop on its own.
Let's be a bit more specific here. We have high-priced US labor, high-priced US exports, and a huge trade deficit. What does that tell you? It tells you that the dollar is overvalued. The solution to that is simple: the dollar needs to be devalued until the US trade deficit shrinks greatly and until US labor costs about as much as foreign labor.
Why aren't the markets devaluing the dollar? Because they aren't entirely free. Lots of people with political power have assets in dollars, and they don't like to see the dollar devalued. Americans like getting cheap stuff from other countires. And other countries like having a booming export business to the US.
But even though everybody concerned likes it, this can't go on forever. If US labor and products remain too expensive, America will simply run out of funds to buy foreign stuff with. At some point, the system will adjust. The fact that US high tech workers are too expensive relative to foreign competition is just the beginning of that.
And that's where voting comes in: push politicians to adopt reasonable fiscal policies and to stop living a lie. But as long as people keep voting for politicians who promise no-pain solutions, increased wealth, and lower taxes, while at the same time spending liberally, that just won't happen.
It may be a little more costly, but no one said defending principles or even freedom would come cheap.
The "principles" at stake here are free trade and free markets, principles that the US has been one of the primary advocates of. What you advocate runs completely counter to that. Whether it is by popular choice or the imposition of tariffs, "buy domestic" is protectionism and anti-free trade.
The US wanted free trade, and the US has to accept both the good and the bad consequences of free trade. On balance, the benefits still far outweigh the costs.
Yeah, sure, they look similar to the Apple apps. So what? My car's controls also look similar to your car's controls. IE looked similar to Netscape. Apple Mail looks similar to KMail. Safari uses roughly the same layout as other browsers. That's what makes things usable.
Apple would be really stupid to start another look-and-feel lawsuit over this--the last one cost them a lot of good will and money.
Eiffel, Modula-3, Smalltalk-80, Simula, ObjectPascal, Turing, Clu, Cedar, Mesa, ...
The problem with GPB is that it measures a pretty uninteresting effect and takes a lot of money to do so.
Why is the effect uninteresting? According to the parameterized post-Newtonian (PPN) formalism, which describes most reasonable extensions of Newtonian gravity, frame dragging is a combination of only two effects: the amount of curvature of space caused by matter and lack of spatial isotropy, each given by a parameter. In GR, those parameters are 1 and 0, respectively.
Now, we know the amount of spatial curvature caused by a mass. With that, frame dragging of the amount predicted by GR is pretty much a given unless there is significant lack of isotropy.
So, GPB becomes a very expensive test to see whether space is isotropic. But even at that, GPB isn't a very good test: if its results disagree with General Relativity, we learn something, but that result is very unlikely and there would be better ways of looking for anisotropy. If GPB's results agree with GR, however, we have learned nothing, because there are many ways in which this particular experiment could fail to observe anisotropy even if it exists.
GPB's results should agree with GR. If they don't, then the most likely explanation is an engineering mistake. If they do, GPB will be hailed as a great "confirmation" of GR, although in reality, we will have learned nothing.
If you want Linux to work out of the box, you buy Linux pre-installed on Linux-compatible hardware; there are plenty of vendors that offer that. That's the same as you do with Windows or Macintosh or any other operating system. If you try to install Linux on hardware that wasn't designed for it, it will often work very well, but you may have to fiddle.
Over the last few years, I personally have had more problems installing Windows than Linux. The last machine I installed Windows on, Windows didn't recognize the graphics card, the wireless card or the sound card (it was a bare-bones machine) and I had to hunt down drivers on the Internet for both. The Linux distribution (SuSE), on the other hand, just booted up, installed itself, and everything worked right away.
And lots of hardware will never work with Linux (or MacOS or Solaris, for that matter) because it has never been documented sufficiently by its vendors. Some hardware also is so poorly designed that you wouldn't want to run it with Linux.
Uh, again, you seem to have misread the topic of this discussion
No, you have failed to see that I was responding to the comparison sheet that the author of the D language put together and that was linked to from the story. That comparison sheet contained numerous errors and misstatements about C, C++, C#, and Java.
"[The ability to integrate assembly code into the high-level code is] an implementation-dependent feature, not a language feature of C/C++."
Not really. To be useful, the language has to be flexible enough to let the asm code talk to stuff written in the higher-level language. How do you do that with Java/C# again?
As I was saying, none of the languages provide it: not C, not C++, not Java, not C#. Many C/C++ implementations happen to contain that extension, but it's not a feature of the language.
But I don't see any reason why it should be hard to add to C# or Java if anybody cared to; after all, Lisp had in-line assembly.
I have, with Java, and it is far from being trivial, and not all code can even be compiled in this way (typically because it depends on swing or similar libraries which make undocumented calls right into the VM).
I simply stated that the Java language can be compiled that way. Obviously, most Sun Java programs cannot because they rely on numerous proprietary libraries.
As for C#, I have yet to see a convincing native code compiler. No, pre-JITting is not the same thing, as you still need a ton of supporting framework (and often the original DLLs for the metadata).
Java and C# have native code compilers that work in non-batch mode. In the case of C#, it's a standard component of Microsoft's platform. No, it doesn't generate standalone code, but that wasn't the point made in the comparison.
What functionality is that then? D appears to have all the features I like from C# and Java (as a language) but without the obnoxious 30mb runtime download for the VM and associated tools. Why, pray tell, do I want a VM in the first place?
The ability to load code at runtime, the ability to write software components that work on different CPU architectures even if the main program runs natively, the ability to write portable code transformation tools, and the ability to sandbox untrusted code, among others.
Besides, you are living in a dreamworld if you think that C or C++ require less space for the same functionality. While I think that Sun's JRE is bloated in terms of how much functionality Sun throws into it, in terms of bang-per-megabyte, the JRE and other VM-based languages are far better than natively compiled languages.
That's wierd. I could have sworn that both Java and C# were getting generics/templates in their next versions.
No, C# and Java are not getting templates, but they are getting a parameterized type facility; the comparison table should have listed that but failed to. If D indeed has templates (meaning, the same kind of facility as C++), then that was a lousy design decision.
Altogether, I suspect that both he and you are simply confused about what templates and parameterized types actually are, although you seem to be confused in slightly different ways from each other.
Leads to cleaner code, in my opinion. C++ doesn't require you to do it, but I still do.
Clean if you are a neat freak who likes to line up his socks, but not safer or more readable. Following "declare on first use" makes unitialized variables much less likely. Furthermore, it can make a huge performance difference in some cases.
Pointers, in some capacity, are needed for low level programming. If you don't need access to hardware, then you might have a reason to consider something besides C.
C doesn't give you access to hardware; many C implementations happen to give you low-level features through unportable reinterpretations of illegal uses of standard constructs, resulting in one of the worst schemes for low-level programming in existence: it's unportable and you can't even tell where it's being used.
The "pointers in some capacity" feature can be provided far more safely and just as efficiently using a collection of named primitives (unsafe_get_byte_at, unsafe_put_float_at, etc.), something just about any language and compiler can add if they choose to.
Java is successfull because:
Those features have been true of many programming languages. What distinguished Java from those other, less successful languages really was just hype: originally, the applet and Internet-related hype, later the anti-Microsoft/anti-lock-in rhetoric (which is ironic, because now people find themselves locked into Sun Java).
For those of us who don't like unpredictable... pauses... in our programs
You're mistaken if you think that by using "manual" storage management, you get intrinsically lower latencies or better memory management performance.
The only reason C/C++ allocators seem to perform better is because they are mature and widely used, and have been extensively tuned. But early BSD malloc implementations would sometimes go away for minutes at a time. Using "manual" storage management gives you no real time guarantees. And, if anything, it has an intrinsically higher overhead than equivalent garbage collected code.
So why complicate things with garbage collector and tracking down circular references and unpredictable pauses?
Garbage collectors have no problem with circular references (but many of those C++ memory management hacks you advocate very much do).
And if you don't like unpredictable pauses, then you need a real-time memory allocator. Those exist in both manual and garbage collected varieties. If all you want is soft real-time performance (interactive), then most good manual allocators and most good garbage collectors will do the trick.
Gosh, this is 2004 and arguments like yours were bogus even back in the 1980's. Get with the program.
Inline assembler
That's an implementation-dependent feature, not a language feature of C/C++.
Direct access to hardware
C# has unsafe pointers (in unsafe modules), so it has this feature to the same degree that C and C++ do.
Explicit memory allocation control
C# very much has explicity memory allocation control. In fact, C# has similar low-level programming features to C/C++, but it packages them MUCH better.
Independent of VM, Direct native code gen
Both Java and C# have implementations that do "direct native code gen", in the sense that you can take source code and have a compiler generate shared libraries. Both languages can be implemented without a VM, although many libraries (and many application programmers!) want the functionality that the VM provides. Where is D's VM?
Templates
If he really means "templates", I'm glad that none of the other languages have them. Templates are a specific feature of C++--enormously useful, but very poorly designed. C# has parameterized types, which are less powerful but a better design.
Support all C types
I'm not sure what that is supposed to mean. C doesn't have a well-defined set of specific types, it has type names for implementation defined types satisfying minimum requirements. C# certainly has a complete set of types corresponding to that.
Struct member alignment control
Not only does C# have struct member alignment control, it has it in a way that is more explicit and better designed than what C and C++ have.
Most people, in most countries, are fairly ignorant. Sorry but it's true. True in the USA and true everywhere else.
So? I didn't make a general statement about "ignorance", I was talking about a specific attitude towards science and technology. People in some central African nation may generally not be very well educated, but I suspect most of them don't view their nation as the place where most of the technological innovation happens in the world. But that is the kind of attitude that many US politicians and business leaders express, and that is probably fairly common generally.
In fact, the US is probably the most important single nation in terms of developing new technologies. However, in absolute terms, that still only makes up a fraction of the total technological innovation that happens in the world, and its share is probably shrinking overall. Which is what this thread is all about, after all.
Well, geez, thanks for the fucking newsflash. I know this is sometimes hard for foreigners to understand, given their tendency to believe every piece of shit generalization they ever hear about Americans, *but we already know this*.
Well, apparently the people who keep complaining about off-shoring and high-tech work moving to India and China don't know that, otherwise they would accept "off-shoring" as the inevitable consequence of globalization, a process, one might add that has been driven by US policies and interests in the first place.
The implication being that America can only conduct good R&D because we manage to 'siphon off' the skilled scientific labor from other countries since, apparently, we're too fucking stupid to conduct any useful R&D on our own.
No, that's not the "implication". The "implication" is exactly what I said: it would make the US far less competitive. With around half of the US grad students and faculty in high-tech related disciplines being foreign-born and many US high-tech firms having been founded by foreigners, that's a pretty obvious implication. Or what do you think would happen if half the engineering and entrepreneurial talent of the US were to suddenly disappear?
Our success is our own, and we owe no part of it to Europe or its citizens,
You are spewing the same stupid nationalistic rhetoric we have heard from right wingers for centuries. The fact is that no significant nation is an intellectual island, and no nation accomplished what it did on its own; all of them built on thousands of years of common human knowledge and experience.
If the US thinks it can go it alone, it will go down the same route as North Korea, Japan, and Germany before it. Fortunately, US leaders are smarter than that: they put business interests ahead of nationalistic ideology, and they understand that it is not profitable for the US to isolate itself.
even the ones who despise their own countries so much they come here to make a decent living.
You are similarly misinformed about the motivations out of which immigrants come to the US. Few, in fact, "despise" their own countries: most reasonable people have learned to have a more balanced view, both towards the country they came from and the country they immigrated to; there are lots of good things about the US and lots of awful things about the US as well.
As for the "decent living", I pointed that out myself. Of course, the US pays a "decent living" somewhat selectively: while to some starving third world person, cleaning toilets in the US may be financially attractive, to most Europeans or Japanese, moving to the US is not financially advantageous. But those with special skills or those running their own business are, indeed, very highly paid, which is why they keep coming.
"According to this article in the San Francisco Chronicle, BioTech, once considered to be the next innovative sector to help offset the jobs losses from IT offshoring
I know this is sometimes hard for Americans to understand, but the US is not the only nation with advanced research and development. And just because the US likes to think of biotech and computers as "American" technologies industries, they have always been, and continue to be, international efforts.
Note, also, that European and Asian companies have been "off-shoring" to the US for decades: a lot of their R&D, marketing, and financial services have been located in the US.
Foreign governments with a national priority to attract biotech businesses with highly trained research workers and new research centers are the new forces to reckon with in preventing the exodus of biotech jobs.
After decades during which the US has siphoned off the best and brightest from all around the globe ("brain drain"), with high-paying jobs and a good standard of living, it is only natural that other nations are finally trying to do something about it. The real question is why this hasn't happened earlier. Maybe nations like Britain will finally pay their researchers a decent salary, and maybe nations like Japan will finally pay respect to their researchers.
Of course, the implications for the US are not so good: US R&D is based on highly-skilled immigrants. If that flow stops, it may temporarily create a little more demand for US workers, but it will primarily make the US overall far less competitive.
"It was bound to happen.... Security Robots that are "Wi-Fi" enabled and capable of enterprise-grade tasks.
You mean, as seen in video games like HalfLife, DeusEx, Quake, and who knows what else? And probably numerous SciFi movies and TV shows as well...
Leave aside for the moment the question of whether employees should do personal surfing on company time or what type of material is appropriate to view from work.
But that is the key question. If it was actually blocking work-related material, you could complain to your network manager that Webwasher is blocking content that you should be able to get at. Then, your network manager would either complain to the Webwasher company or switch to a different product.
Given that it is recipes you are trying to read from your work machine, that path is blocked. Therefore, Webwasher works within the requirements of the people who chose to install it, namely your company. Why should anybody unblock anything then?
As a practical solution, use ssh and/or VNC to connect to an outside account and you can do all the surfing you want there.