Re: Dumbing down?
- From: George Neuner <gneuner2/@comcast.net>
- Date: Sat, 26 May 2007 04:01:42 -0400
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
.
- Follow-Ups:
- Re: Dumbing down?
- From: Alex Mizrahi
- Re: Dumbing down?
- From: Joe Marshall
- Re: Dumbing down?
- References:
- Dumbing down?
- From: Jeff Rollin
- Re: Dumbing down?
- From: Alex Mizrahi
- Dumbing down?
- Prev by Date: Re: Learning Lisp design techniques (not just the language itself)?
- Next by Date: Re: Learning Lisp design techniques (not just the language itself)?
- Previous by thread: Re: Dumbing down?
- Next by thread: Re: Dumbing down?
- Index(es):
Relevant Pages
|