7 ms·
There is a difference between knowing what the software does and _how_ it actually achieves it.
by buren 13y ago
There is a difference between knowing what the software does and _how_ it actually achieves it.
- marcosdumay 13y agoIs there? Are you sure about that?
- huhtenberg 13y agoBeing a smartass, aren't we? Is there a difference between knowing what pressing a gas pedal in a car does and how it does that? Surely there's none.
- user24 13y agoBut you can test what the gas pedal does pretty easily. I think parent's point was that without peer review source code audit, we just have to take it on trust.
- Touche 13y agoThe analogy doesn't hold because gas pedal's tend to do only one thing. A binary blob can do anything. A better analogy would be what some random wire in your car does... but even then if you know where the wire is located you can reason what it probably does. In this case a binary blob can't as easily be inferred.
- ori_b 13y agoYes. It's the difference between "It's an 8 inch chef's knife in a stain-resistant steel" and "It's an 8 inch gyuto-style chef's knife, which is thinner and lighter than the German style knives, but tempered to a higher hardness. This one is hardened to RC-57 (soft for the genre), ground from a hot-forged steel with 1.03%, carbon, 13.06% chromium, 0.37% nickel, and 0.28% nicklel, heated to 1000 degrees to promote austenization, and then oil quenched to form a highly martensitic steel, with moderate levels of pearlite and low levels of cementite. The temperature is then raised to 230 degrees and held until the stress from the quench is relieved. The chromium compounds are relatively coarse, similar to A-1, with a similar effect on the edge. The edge is then wet ground.... etc, etc, etc." A metallurgist or good blacksmith would be able to write hundreds more pages about a kitchen knife and the processes involved in it's creation. [Note, I am not a metallurgist. The description, I think, is mostly right, although I may have some of the phase transitions and temperatures wrong. Corrections are welcome.]
- marcosdumay 13y agoThe difference is that software is always in an environemnt where any small deviation from the "common sense" approach can lead to disastrous consequences (intentional or not).
- ori_b 13y agoI'm not sure how that's different from many other forms of engineering. For the example I gave, bump the temperature you hold it at after quenching by 20 degrees, and it will shatter because it hit the TME (Tempered Martensitic Embrittlement) stage. Hold it above that temperature by 80 degrees, and it won't hold an edge, although it will be ductile. Increase the amount of carbon by 0.5%, and it will be remarkably brittle and weak. Decrease it by 0.5%, and it will be extremely soft and won't hold an edge. etc, etc. A knife is fairly unimportant, but make the wrong decisions of that sort on a plane, or on a bridge, and people will die. Even more subtle decisions can have serious consequences. See, for example, the DeHavilland Comet, which crashed because the windows were too square. The squareness was causing them to act as stress concentrators. With the cyclic loading from pressure changes, this caused metal fatigue, and the windows would fail after hundreds of flights. This could be fixed by rounding the corners of the windows, or by using alloys that don't fatigue as easily. And this is why modern jets have rounded portholes, instead of rectangular windows.
- deleted 13y ago[deleted]
- jcromartie 13y agoUnless you are talking about metaphysics/teleology, the only difference is levels of description. What software does is what software does. The difference between a binary and source code is just level of description. A binary is obviously very hard to understand, but it is just instructions to the computer, and those instructions can be interpreted by following them logically according to the hardware documentation. This is true all the way down to the OS. Of course, you have to trust that the hardware does what it says it does... I guess you could always break out the oscilloscope...