Re: Programming is the Engineering Discipline of the Science that is Mathematics
Date: 7 Jun 2006 05:41:04 -0700
Message-ID: <1149684064.278359.104750_at_u72g2000cwu.googlegroups.com>
A few comments on the following interesting description of relationship
between math and other scientific areas.
Marshall wrote:
If I follow your reasonning...you imply that hypothesis are interesting
(relevant) if useful. *Usefulness* is a consequence of sociological
and environment context (what is considered *useful* in one context
> 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.
// Mathematics, in contrast, is much the same kind of methodology as the other sciences, but it is not anchored to the natural world.// Vague. Please clarify *anchored in the natural world*.
//A mathematical idea may be useful all by itself, without needing
empirical verification of any kind.//
Mathematics can hardly defined by its usefulness as usefulness is
context defined and mathematics is not... (relevance would be a better
term don't you think?). Could you give an example of a mathematical
idea that meets these criterias of definition?
> 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.
Risky. Several other domains of engineering may pretend to the same
relationship to math.
> 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.
True. Math programs in Computer Science curriculum are deeply
unsufficient and low level in America. Coming from a European academic
background and having studied in an American university through a
computer science program, the most difficult level of math I have found
was european high school equivalent. I was so bored in math classes
that I would take a chance to work on programming homeworks during math
class time.
> 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.
Indeed a very good point.
> Let us hope that our profession may one day recover from
> this love of fuzziness.
I hope to be wrong but I am pessimistic. Things are getting worse and
worse everyday.
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
Received on Wed Jun 07 2006 - 14:41:04 CEST