Unfortunately, there will always be a disconnect between specs and code. Programming languages have cruft and artifacts that will always force code != specs.
Here's an interesting paper called "Haskell vs. Ada vs. C++ vs. Awk vs...., An Experiment in Software Prototyping Productivity" about a programming language experiment. The Naval Surface Warfare Center had programmers implement a "geometric region server" (a component of the Navy's AEGIS system) in their language of choice. Program length and development time for each project are compared for the different languages. The surprise "winner" was an extemely concise program written (by the paper's author, of course) in the functional programming lanaguage Haskell. The other languages have so much cruft that eventually makes the code look nothing like the "human readable" spec.
Compare!;-)
LANGUAGE, LINES OF CODE, LINES OF DOC, DEV TIME (HOURS) Haskell #1, 85, 465, 10
Haskell #2, 156, 112, 8
My favorite quote from the paper:
"In conducting the independent design review at Intermetrics, there was a significant sense of disbelief. We quote from (CHJ93): "It is significant that Mr. Domanski, Mr. Banowetz, and Dr. Brosgol were all surprised and suspicious when we told them that the Haskell prototype P1 is a complete tested executable program. We provided them with a copy of P1 without explaining that it was a program, and based on preconceptions from their past experience, they had studied P1 under the assumption that it was a mixture of requirements specifications and top level design. They were convinced it was incomplete because it did not address issues such as data structure design and execution order."
a) Apple Computer is in the habit of bundling DVD-ROMs with their systems these days. b) Apple is basing MacOS X on BSD. Therefore, c) Apple will be providing BSD-DVD drivers legally to their users
uh, no. Mac OS X does not have a BSD kernel. It has a Mach microkernel. BSD is just one subsystem (like NT's Win32, OS/2, and Posix subsystems). The DVD device drivers would be Mach drivers, not BSD.
The domain name for sale on Ebay is actually F*ckedcompany.com, not FuckedCompany.com. What if someone pays $10M for Fockedcompany.com or Fqckedcompany.com??
after two minutes working with a particular patron I can tell if her/his computer experience began with a CLI, a Mac, or Windows95.
I can definitely believe this, but I'm curious: how do you differentiate between Mac and Windows people? What type of computers does your college library use?
This is the same reason I don't run Microsoft products at home. They're not engineered well. No one spends a couple years developing a solid model (flowchart) of how the software is supposed to work.
Hmmm, so how many Linux kernel developers "spend a couple years developing flowcharts"? Which commercial software company for that matter? By the time your flowchart is ready, the market has already moved and you haven't even written any code yet..
Adding more programmers fragments the knowledge, but not if they're open source programmers, because they have the magic ability to "review each others' code", which is impossible if you have the wrong kind of license. And Brooks' Law doesn't hold because Eric Raymond said so.
In the first edition of "The Mythical Man-month", Fred Brooks fought against David Parnas' black box modules. Brooks says that he ran the System 360 project with the goal of making all implementation details public. They printed huge spec manuals and printed reams of updates everyday, which would be dropped off at each programmer's office. In the second edition of "The Mythical Man-month", Brooks admits that he was wrong and Parnas was right. Implementation hiding was the right thing. The programmers for System 360 couldn't understand the whole system. These days, open source advocates claim that source code availability solves the "fragmented programmer knowledge" problem. I don't think it solve it (though it admittedly helps in some ways).
1. Microsoft's business practices are no different in their intensity and moral content than those of any other corporation, but they are the most exposed and examined in history.
2. The issue of "bundling" the browser is dead. Microsoft won at the appellate division, and the plaintiff did not appeal; end of story.
3. The Justice Department's behavior toward Microsoft can only be described as a political vendetta, led by a completely political White House operative by the name of Joel Klein, with strong backing from the entire Clinton administration. The interesting question is not whether this happened, but why it happened.
4. Bill Gates made a nearly fatal mistake in ignoring the political process, and in underestimating Washington DC's ability to hurt him. As recently as two years ago, he still did not rate the anti-trust case as among his top ten problems. This was a grievous error on his part, and one he was worked hard to correct in the past year.
5. Both political parties are in the extortion game, a fact John McCain has repeatedly noted. They depend on "soft money" that is extorted from large corporations, labor unions, and trade associations. The media is totally culpable in this corrupt process, since they are the primary beneficiaries of the money itself, which is spent on advertising during campaigns. Any major company within the American economy that refuses to play this game is vulnerable to attack, particularly if it has powerful enemies who are more than willing to use any and every means at their disposal to destroy it.
6. Microsoft's enemies include Oracle and Sun (Larry Ellison and Scott Mcnealy), who put repeated pressure on the politicians to eviscerate Microsoft so that their products, which were increasingly losing out to Microsoft's superior technology, would ultimately prevail. Since the first of the year, when the trial court ruled that Microsoft should be split in two, Oracle and Sun have both done extremely well at the same time that MSFT stock was about cut in half. This is exactly what Ellison and McNealy intended.
7. Penfield Jackson is a technological ignoramus, a completely biased judge, and a virtual stooge for the Justice Department. This will soon become apparent.
8. Microsoft never got a fair trial in Jackson's courtroom. It was a kangaroo trial from the beginning, but one that was aided - to Microsoft's detriment - by their own mismanagement. That said, even under the best of legal strategy, Microsoft had no chance, and the outcome would have been the same. It was a fix from the beginning.
they have gone and stolen the domain, bypassing the courts, and setting themselves up for a MAJOR PR disaster. If this manages to go to trial, I'm sure it will be a notorious battle that will seriously tarnish AOL's image.
Welcome! Have you been living in the United States long? This country is a corporatist state, where the law and the media bend for big corporations. There will be little mention of this incident in any "news" media. Do you remember AOLSearch.com? Same story, different year.
That thing was an eyesore. Can you imagine some nerd driving that thing done the street?? Was that Cmdr Taco's idea? If not, I wonder how it feels for OSDN/Andover to use your creation (Slashdot) on such a beast as the PT (Barnum) Cruiser.
Direct3D emulation under Wine is a little behind, but will probably eventually overtake Microsoft's implementation too.
How can Wine's Direct3D emulation (or Wine itself, for that matter) "overtake" Windows? It is trying to BE Windows. Can Wine really be a better Windows than Windows?
Consumers like music, but they like free music even better! They like free MP3s better than $20 CDs even though (most) MP3s sound worse than CD audio. The RIAA is outraged that consumers would rather use Napster than drive down to Tower Records. I think consumers would welcome a competitive alternative between $0 music and $20 music. If the records companies were not fixing prices, there be $5 CDs (that didn't suck:-)
As part of TUX i've implemented zero-copy TCP xmit. It turned out to be a minimal change (barring driver changes), less hassle than we initially thought.
Will your zero-copy TPC xmit be in Linux 2.4? If not, will it be part of the "patched" Red Hat Linux?
What's the point of application-level copy throttling? That's why TCP was invented, for throttling throughput over shared net links.
OT: one of my professors said that the reason TCP divides its transmit windows by 2 when there is packet loss is because the original authors assumed that packet loss meant you were now sharing that net link with 1 other user. My, how things have changed..;-)
LANGUAGE, LINES OF CODE, LINES OF DOC, DEV TIME (HOURS)
Haskell #1, 85, 465, 10
Haskell #2, 156, 112, 8
Ada, 787, 714, 23
Ada9X, 800, 200, 28
C++, 1105, 130
Awk, 250, 150
Lisp, 274, 12, 3
Unfortunately, there will always be a disconnect between specs and code. Programming languages have cruft and artifacts that will always force code != specs.
..., An Experiment in Software Prototyping Productivity" about a programming language experiment. The Naval Surface Warfare Center had programmers implement a "geometric region server" (a component of the Navy's AEGIS system) in their language of choice. Program length and development time for each project are compared for the different languages. The surprise "winner" was an extemely concise program written (by the paper's author, of course) in the functional programming lanaguage Haskell. The other languages have so much cruft that eventually makes the code look nothing like the "human readable" spec.
;-)
Here's an interesting paper called "Haskell vs. Ada vs. C++ vs. Awk vs.
Compare!
LANGUAGE, LINES OF CODE, LINES OF DOC, DEV TIME (HOURS)
Haskell #1, 85, 465, 10
Haskell #2, 156, 112, 8
My favorite quote from the paper:
"In conducting the independent design review at Intermetrics, there was a significant sense of disbelief. We quote from (CHJ93): "It is significant that Mr. Domanski, Mr. Banowetz, and Dr. Brosgol were all surprised and suspicious when we told them that the Haskell prototype P1 is a complete tested executable program. We provided them with a copy of P1 without explaining that it was a program, and based on preconceptions from their past experience, they had studied P1 under the assumption that it was a mixture of requirements specifications and top level design. They were convinced it was incomplete because it did not address issues such as data structure design and execution order."
a) Apple Computer is in the habit of bundling DVD-ROMs with their systems these days. b) Apple is basing MacOS X on BSD. Therefore, c) Apple will be providing BSD-DVD drivers legally to their users
uh, no. Mac OS X does not have a BSD kernel. It has a Mach microkernel. BSD is just one subsystem (like NT's Win32, OS/2, and Posix subsystems). The DVD device drivers would be Mach drivers, not BSD.
The domain name for sale on Ebay is actually F * ckedcompany.com, not F u ckedCompany.com. What if someone pays $10M for F o ckedcompany.com or F q ckedcompany.com??
;-)
it's really stupid to use a program which is not a programming langauge since you loose the full power of the computer.
;)
oh, you mean we should be using Microsoft Outlook?
after two minutes working with a particular patron I can tell if her/his computer experience began with a CLI, a Mac, or Windows95.
I can definitely believe this, but I'm curious: how do you differentiate between Mac and Windows people? What type of computers does your college library use?
..
This is the same reason I don't run Microsoft products at home. They're not engineered well. No one spends a couple years developing a solid model (flowchart) of how the software is supposed to work.
Hmmm, so how many Linux kernel developers "spend a couple years developing flowcharts"? Which commercial software company for that matter? By the time your flowchart is ready, the market has already moved and you haven't even written any code yet..
Adding more programmers fragments the knowledge, but not if they're open source programmers, because they have the magic ability to "review each others' code", which is impossible if you have the wrong kind of license. And Brooks' Law doesn't hold because Eric Raymond said so.
In the first edition of "The Mythical Man-month", Fred Brooks fought against David Parnas' black box modules. Brooks says that he ran the System 360 project with the goal of making all implementation details public. They printed huge spec manuals and printed reams of updates everyday, which would be dropped off at each programmer's office. In the second edition of "The Mythical Man-month", Brooks admits that he was wrong and Parnas was right. Implementation hiding was the right thing. The programmers for System 360 couldn't understand the whole system. These days, open source advocates claim that source code availability solves the "fragmented programmer knowledge" problem. I don't think it solve it (though it admittedly helps in some ways).
1. Microsoft's business practices are no different in their intensity and moral content than those of any other corporation, but they are the most exposed and examined in history.
2. The issue of "bundling" the browser is dead. Microsoft won at the appellate division, and the plaintiff did not appeal; end of story.
3. The Justice Department's behavior toward Microsoft can only be described as a political vendetta, led by a completely political White House operative by the name of Joel Klein, with strong backing from the entire Clinton administration. The interesting question is not whether this happened, but why it happened.
4. Bill Gates made a nearly fatal mistake in ignoring the political process, and in underestimating Washington DC's ability to hurt him. As recently as two years ago, he still did not rate the anti-trust case as among his top ten problems. This was a grievous error on his part, and one he was worked hard to correct in the past year.
5. Both political parties are in the extortion game, a fact John McCain has repeatedly noted. They depend on "soft money" that is extorted from large corporations, labor unions, and trade associations. The media is totally culpable in this corrupt process, since they are the primary beneficiaries of the money itself, which is spent on advertising during campaigns. Any major company within the American economy that refuses to play this game is vulnerable to attack, particularly if it has powerful enemies who are more than willing to use any and every means at their disposal to destroy it.
6. Microsoft's enemies include Oracle and Sun (Larry Ellison and Scott Mcnealy), who put repeated pressure on the politicians to eviscerate Microsoft so that their products, which were increasingly losing out to Microsoft's superior technology, would ultimately prevail. Since the first of the year, when the trial court ruled that Microsoft should be split in two, Oracle and Sun have both done extremely well at the same time that MSFT stock was about cut in half. This is exactly what Ellison and McNealy intended.
7. Penfield Jackson is a technological ignoramus, a completely biased judge, and a virtual stooge for the Justice Department. This will soon become apparent.
8. Microsoft never got a fair trial in Jackson's courtroom. It was a kangaroo trial from the beginning, but one that was aided - to Microsoft's detriment - by their own mismanagement. That said, even under the best of legal strategy, Microsoft had no chance, and the outcome would have been the same. It was a fix from the beginning.
they have gone and stolen the domain, bypassing the courts, and setting themselves up for a MAJOR PR disaster. If this manages to go to trial, I'm sure it will be a notorious battle that will seriously tarnish AOL's image.
Welcome! Have you been living in the United States long? This country is a corporatist state, where the law and the media bend for big corporations. There will be little mention of this incident in any "news" media. Do you remember AOLSearch.com? Same story, different year.
That thing was an eyesore. Can you imagine some nerd driving that thing done the street?? Was that Cmdr Taco's idea? If not, I wonder how it feels for OSDN/Andover to use your creation (Slashdot) on such a beast as the PT (Barnum) Cruiser.
urmph.
Please note that BSD is just a Mach subsystem. The VM is still controlled by the Mach kernel.
(I used to work for Microsoft)
Obviously you are well versed with psychedelic drugs. I applaud this. Dinosaurs in space!
:-)
This cracked me up so much! I was laughing out loud!
#include
int main(int argc, char *argv[])
{
printf("hello world\n");
return 0;
}
Direct3D emulation under Wine is a little behind, but will probably eventually overtake Microsoft's implementation too.
How can Wine's Direct3D emulation (or Wine itself, for that matter) "overtake" Windows? It is trying to BE Windows. Can Wine really be a better Windows than Windows?
Here's an interesting article about artists cutting the middle-man, selling directly to fans, and making dollar$$$.
.
"Making money in a 'copyright-free' world"
Consumers like music, but they like free music even better! They like free MP3s better than $20 CDs even though (most) MP3s sound worse than CD audio. The RIAA is outraged that consumers would rather use Napster than drive down to Tower Records. I think consumers would welcome a competitive alternative between $0 music and $20 music. If the records companies were not fixing prices, there be $5 CDs (that didn't suck :-)
I knew that. I was just pointing that you were WRONG.
Searching Google for "Linux turbo sockets" or even "turbo sockets" turned up nothing (useful). What are turbo sockets?
As part of TUX i've implemented zero-copy TCP xmit. It turned out to be a minimal change (barring driver changes), less hassle than we initially thought.
Will your zero-copy TPC xmit be in Linux 2.4? If not, will it be part of the "patched" Red Hat Linux?
What's the point of application-level copy throttling? That's why TCP was invented, for throttling throughput over shared net links.
;-)
OT: one of my professors said that the reason TCP divides its transmit windows by 2 when there is packet loss is because the original authors assumed that packet loss meant you were now sharing that net link with 1 other user. My, how things have changed..