I wonder who voted your post to five informative, as you seem to be quite uninformed on the topic. DbC isn't argument checking. As Bertrand Meyer states in his seminal "Object-Oriented Software Construction":
Non-Redundancy principle: Under no circumstances shall the body of a routine ever test for the routine's precondition.
This rule is the reverse of what many software engineering or programming methodology textbooks advocate, often under the name of defensive programming -- the idea that to obtain reliable software you should design every component of a system so that it protects itself as much as possible. Better check too much.... A redundant check might not help, but at least it will not hurt.
Design by Contract follows from the opposite observation: redundant checks can and indeed will hurt.
I really suggest you read Bertrand Meyer's book before making claims on what Design by Contract is in the real world.
Perhaps you should read up a bit on DbC as you're confused about its usage. Design by Contract should not be used for input testing!! As Bertrand Meyer states in his seminal "Object-Oriented Software Construction":
Assertions are not an input checking mechanism...
To avoid a common misunderstanding, make sure to note that each of the contracts discussed holds between a routine (the supplier) and another routine (its caller): we are concerned about software-to-software communication, not software-to-human or software-to-outside-world. A precondition will not take care of correcting user input.
In "Design by Contract to Improve Software Vigilance" (IEEE Transactions on Software Engineering August 2006) the authors prove that, unlike your assertion, there is a lot of bang for the buck. Conclusion:
It appeared that efficient contracts significantly contributed to improving the quality of the systems, but also that their efficiency is more important than their quantity.
If people are interested in a fun SF book in which time travel is possible (Einstein, if you go faster than light this implies time travel is possible), and the reason why despite being this possible there is no actual time travel, read Singularity Sky by Charless Stross.
> While we all want to start lambasting him for his > obvious lack of understanding of the obvious, > I think it is actually endemic of the real > problem.
Really? How many of us can ssh into any server they own without having to type in the password? We all run ssh-agent, right?
Any virus that comes to us which knows about SSH_AUTH_SOCK can wreck an awful lot of havoc.
And the problem is not people's understanding of viruses and threats, but that computers should be free from them. It is our responsibility, as professionals, to make sure things don't blow up or cannot be blown up, and if they do the damage is limited.
What if car manufacturers build cars that would blow up if you pressed the wrong button??? I.e. the `rm -rf *` versus the `rm -rf/*`.Cars don't easily blow up. Computers shouldn't either.
No chance that comments get outdated. Because the comments are code it will be maintained. And it is quite readable.
With a decent editor that does completion you have to type the variable names just once.
No fundamental difference between the US and Europe? Are you for real? I can't read the economist article as it isn't free, but I suggest you have a look at EU versus USA, a study written by Dr Fredrik Bergström and Mr Robert Gidehag:
If the European Union were a state in the USA it would belong to the poorest group of states. France, Italy, Great Britain and Germany have lower GDP per capita than all but four of the states in the United States. In fact, GDP per capita is lower in the vast majority of the EU-countries (EU 15) than in most of the individual American states. This puts Europeans at a level of prosperity on par with states such as Arkansas, Mississippi and West Virginia. Only the miniscule country of Luxembourg has higher per capita GDP than the average state in the USA. The results of the new study represent a grave critique of European economic policy.
Stark differences become apparent when comparing official economic statistics. Europe lags behind the USA when comparing GDP per capita and GDP growth rates. The current economic debate among EU leaders lacks an understanding of the gravity of the situation in many European countries. Structural reforms of the European economy as well as far reaching welfare reforms are well overdue. The Lisbon process lacks true impetus, nor is it sufficient to improve the economic prospects of the EU.
How many new companies have entered the EU's top fifty the last 30 years for example? In America it's perhaps 50% or more. In Europe it might be one perhaps. For a country as Sweden it's zero for example: the last thirty years there have been no new successful companies. That could not happen in America.
Your moth example just shows that variation in distribution of existing genetic material. It doesn't show any evolution at all.
The biston betularia must be the most repeated frauduleus claim in biology text books I suppose. For more, read "Piltdown Moth". Anyone taking a course in the philosophy of science will have come accross this as a classic example.
Till G. Bay submitted two entries. That is not against the rules. All other entries were by different programmers.
Perhaps a surprise that programmers are more diverse than you thought:-)
Re:Fermi's paradox is not a single datum
on
Lonely Planets
·
· Score: 1
One more thing: note that Fermi's Paradox is not a single datum. If we see star 100,000 light years away, we look back in time. We can see a lot of history around us: 13.7 billion years according to some scientists.
Re:Fermi's paradox? Not if you're a true believer
on
Lonely Planets
·
· Score: 1
For the true believer, aliens are always around the corner. We need just bigger this or more of that. But it's not science, because it's based on nothing. Just believe that one day we will find them or they will find us.
Mr Toad, if someone build a shell around a star, we sure would notice it disappear. We also could notices stars we don't see (because they had a shell) by the gravitational effects they would have on other stars we can see. We don't need galaxy cluster sized projects (the Xelee).
Fermi's paradox is not "why are they not HERE", but "WHERE are they". That's a subtle but important difference. A few things:
Sufficient time has passed for any race to colonize the galaxy. So they should be here or in the neighbourhood. Obviously they are not. Either they don't exist, or they don't like to leave home.
Sufficient time has passed for a race to be sending out signals, even when they don't like to travel. We don't hear them. Maybe we don't listen to the right frequencies or right spot in the sky, or aliens just don't like to talk. And if you wanted to communicate with someone, wouldn't you use easily detectable signals? You wouldn't send a neutrino beam.
Sufficient time has passed for engineering projects we can imagine, but are quite far off for us of course. For example building a gigantic shell around a star to harvest all its energy. It might appear to be magic for us, but you wouldn't foul our detectors. They would certainly indicate something. We would be able to see such star engineering projects in the sky, but we don't. This indicates that there is no intelligent life, or that no one has really advanced very far.
A good introduction to Fermi's Paradox is done by Seth Shostak. He discusses the paradox and various solutions. Interestingly, according to Michael Crichton, aliens cause global warming. This article is a good wake up call ot SETI enthusiast about what is science and what isn't. We might be fascinated by
alien intelligent life, but there currently is no proof, no subject, and therefore no science.
It makes for interesting science fiction though. Solutions:
Aliens are just around the corner (Contact, Rendezvous with Rama). We just have to wait a bit longer.
Intelligent life is destroyed everytime before it can advance very far (Manifold: Space). That's why we don't see or hear them.
Our universe is engineered to be alone (Manifold: Origin).
We're truly alone in this galaxy (Manifold: Time).
I can recommend the Manifold series by Stephen Baxter as an enjoyable introduction to Fermi's Paradox where three different solutions are explored.
The interviewer seems to hold a grudge against Stallman for refusing the interview and completely misstates the GNU/Linux discussion. He actually writes:
And although Torvalds released the kernel of his operating system well before GNU produced a reliable one of its own, Stallman insists Torvalds' work should properly be called GNU/Linux, because early contributors adapted GNU components for Linux - never mind that the Linux core is non-GNU and now approaches 6 million lines of code.
But this is bullocks. Linux is just a kernel. Completely unusuable without things like ls and bash for example. And all those components are GNU components. Even the compiler to produce that kernel is GNU. The list goes on. Using Linux for the entire package is just as wrong as using just GNU.
Calling something Linux without acknowledging all the years Stallman has spend writing the tools that make a Unix kernel possible is wrong and hypocritical. And if Stallman didn't defend that, who would?
What is small? If you rather would deliver products without bugs, and there is a huge payoff here, you should have a look at Eiffel. It really supports a better style of programming. There are two commercial Eiffel compilers and one Open Source compiler. There must be hundreds of companies using it and thousands of programmers. You ain't gonna get a competitive edge if you use the same language as everyone else.
If you are a startup, you usually don;'t have a second chance. You don't have the luxury of Microsoft or Linux (SSH/sendmail/wu-ftp/...) programmers, who can use C/C++ and get away with buggy or insecure code and patch later. Will the programmers in your company produce better code with C++ than Microsoft does? That's hardly likely. Will they with a pure, clean language that supports Design by Contract?
My rule of thumb is that you should have a real class with an interface and a hidden representation if and only if you can consider an invariant for the class.
That is exactly Eiffel's position. But not only that, it allows you to write that invariant and it will make sure that upon violating that invariant you get an exception. That really helps, instead of having some abstract invariant or precondition that is burried in the documentation and which you only detect when your 500 million dollar rocket has blown up.
And Eiffel is infectious. People who use it and who got its ideas, don't even want to go back to inferior languages.
QuantumG, nothing in your message is very specific. If you want me to add another criteria, it might be helpful to come up with a detailed response that might allow a jury to make an unanimous decision.
Here a remarkable quote from Retired General H. Hugh Shelton, chairman of the Joint Chiefs of Staff on 9/11:
"What do you think of General Wesley Clark and would you support him as a presidential candidate," was the question put to him by moderator Dick Henning, assuming that all military men stood in support of each other. General Shelton took a drink of water and Henning said, "I noticed you took a drink on that one!"
"That question makes me wish it were vodka," said Shelton. "I've known Wes for a long time. I will tell you the reason he came out of Europe early had to do with integrity and character issues, things that are very near and dear to my heart. I'm not going to say whether I'm a Republican or a Democrat. I'll just say Wes won't get my vote."
The BeOS POSIX implementation is very complete. Non-network utilities are usually easy to port. But the big issue is that sockets are not descriptors. That's right. You can't pass a socket descriptor to read() or write(). You need to use send() or recv().
That's the single biggest issue in porting POSIX applications to BeOS and also the hardest to fix.
Do you seriously expect an end to buffer overflows while people keep programming in C? That's the issue. Use an unsafe language and you are bound to remain a fool.
Clippy is still an amazing marketing feat. You might not like it, but it was a selling point to upgrade. And nowpeople are paying again for the new version without Clippy, because it . Isn't that just a brilliant marketing strategy?
Compare that to the attempts of RedHat: first they lure people into buying the SCO enabled enterprise version, and now people want to buy the next version without SCO code. And no one is cheering.
+1 people use zfs for by the minute snapshots between data centres.
Christian is not a protected term. Did the Serbs kills these Muslims in name of Christianity or despite of it?
If people are interested in a fun SF book in which time travel is possible (Einstein, if you go faster than light this implies time travel is possible), and the reason why despite being this possible there is no actual time travel, read Singularity Sky by Charless Stross.
Please remind me again what evil president instituted the Patriot Act about which the left continually gets worked up.
And what president gave us the DCMA, a law that actually affects citizens?
> While we all want to start lambasting him for his
/*`.Cars don't easily blow up. Computers shouldn't either.
> obvious lack of understanding of the obvious,
> I think it is actually endemic of the real
> problem.
Really? How many of us can ssh into any server they own without having to type in the password? We all run ssh-agent, right?
Any virus that comes to us which knows about SSH_AUTH_SOCK can wreck an awful lot of havoc.
And the problem is not people's understanding of viruses and threats, but that computers should be free from them. It is our responsibility, as professionals, to make sure things don't blow up or cannot be blown up, and if they do the damage is limited.
What if car manufacturers build cars that would blow up if you pressed the wrong button??? I.e. the `rm -rf *` versus the `rm -rf
> Prompt for a password
How is that more secure? The typical grandma will be baffled, and type in the password whatever requested it.
Michael has a point here and it's not easily argued away.
No, you can factor them all away. Just use a few variables:
No chance that comments get outdated. Because the comments are code it will be maintained. And it is quite readable. With a decent editor that does completion you have to type the variable names just once.No fundamental difference between the US and Europe? Are you for real? I can't read the economist article as it isn't free, but I suggest you have a look at EU versus USA, a study written by Dr Fredrik Bergström and Mr Robert Gidehag:
How many new companies have entered the EU's top fifty the last 30 years for example? In America it's perhaps 50% or more. In Europe it might be one perhaps. For a country as Sweden it's zero for example: the last thirty years there have been no new successful companies. That could not happen in America.
Not true, see Surviving Slashdotting with a Small Server. Lots of people tried to bring it down (see comments), but it survived with no trouble at all.
Your moth example just shows that variation in distribution of existing genetic material. It doesn't show any evolution at all.
The biston betularia must be the most repeated frauduleus claim in biology text books I suppose. For more, read "Piltdown Moth". Anyone taking a course in the philosophy of science will have come accross this as a classic example.
Till G. Bay submitted two entries. That is not against the rules. All other entries were by different programmers.
:-)
Perhaps a surprise that programmers are more diverse than you thought
One more thing: note that Fermi's Paradox is not a single datum. If we see star 100,000 light years away, we look back in time. We can see a lot of history around us: 13.7 billion years according to some scientists.
For the true believer, aliens are always around the corner. We need just bigger this or more of that. But it's not science, because it's based on nothing. Just believe that one day we will find them or they will find us.
Mr Toad, if someone build a shell around a star, we sure would notice it disappear. We also could notices stars we don't see (because they had a shell) by the gravitational effects they would have on other stars we can see. We don't need galaxy cluster sized projects (the Xelee).
- Sufficient time has passed for any race to colonize the galaxy. So they should be here or in the neighbourhood. Obviously they are not. Either they don't exist, or they don't like to leave home.
- Sufficient time has passed for a race to be sending out signals, even when they don't like to travel. We don't hear them. Maybe we don't listen to the right frequencies or right spot in the sky, or aliens just don't like to talk. And if you wanted to communicate with someone, wouldn't you use easily detectable signals? You wouldn't send a neutrino beam.
- Sufficient time has passed for engineering projects we can imagine, but are quite far off for us of course. For example building a gigantic shell around a star to harvest all its energy. It might appear to be magic for us, but you wouldn't foul our detectors. They would certainly indicate something. We would be able to see such star engineering projects in the sky, but we don't. This indicates that there is no intelligent life, or that no one has really advanced very far.
A good introduction to Fermi's Paradox is done by Seth Shostak. He discusses the paradox and various solutions. Interestingly, according to Michael Crichton, aliens cause global warming. This article is a good wake up call ot SETI enthusiast about what is science and what isn't. We might be fascinated by alien intelligent life, but there currently is no proof, no subject, and therefore no science.It makes for interesting science fiction though. Solutions:
I can recommend the Manifold series by Stephen Baxter as an enjoyable introduction to Fermi's Paradox where three different solutions are explored.
The interviewer seems to hold a grudge against Stallman for refusing the interview and completely misstates the GNU/Linux discussion. He actually writes:
But this is bullocks. Linux is just a kernel. Completely unusuable without things like ls and bash for example. And all those components are GNU components. Even the compiler to produce that kernel is GNU. The list goes on. Using Linux for the entire package is just as wrong as using just GNU.
Calling something Linux without acknowledging all the years Stallman has spend writing the tools that make a Unix kernel possible is wrong and hypocritical. And if Stallman didn't defend that, who would?
What is small? If you rather would deliver products without bugs, and there is a huge payoff here, you should have a look at Eiffel. It really supports a better style of programming. There are two commercial Eiffel compilers and one Open Source compiler. There must be hundreds of companies using it and thousands of programmers. You ain't gonna get a competitive edge if you use the same language as everyone else.
If you are a startup, you usually don;'t have a second chance. You don't have the luxury of Microsoft or Linux (SSH/sendmail/wu-ftp/...) programmers, who can use C/C++ and get away with buggy or insecure code and patch later. Will the programmers in your company produce better code with C++ than Microsoft does? That's hardly likely. Will they with a pure, clean language that supports Design by Contract?
Take for example the interview with Bjarne Stroustrup:
That is exactly Eiffel's position. But not only that, it allows you to write that invariant and it will make sure that upon violating that invariant you get an exception. That really helps, instead of having some abstract invariant or precondition that is burried in the documentation and which you only detect when your 500 million dollar rocket has blown up.
And Eiffel is infectious. People who use it and who got its ideas, don't even want to go back to inferior languages.
But for more information see the Eiffel Cetus pages.
There is a mailing list. Haven't heard of any trouble. What OS are you using?
QuantumG, nothing in your message is very specific. If you want me to add another criteria, it might be helpful to come up with a detailed response that might allow a jury to make an unanimous decision.
Clark and Dean the ideal pair? I hope not!
Here a remarkable quote from Retired General H. Hugh Shelton, chairman of the Joint Chiefs of Staff on 9/11:
The BeOS POSIX implementation is very complete. Non-network utilities are usually easy to port. But the big issue is that sockets are not descriptors. That's right. You can't pass a socket descriptor to read() or write(). You need to use send() or recv().
That's the single biggest issue in porting POSIX applications to BeOS and also the hardest to fix.
Do you seriously expect an end to buffer overflows while people keep programming in C? That's the issue. Use an unsafe language and you are bound to remain a fool.
Clippy is still an amazing marketing feat. You might not like it, but it was a selling point to upgrade. And nowpeople are paying again for the new version without Clippy, because it . Isn't that just a brilliant marketing strategy?
Compare that to the attempts of RedHat: first they lure people into buying the SCO enabled enterprise version, and now people want to buy the next version without SCO code. And no one is cheering.