Re: Programming is the Engineering Discipline of the Science that is Mathematics

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Tue, 06 Jun 2006 01:17:52 GMT
Message-ID: <4J4hg.18140$A26.418865_at_ursa-nb00s0.nbnet.nb.ca>


Rich Ryan wrote:

> "Marshall" <marshall.spight_at_gmail.com> wrote in message
> news:1149554468.101169.75440_at_i39g2000cwa.googlegroups.com...
> 

>>Elsewhere, I commented that:
>>
>> Science : Engineering :: Math : Computer Programming
>>
>>
>>Science is a methodology for study that is intimately anchored
>>to the natural world. Physicists, chemists, biologists, etc. may
>>form their hypotheses, but these hypotheses are not interesting
>>until their usefulness is checked against the actual world we
>>live in.
>>
> 
> 
> 

>>Mathematics, in contrast, is much the same kind of methodology
>>as the other sciences, but it is not anchored to the natural world.
>>A mathematical idea may be useful all by itself, without needing
>>empirical verification of any kind. Thus we may derive use
>>from hyperbolic geometry without ever going out in to the
>>natural world and testing whether two parallel lines ever meet
>>or not. Indeed, we would not be able to locate parallel lines
>>in the natural world, because none exist there.
>>
>>Mechanical engineering, chemical engineering, etc., all are
>>effective because they build on scientific principles, and from
>>truths discovered via science. The laws of the natural world
>>are the laws of engineering, and the engineer who understands
>>this is a successful engineer.
>>
>>Software engineering, or simply programming, is the engineering
>>disipline of Mathematics, in the exact same way that chemical
>>engineering is the engineering discipline of the science of chemistry.
>>
>>And because of this, we should regard a computer programmer
>>who believes that mathematics has nothing to offer him the
>>same exact way we would regard a chemical engineer who
>>believed that chemistry had nothing to offer him, or a mechanical
>>engineer who didn't think that physics mattered to his job.
>>Fortunately for the chemical engineers of the world, and
>>for the people who rely on their work, the idea would be
>>immediately rejected as ridiculous by anyone in that
>>discipline. It is unfortunate that the same is not true for
>>us programmers.
>>
>>I lament the amount of time I spent studying OOP when I
>>could have been studying math. At the time, I still regarded
>>programming as a fuzzy discipline, not amenable to
>>formalisms. I see now that I was simply surrounded by
>>fuzziness as a cultural norm. The fuzziness was a social
>>disease, not an attribute of the discipline of programming.
>>
>>Let us hope that our profession may one day recover from
>>this love of fuzziness. The "Law" of Demeter is as hard to
>>master as a hula hoop, and about as useful. Let us instead
>>study abstract algebra, set theory, type theory, or what
>>have you. Though these are all much sterner mistresses
>>than Demeter, the rewards are proportionally greater.
>>
>>
>>-------------------------
>>
>>>From an interview with Alexander Stepanov, author of the STL:
>>http://www.stepanovpapers.com/CPCW_Interview.pdf
>>
>>Q: What do you think of OO? Is it a good style of programming?
>>Is there a necessary and useful tool for learning OO?
>>
>>Stepanov: I try not to think of OO. I am not impressed with their
>>approach to programming. Quoting from my interview to an
>>Italian journal: "I find OOP technically unsound. It attempts to
>>decompose the world in terms of interfaces that vary on a single
>>type. To deal with the real problems you need multisorted
>>algebras - families of interfaces that span multiple types. I find
>>OOP philosophically unsound. It claims that everything is an object.
>>Even if it is true it is not very interesting - saying that
>>everything is
>>an object is saying nothing at all. I find OOP methodologically
>>wrong. It starts with classes. It is as if mathematicians would start
>>with axioms. You do not start with axioms - you start with proofs.
>>Only when you have found a bunch of related proofs, can you
>>come up with axioms. You end with axioms. The same thing is
>>true in programming: you have to start with interesting algorithms.
>>Only when you understand them well, can you come up with an
>>interface that will let them work." I repeat: programming is
>>about algorithms and data structures, not about inheritance
>>and polymorphism.
>>
>>Q: What is the relationship between Mathematics and Computer Science?
>>
>>Stepanov: Computer Science is a mathematical discipline. Quoting
>>from Dijkstra: "As soon as programming emerges as a battle against
>>unmastered complexity, it is quite natural that one turns to that
>>mental
>>discipline whose main purpose has been for centuries to apply effective
>>structuring to otherwise unmastered complexity. That mental discipline
>>is more or less familiar to all of us, it is called Mathematics. If we
>>take
>>the existence of the impressive body of Mathematics as the
>>experimental evidence of the opinion that for the human mind the
>>mathematical method is indeed the most effective way to come to
>>grips with complexity, we have no choice any longer: we should
>>reshape our field of programming in such a way that, the
>>mathematician's methods become equally applicable to our
>>programming problems, for there are no other means."
>>
>>
>>Marshall
> 
> I think you need another glass of wine. Take a breath., Math is a language
> in which we ask questions and answer those questions. Math gets real hard at
> some point, and that's why many of us became computer science majors. All we
> needed was calculus 2.

That is the stupidest thing I have ever seen posted in c.d.t, and I have seen some very stupid things posted here. Plonk! Received on Tue Jun 06 2006 - 03:17:52 CEST

Original text of this message