Heh, if people really were only concerned about programmer time, we'd all be coding in Lisp. However, we live in the real world. Plus, on an ethical level, if your program is to have a very large number of running copies, any inefficiency translates into more energy used than had a programmer spent more time using C++ and optimizing.
C++ is often faster than C for several reasons: the compiler can do much more inlining, you can do some large scale optimizations using template metaprogramming (even in the simplest case of expression templates, you can even beat out Fortran for scientific computing), etc.
C++0x brings in a good and well-rounded threading model, while at the same time the optimization nuts still have the flexibility of using custom synchronization primitives which leave the OS/language-provided ones in the dust (see http://locklessinc.com/articles/ for numerous examples). Besides, if you really wanted to solve problems the fastest, in terms of programmer time, then you should be using Lisp, as has been established in contests between users of different languages for the same given problems.
The fact that the paper was comparing one program in C++ that had been optimized to within an inch of its life with another program, in Java, that had had someone spend about an hour "cleaning it up a little," makes for a grossly unfair comparison. The fact that the "naive" (far more common) programs were all relatively the same speed was insightful.
WTF? I was going to mark your comment overrated as you even bother to RTFA, but I thought it better to clear up the disinformation you're spreading given your pro-Java zealousness. Even in the original comparison of the unoptimized versions, C++ wins by a large margin over the Java test with the best GC choice for this case (23 s vs 89 s). To add insult to injury, even Scala smoked Java.
Another point to make is that the quote in the/. summary from the article discussing the paper, that "required the most extensive tuning efforts, many of which were done at a level of sophistication that would not be available to the average programmer" is misleading, to say the least--the paper doesn't make such a claim, which is yet another example of why it's best to stick to quoting the primary sources whenever possible. I was almost excited, looking forward to reading about some hardcore C++ optimizations, and I was quite disappointed, as there was hardly anything in there that an intermediate programmer shouldn't be aware of.
Perfect example of the ignorance of the author: he writes that the BlackBerry OS doesn't use DEP and ASLR. For fuck's sake, it's a Java phone, these don't even make sense in that context!
Disclaimer: please qualify the above statement with the additional information that I've been enjoying some Southern Comfort, which predisposes my alleged free will to be less free and more willful...
I wish I were still a teenager; alas, I was born in '80.
Your complete (and likely intentional, in order to save face) misunderstanding and misrepresentation of my actual argument proves yet again that one should not confound nerds with bona fide intellectuals.
The waste problem is not an obligatory consequent of nuclear power. It is a problem of poor choice of nuclear pipeline. Adoption of breeder reactors and transmutation technology can allow a huge reduction in waste per power generated, to the point where glassification of the remaining little waste is a solid (no pun intended) solution to the problem. It is only a political and PR issue, the fear of the breeders' ease of generating weapons-grade material, that is a roadblock to doing the right thing.
Safety is only expensive when you don't design it in from the beginning. Pebble-bed reactors, for example, are inherently passively safe, and many other extremely safe designs exist. And if waste is your concern, build breeder reactors and use waste transmutation technologies, then glassify the hugely reduced in amount waste. But breeders scare people because they can produce weapons-grade material, and so politicians are bound to shy away from them.
Self-contained, largely autonomous, small scale pebble-bed reactors can easily be brought online and offline in a quick manner. But there's more money to be made by overspending and abusing subsidies in large plant construction.
The problem is not nuclear energy per se, but poor approach to the nuclear pipeline due almost completely to political and PR concerns. Breeder reactors together with waste transmutation can reduce the waste to a small fraction and improve its profile (in terms of half-life), so that solidification by glassification makes storage a very easy problem. However, people fear breeders because they are able to create weapons-grade material, and so they remain politically unpopular.
Breeder reactors + waste transmutation (see wiki) reduces waste by a very large fraction, to the point where glassification and subsequent storage is a total solution.
Answer to waste: breeder reactors. The ONLY reason not to built breeders is public paranoia about the possibility to use them for weapons-grade material production.
You write: "in fact, today, most of humanity lives like this: humans and ducks, pigs, cattle, etc., all bric-a-brac next to each other in a cacophony of noises and smells. this is reality. this is normalcy. the majority of humanity, in time and space, does not consider eating meat or who butchers it an issue"
In fact, this is not normalcy, since agriculture and animal husbandry are only ~10K years old, which is not nearly enough time for biological evolution; we are nearly identical to what we were when we were hunter-gatherers just previously to that time. Evolution of humans happened on a time span of an order of magnitude longer.
Your post also makes the fallacy of mixing up objective explanation with ethical/moral justification. There is no such thing as natural morality. Morality is a purely subjective thing. It can be scientifically explained in terms of why it arose by evolutionary psychology, and maps to the physical universe by the neural correlates of moral/ethical thoughts. However, explanation is not justification. The latter remains purely in the realm of the subjective, and the subjective is partly shared between like minds, and largely unique and individualistic since our minds, while alike, are not identical. What is natural and what is unnatural has no bearing on ethical considerations beyond the practical limitations it imposes on ethically-justified actions.
My actions and statements originate from fundamental particles interacting according to the laws of physics. My thoughts map are mapped directly to physics by their neural correlates. Subjectively, however, they "feel" like they originate from my free will. There is nothing inconsistent here because, despite what I've written, there's no reason that such actions and statements may not be aligned with what can be considered a logically consistent argument, for the same reason a computer program may produce output that is correct in terms of a given mathematical framework.
The base-level model of the world (and also of the organism's body) are below the level of conscious awareness. It is the integration of these two in the anterior cingulate cortex and a few other areas like the insula (see Damasio's research) into some sort of second-order representation of the organism and the world models interacting that gives rise the feeling of consciousness. This is a bit similar but not the same as what you wrote in your second paragraph.
The problem I think most people have is a failure to separate the subjective from the objective. The latter provides explanation of how the former arises, but it cannot be identical to it as the subjective is all about personal experience which can only exist within the specific mind of the individual in question and is not generalized to a set of individuals or other intelligent artifacts any more than to the extent that our minds do have a lot in common. Too many people ignore the fact that consciousness is not an abstract thing but something grounded in the physical body (and not just the brain, as the brain has a model of the body continually updated by monitoring the body). The neuroscience research mentioned above clearly establishes that. And so, despite some understanding we have of each other, conscious experience is too specific to the individual to be meaningfully abstracted and generalizable, and other considerations such as its emergent nature simply make it pointless to study the subjective objectively.
We live for the experience, however. We enjoy food not because its nutritional components produce certain electrical signals in our tongues that affect our brain (that's explanation, not justification), but for the feeling of a good taste. This is why it's perfectly fine to live our lives in a way that appeals for justification of our actions to the subjective, and accept the feeling of free will for example even though there's no free will in any objective way.
The neural basis for the experience of conscious awareness is well documented by Damasio and based on his and others' neurological research. The correspondence is too strong to discount it as coincidence. I'd strongly recommend Damasio's "The Feeling of What Happens", and on the QM side of this discussion, Mohrhoff's papers on arXiv.
That assertion specifically is a metaphysical one, so it's irrelevant to me; it is mired in discussions of free will and other such fruitless pursuits. Mohrhoff's view that consciousness is ultimately of a Vedantic nature is ultimately a religious view and he is quite clear to separate that from his physics. What matters is that Stapp abuses physics and logic to provide a link between it and consciousness that is more than the trivial reductionism of mind->neural correlates->quantum electrodynamics
Non-computationalism is refuted by the combination of QM and thermodynamics, because due to the Bekenstein bound you cannot build any physical object that can carry information processing more powerful than a linearly bounded automaton.
Worse, typical synchronization primitives such as in pthreads and Windows are optimized not for speed but for error handling etc. It is easy to beat their speed with custom implementations, sometimes with dramatic speed increases (see for example numerous articles at http://locklessinc.com/articles/ [locklessinc.com] and I've implemented some of the mutexes and ticket locks and my Windows/Linux software has become faster as a result). In addition, using lock-free algorithms whenever possible can provide a further performance enhancement (various algorithms and optimizations at www.1024cores.net), but along with implementing those goes an assumption of understanding of memory consistency semantics (acquire, release, consume, weak ordering, strong consistency, etc.) in order to minimize implied or explicit memory barriers, as well as thread local storage tricks in order to minimize data dependencies, the latter becoming all the more important as the number of cores increases and memory necessarily becomes less uniform in access times. Add to this the need to use cache-aware and/or cache-oblivious algorithms, and it is very clear that optimization in a modern hardware environment is anything but simple, and moreover cannot be anything but simple!
Heh, if people really were only concerned about programmer time, we'd all be coding in Lisp. However, we live in the real world. Plus, on an ethical level, if your program is to have a very large number of running copies, any inefficiency translates into more energy used than had a programmer spent more time using C++ and optimizing.
C++ is often faster than C for several reasons: the compiler can do much more inlining, you can do some large scale optimizations using template metaprogramming (even in the simplest case of expression templates, you can even beat out Fortran for scientific computing), etc.
C++0x brings in a good and well-rounded threading model, while at the same time the optimization nuts still have the flexibility of using custom synchronization primitives which leave the OS/language-provided ones in the dust (see http://locklessinc.com/articles/ for numerous examples). Besides, if you really wanted to solve problems the fastest, in terms of programmer time, then you should be using Lisp, as has been established in contests between users of different languages for the same given problems.
The fact that the paper was comparing one program in C++ that had been optimized to within an inch of its life with another program, in Java, that had had someone spend about an hour "cleaning it up a little," makes for a grossly unfair comparison. The fact that the "naive" (far more common) programs were all relatively the same speed was insightful.
/. summary from the article discussing the paper, that "required the most extensive tuning efforts, many of which were done at a level of sophistication that would not be available to the average programmer" is misleading, to say the least--the paper doesn't make such a claim, which is yet another example of why it's best to stick to quoting the primary sources whenever possible. I was almost excited, looking forward to reading about some hardcore C++ optimizations, and I was quite disappointed, as there was hardly anything in there that an intermediate programmer shouldn't be aware of.
WTF? I was going to mark your comment overrated as you even bother to RTFA, but I thought it better to clear up the disinformation you're spreading given your pro-Java zealousness. Even in the original comparison of the unoptimized versions, C++ wins by a large margin over the Java test with the best GC choice for this case (23 s vs 89 s). To add insult to injury, even Scala smoked Java.
Another point to make is that the quote in the
Perfect example of the ignorance of the author: he writes that the BlackBerry OS doesn't use DEP and ASLR. For fuck's sake, it's a Java phone, these don't even make sense in that context!
I mean rarely not rare... I blame my grammatical indiscretions on the Southern Comfort... damn you Amerikhans!
Thanks, man. I'm really happy when someone actually agrees with me, given how rare that occurs... sigh -.-
I love you guys.
Disclaimer: please qualify the above statement with the additional information that I've been enjoying some Southern Comfort, which predisposes my alleged free will to be less free and more willful...
Talk about convicted on a technicality *rolleyes*
I wish I were still a teenager; alas, I was born in '80.
Your complete (and likely intentional, in order to save face) misunderstanding and misrepresentation of my actual argument proves yet again that one should not confound nerds with bona fide intellectuals.
The waste problem is not an obligatory consequent of nuclear power. It is a problem of poor choice of nuclear pipeline. Adoption of breeder reactors and transmutation technology can allow a huge reduction in waste per power generated, to the point where glassification of the remaining little waste is a solid (no pun intended) solution to the problem. It is only a political and PR issue, the fear of the breeders' ease of generating weapons-grade material, that is a roadblock to doing the right thing.
Safety is only expensive when you don't design it in from the beginning. Pebble-bed reactors, for example, are inherently passively safe, and many other extremely safe designs exist. And if waste is your concern, build breeder reactors and use waste transmutation technologies, then glassify the hugely reduced in amount waste. But breeders scare people because they can produce weapons-grade material, and so politicians are bound to shy away from them.
Self-contained, largely autonomous, small scale pebble-bed reactors can easily be brought online and offline in a quick manner. But there's more money to be made by overspending and abusing subsidies in large plant construction.
The problem is not nuclear energy per se, but poor approach to the nuclear pipeline due almost completely to political and PR concerns. Breeder reactors together with waste transmutation can reduce the waste to a small fraction and improve its profile (in terms of half-life), so that solidification by glassification makes storage a very easy problem. However, people fear breeders because they are able to create weapons-grade material, and so they remain politically unpopular.
Breeder reactors + waste transmutation (see wiki) reduces waste by a very large fraction, to the point where glassification and subsequent storage is a total solution.
Answer to waste: breeder reactors. The ONLY reason not to built breeders is public paranoia about the possibility to use them for weapons-grade material production.
You write: "in fact, today, most of humanity lives like this: humans and ducks, pigs, cattle, etc., all bric-a-brac next to each other in a cacophony of noises and smells. this is reality. this is normalcy. the majority of humanity, in time and space, does not consider eating meat or who butchers it an issue"
In fact, this is not normalcy, since agriculture and animal husbandry are only ~10K years old, which is not nearly enough time for biological evolution; we are nearly identical to what we were when we were hunter-gatherers just previously to that time. Evolution of humans happened on a time span of an order of magnitude longer.
Your post also makes the fallacy of mixing up objective explanation with ethical/moral justification. There is no such thing as natural morality. Morality is a purely subjective thing. It can be scientifically explained in terms of why it arose by evolutionary psychology, and maps to the physical universe by the neural correlates of moral/ethical thoughts. However, explanation is not justification. The latter remains purely in the realm of the subjective, and the subjective is partly shared between like minds, and largely unique and individualistic since our minds, while alike, are not identical. What is natural and what is unnatural has no bearing on ethical considerations beyond the practical limitations it imposes on ethically-justified actions.
Addressed in my other reply to you.
My actions and statements originate from fundamental particles interacting according to the laws of physics. My thoughts map are mapped directly to physics by their neural correlates. Subjectively, however, they "feel" like they originate from my free will. There is nothing inconsistent here because, despite what I've written, there's no reason that such actions and statements may not be aligned with what can be considered a logically consistent argument, for the same reason a computer program may produce output that is correct in terms of a given mathematical framework.
The base-level model of the world (and also of the organism's body) are below the level of conscious awareness. It is the integration of these two in the anterior cingulate cortex and a few other areas like the insula (see Damasio's research) into some sort of second-order representation of the organism and the world models interacting that gives rise the feeling of consciousness. This is a bit similar but not the same as what you wrote in your second paragraph.
The problem I think most people have is a failure to separate the subjective from the objective. The latter provides explanation of how the former arises, but it cannot be identical to it as the subjective is all about personal experience which can only exist within the specific mind of the individual in question and is not generalized to a set of individuals or other intelligent artifacts any more than to the extent that our minds do have a lot in common. Too many people ignore the fact that consciousness is not an abstract thing but something grounded in the physical body (and not just the brain, as the brain has a model of the body continually updated by monitoring the body). The neuroscience research mentioned above clearly establishes that. And so, despite some understanding we have of each other, conscious experience is too specific to the individual to be meaningfully abstracted and generalizable, and other considerations such as its emergent nature simply make it pointless to study the subjective objectively.
We live for the experience, however. We enjoy food not because its nutritional components produce certain electrical signals in our tongues that affect our brain (that's explanation, not justification), but for the feeling of a good taste. This is why it's perfectly fine to live our lives in a way that appeals for justification of our actions to the subjective, and accept the feeling of free will for example even though there's no free will in any objective way.
The neural basis for the experience of conscious awareness is well documented by Damasio and based on his and others' neurological research. The correspondence is too strong to discount it as coincidence. I'd strongly recommend Damasio's "The Feeling of What Happens", and on the QM side of this discussion, Mohrhoff's papers on arXiv.
That assertion specifically is a metaphysical one, so it's irrelevant to me; it is mired in discussions of free will and other such fruitless pursuits. Mohrhoff's view that consciousness is ultimately of a Vedantic nature is ultimately a religious view and he is quite clear to separate that from his physics. What matters is that Stapp abuses physics and logic to provide a link between it and consciousness that is more than the trivial reductionism of mind->neural correlates->quantum electrodynamics
Non-computationalism is refuted by the combination of QM and thermodynamics, because due to the Bekenstein bound you cannot build any physical object that can carry information processing more powerful than a linearly bounded automaton.
http://en.wikipedia.org/wiki/Twistor_theory
Worse, typical synchronization primitives such as in pthreads and Windows are optimized not for speed but for error handling etc. It is easy to beat their speed with custom implementations, sometimes with dramatic speed increases (see for example numerous articles at http://locklessinc.com/articles/ [locklessinc.com] and I've implemented some of the mutexes and ticket locks and my Windows/Linux software has become faster as a result). In addition, using lock-free algorithms whenever possible can provide a further performance enhancement (various algorithms and optimizations at www.1024cores.net), but along with implementing those goes an assumption of understanding of memory consistency semantics (acquire, release, consume, weak ordering, strong consistency, etc.) in order to minimize implied or explicit memory barriers, as well as thread local storage tricks in order to minimize data dependencies, the latter becoming all the more important as the number of cores increases and memory necessarily becomes less uniform in access times. Add to this the need to use cache-aware and/or cache-oblivious algorithms, and it is very clear that optimization in a modern hardware environment is anything but simple, and moreover cannot be anything but simple!