[Haskell-cafe] Comments from OCaml Hacker Brian Hurt

Jonathan Cast jonathanccast at fastmail.fm
Thu Jan 15 17:03:39 EST 2009

On Thu, 2009-01-15 at 21:29 +0000, Andrew Coppin wrote:
> Jonathan Cast wrote:
> > Where, in the history of western civilization, has there ever been an
> > engineering discipline whose adherents were permitted to remain ignorant
> > of the basic mathematical terminology and methodology that their
> > enterprise is founded on?  Why should software engineering be the lone
> > exception?
> >
> > No one may be a structural engineer, and remain ignorant of physics.  No
> > one may be a chemical engineer, and remain ignorant of chemistry.  Why
> > on earth should any one be permitted to be a software engineer, and
> > remain ignorant of computing science?

> Indeed. Because abstract alebra is highly relevant to computer 
> programming. Oh, wait...

Beg pardon?  That was an argument?  I'm sorry, but I can't infer your
middle term.

> Many people complain that too many "database experts" don't know the 
> first thing about basic normalisation rules, SQL injection attacks, why 
> you shouldn't use cursors, and so forth. But almost nobody complains 
> that database experts don't know set theory or relational alebra.

I didn't know this.  I intend to start.  But, in any case, you picked
your counter-example *from within software engineering*, at least as
broadly understood.  My claim is that the computer industry as a whole
is *sick*, that we are simply going about this enterprise of dealing
with these (memory-limited) universal Turing machines (= implementations
of lambda calculus = universal recursive functions) *wrong*.  More cases
of this, within the computer industry, re-enforces my claim, rather than
weakening it.

> Don't get me wrong, there are mathematical concepts that are relevant to 
> computing,

You mean like monads?  

>  and we should encourage people to learn about them. But you 
> really *should not* need to do an undergraduate course in mathematical 
> theory just to work out how to concat two lists.

Look, if you want (++), you know where to find it.  Or are you
complaining that you shouldn't have to study mathematics to understand
what (++) and, say, the choice operation on events, have in common?


More information about the Haskell-Cafe mailing list