Re: Dumbing down?



On Fri, 25 May 2007 12:51:32 +0300, "Alex Mizrahi"
<udodenko@xxxxxxxxxxxxxxxxxxxxx> wrote:

so i think math education is very important for highly-qualified
programmers.

I think engineering training is more important.

so it's quite possible that poor reliability of software we are currently
facing comes from dominations of "engineering" practices rather than
mathematics. most people nowadays are in threat of being hacked today, with
extremely bad possible consequences -- and actually there's no real reason
for such a bad situation except bad software developement practices.

Um, No! The poor reliability of most software is because the authors
have _neither_ math nor engineering skills. Too many self taught VB
programmers found gainful employment during the dot-bomb era when
nearly anyone who could type called himself a programmer.

mechanisms that are constructed by engineers simply cannot work in _all_
circumstances -- there always can be some defects on physical level, that
couldn't be tested. so they constuct stuff that works in _most_ situations.

Mechanisms constructed by mathematicians don't work at all - they are
abstract.

but algorithms are not like mechanisms. they have 100% repeatability, so
they come from abstract mathematics world. and in the world of mathematical
proofs there is no word "most". either proof is correct in absolutely all
cases, or we can say that there exists some cases where it is true, but if
one finds "almost correct" in math book most likely he will laugh.

Those repeatable algorithms are connected to real world processes
which don't share that desirable feature. Mathematics is about
knowing all the preconditions ... engineering is about making things
work when the preconditions are uncertain.

so if software development will use more formal math approach, rather than
experimental/practical approach, i believe that software would be much more
reliable and will not bring its users under threat.

I worked many years implementing real time, high performance and high
availability systems - designing and implementing them is an
engineering discipline, not a mathematical one. Mathematics is a tool
for an engineer not a replacement for one.

there are lots of examples.. Intel released their chip with FDIV fault,
because they didn't use formal testing.

Please take the trouble to learn history before you misreport it ...
Intel formally proved the chip design - it was an uncaught
manufacturing defect (damn that real world again) that caused the FDIV
problem.

i adhere to an "elistist" approach of software development (also i've seen
few people expressed it) -- there should be a few highly-qualified
programmers, who will do low-level stuff and implement DSL for particular
domain, which will be very easy to use (maybe it can be graphical), it
should be hard to make bugs that don't belong to a problem domain, it should
be testable etc. then less skilled programmers can use it to build the final
solution -- or maybe they won't be even called programmers, it can look more
like configuration.

I've seen plenty of software handed down from the ivory tower - much
of it so bad and unreliable it gave me chills. I've also seen people
badly hurt by programmable mechanisms. There is no way I would EVER
entrust control of any mechanical system to software written by far
off "experts" who know it only abstractly.

Where will these elite super programmers acquire the domain knowledge
necessary to design all these DSLs? Are they supposed to be MBAs,
buyers, salesmen, accountants, business process experts, physicists,
chemists, biologists, electrical, chemical and mechanical engineers
(to name a few) in _addition_ to being mathematicians and über
programmers. You must be smoking crack if you really think some
handful of experts somewhere can handle all the dirty programming
required for everything that goes on in the world.

How does the fact that you wrote a formally verified driver for X
connected via Y to Z help me 6 months later when part X is superseded
by part W which works slightly differently. What happens when Y or Z
is no longer fast enough for my purpose and I need to replace them
with Q and R? Am I supposed to wait for you to learn all about my new
hardware and deliver me a new formally verified driver? How many
years will I sit in your queue?

George
--
for email reply remove "/" from address
.



Relevant Pages

  • Re: The annotated annotated annotated C standard
    ... Standard declines to define. ... mathematics found ... And so it is for competent programmers. ... If what you say about BASIC's for loop is correct (and I am not about to ...
    (comp.programming)
  • Re: [opensuse] Re: [SLE] Novell-Microsoft: What They Arent Telling You
    ... Today there are quite literally thousands of "programmers" that do not ... These folks are *not* being educated in mathematics as a theoretical ... (e.g. for Java: use interfaces a lot; composition over inheritance; high ... skills of new-hires coming into the department. ...
    (SuSE)
  • Re: languages for CAS .. was: Re: Which is the best CAS
    ... if one wants to get the exponent and the normalized ... (incf sumsq (* r r)) ... Some computer programmers have a great deal of trouble with mathematics. ...
    (sci.math.symbolic)
  • Re: Dumbing down?
    ... So where do the good programmers come from? ... More to the point of this sub-thread, I have not seen that mathematics ... beyond the minor degree that most CS or engineering degrees require is ... That's becoming increasingly harder and harder these days. ...
    (comp.lang.lisp)
  • Re: Looking for a cartoon
    ... "If you don't know math, ... posting those comments were professional programmers; ... learned mathematics considers the investment productive. ... The student contracts to set aside his infantile ...
    (sci.math)